forked from KolibriOS/kolibrios
Graph (branch: tcc_current): now you can provide a filename, when calling a program from shell, which should be opened on start.
tcc: ksys.h: added "const" to string argument of _ksys_debug_puts(...). git-svn-id: svn://kolibrios.org@9764 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
2e97f212ae
commit
dff8056cd6
@ -1067,7 +1067,7 @@ void _ksys_debug_putc(char c){
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
void _ksys_debug_puts(char *s){
|
void _ksys_debug_puts(const char* s){
|
||||||
unsigned i=0;
|
unsigned i=0;
|
||||||
while (*(s+i)){
|
while (*(s+i)){
|
||||||
asm_inline ("int $0x40"::"a"(63), "b"(1), "c"(*(s+i)));
|
asm_inline ("int $0x40"::"a"(63), "b"(1), "c"(*(s+i)));
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sys/ksys.h>
|
#include <sys/ksys.h>
|
||||||
#include <clayer/boxlib.h>
|
#include <clayer/boxlib.h>
|
||||||
|
#include <conio.h>
|
||||||
|
|
||||||
#include "func.h"
|
#include "func.h"
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
@ -15,11 +16,20 @@ enum BUTTONS {
|
|||||||
BTN_EDIT = 5
|
BTN_EDIT = 5
|
||||||
};
|
};
|
||||||
|
|
||||||
const char header[] = "Graph";
|
const char STR_PROGRAM_TITLENAME[] = "Graph";
|
||||||
const char empty_text[] = "No function loaded. Type file name and press Enter. ";
|
const char empty_text[] = "No function loaded. Type file name and press Enter. ";
|
||||||
const char er_file_not_found[] = "Cannot open file. ";
|
const char er_file_not_found[] = "Cannot open file. ";
|
||||||
const char str_filename[] = "Filename:";
|
const char str_filename[] = "Filename:";
|
||||||
const char str_editfile[] = "Edit";
|
const char str_editfile[] = "Edit";
|
||||||
|
const char STR_ERR_CONSOLEINIT[] = "Unable to initialize console.";
|
||||||
|
const char STR_MSG_HELP_USAGE[] = "Usage: %s [OPTION] [FILENAME]...\n";
|
||||||
|
const char* STR_MSG_HELP[] = {
|
||||||
|
"Draws a graph by calculating mathematical function or using list of points.\n\n",
|
||||||
|
|
||||||
|
"\t--help\t\tdisplay this help and exit\n\n",
|
||||||
|
|
||||||
|
"You can provide path to file if you want it to be opened immediately.\n",
|
||||||
|
};
|
||||||
|
|
||||||
// íà÷àëüíûå ðàçìåðû
|
// íà÷àëüíûå ðàçìåðû
|
||||||
#define WND_W 600
|
#define WND_W 600
|
||||||
@ -355,7 +365,7 @@ int load_points3() {
|
|||||||
sprintf(debuf, "read3: %d\n", rr);
|
sprintf(debuf, "read3: %d\n", rr);
|
||||||
_ksys_debug_puts(debuf);
|
_ksys_debug_puts(debuf);
|
||||||
|
|
||||||
strcpy(full_head, header);
|
strcpy(full_head, STR_PROGRAM_TITLENAME);
|
||||||
strcpy(full_head+strlen(full_head), " - ");
|
strcpy(full_head+strlen(full_head), " - ");
|
||||||
strcpy(full_head+strlen(full_head), edit_path); // bad code
|
strcpy(full_head+strlen(full_head), edit_path); // bad code
|
||||||
|
|
||||||
@ -491,9 +501,45 @@ void draw_window(void) {
|
|||||||
_ksys_draw_text((char*)str_editfile, cWidth - 60, mybox.top + 4, 0, 0x90000000);
|
_ksys_draw_text((char*)str_editfile, cWidth - 60, mybox.top + 4, 0, 0x90000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
void consoleInit() {
|
||||||
|
if (con_init()) { // Init fail
|
||||||
|
_ksys_debug_puts("[");
|
||||||
|
_ksys_debug_puts(STR_PROGRAM_TITLENAME);
|
||||||
|
_ksys_debug_puts("] ");
|
||||||
|
_ksys_debug_puts(STR_ERR_CONSOLEINIT);
|
||||||
|
_ksys_debug_puts("\n");
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
(*con_set_title)(STR_PROGRAM_TITLENAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
void consoleExit() {
|
||||||
|
(*con_exit)(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
full_head = (char*)malloc(300);
|
full_head = (char*)malloc(300);
|
||||||
strcpy(full_head, "Graph");
|
strcpy(full_head, STR_PROGRAM_TITLENAME);
|
||||||
|
|
||||||
|
if (argc == 2) {
|
||||||
|
if (!strcmp(argv[1], "--help") || !strcmp(argv[1], "-h")) {
|
||||||
|
consoleInit();
|
||||||
|
printf(STR_MSG_HELP_USAGE, argv[0]);
|
||||||
|
for (int j = 0; j < sizeof(STR_MSG_HELP)/sizeof(STR_MSG_HELP[0]); ++j) puts(STR_MSG_HELP[j]);
|
||||||
|
consoleExit();
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
strcpy(edit_path, argv[1]);
|
||||||
|
if (load_points3())
|
||||||
|
draw_window();
|
||||||
|
}
|
||||||
|
} else if (argc > 2) {
|
||||||
|
consoleInit();
|
||||||
|
printf(STR_MSG_HELP_USAGE, argv[0]);
|
||||||
|
consoleExit();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
_ksys_set_event_mask(0xC0000027);
|
_ksys_set_event_mask(0xC0000027);
|
||||||
int event;
|
int event;
|
||||||
while (1) {
|
while (1) {
|
||||||
@ -541,4 +587,4 @@ int main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user