X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=gui.c;h=7b10992c8d0b7282a3854b473ed38cebbca83d67;hp=9b1c739f2110d6e05c0d27e0a832472d72b5b149;hb=c6c38d26c76bbb126eddb6302c0c852a3bc9c311;hpb=d1bfba58e0a93444c7381e9029eda5e786b2fa02 diff --git a/gui.c b/gui.c index 9b1c739f..7b10992c 100644 --- a/gui.c +++ b/gui.c @@ -73,9 +73,9 @@ enum {GETCH_MODE, COMMAND_MODE, EXTERNAL_MODE}; #define COLOR_BOT 40 struct gui_command { - char *key; - char *name; - char *description; + const char *key; + const char *name; + const char *description; void (*handler)(void); }; @@ -284,7 +284,7 @@ static void add_spaces(WINDOW* win, unsigned int num) * print aligned string to curses window. This function always prints * exactly len chars. */ -static int align_str(WINDOW* win, char *string, unsigned int len, +static int align_str(WINDOW* win, const char *string, unsigned int len, unsigned int align) { int num; /* of spaces */ @@ -313,7 +313,7 @@ static int align_str(WINDOW* win, char *string, unsigned int len, return 1; } -__printf_2_3 static void print_in_bar(int color, char *fmt,...) +__printf_2_3 static void print_in_bar(int color, const char *fmt,...) { char *msg; @@ -442,7 +442,7 @@ static void rb_add_entry(int color, char *msg) /* * print formated output to bot win and refresh */ -__printf_2_3 static void outputf(int color, char* fmt,...) +__printf_2_3 static void outputf(int color, const char* fmt,...) { char *msg; @@ -460,7 +460,7 @@ static void add_output_line(char *line) rb_add_entry(COLOR_OUTPUT, para_strdup(line)); } -void para_log(int ll, char *fmt,...) +void para_log(int ll, const char *fmt,...) { int color; char *msg; @@ -519,7 +519,7 @@ static void finish(int ret) /* * exit curses and print given message to stdout/stderr */ -__printf_2_3 static void msg_n_exit(int ret, char* fmt, ...) +__printf_2_3 static void msg_n_exit(int ret, const char* fmt, ...) { va_list argp; FILE *outfd = ret? stderr: stdout; @@ -895,7 +895,8 @@ repeat: FD_SET(command_pipe, &rfds); max_fileno = MAX(max_fileno, command_pipe); } - FD_SET(STDIN_FILENO, &rfds); + if (curses_active) + FD_SET(STDIN_FILENO, &rfds); ret = select(max_fileno + 1, &rfds, NULL, NULL, &tv); // PARA_DEBUG_LOG("select returned %d\n", ret); @@ -1171,24 +1172,26 @@ static void com_help(void) int i; for (i = 0; i < conf.key_map_given; ++i) { - char *s = conf.key_map_arg[i], *handler, *arg, - *desc = "", tmp[MAXLINE]; + char *handler, *arg, *tmp = para_strdup(conf.key_map_arg[i]); + const char *handler_text = "???", *desc = NULL; - strcpy(tmp, s); - if (!split_key_map(tmp, &handler, &arg)) + if (!split_key_map(tmp, &handler, &arg)) { + free(tmp); return; - switch(*handler) { + } + switch (*handler) { case 'i': - handler = "internal"; + handler_text = "internal"; desc = command_list[find_cmd_byname(arg)].description; break; - case 'x': handler = "external"; break; - case 'd': handler = "display "; break; - case 'p': handler = "para "; break; + case 'x': handler_text = "external"; break; + case 'd': handler_text = "display "; break; + case 'p': handler_text = "para "; break; } - outputf(COLOR_MSG, "%s\t%s\t%s%s\t%s", tmp, handler, arg, + outputf(COLOR_MSG, "%s\t%s\t%s%s\t%s", tmp, handler_text, arg, strlen(arg) < 8? "\t" : "", - desc); + desc? desc : ""); + free(tmp); } for (i = 0; command_list[i].handler; i++) { struct gui_command gc = command_list[i]; @@ -1199,7 +1202,6 @@ static void com_help(void) } print_in_bar(COLOR_MSG, "try \"para_gui -h\" or \"para_client help\" " "for more info"); - return; } static void com_shrink_top_win(void)