X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=test%2Fncurses.c;h=15f732964e8b950eb671780afd48b4929ee8bc94;hp=326c747cad027cb542b0d50ae06e8ce1e3ad0cc1;hb=4b1ec76cb0a0fa5055909f534b3f928dafc7f7f1;hpb=98d8891f42d8acac5c2ade39d163f386057a22e4 diff --git a/test/ncurses.c b/test/ncurses.c index 326c747c..15f73296 100644 --- a/test/ncurses.c +++ b/test/ncurses.c @@ -40,7 +40,7 @@ AUTHOR Author: Eric S. Raymond 1993 Thomas E. Dickey (beginning revision 1.27 in 1996). -$Id: ncurses.c,v 1.379 2012/11/18 00:56:44 tom Exp $ +$Id: ncurses.c,v 1.386 2012/12/29 23:37:55 tom Exp $ ***************************************************************************/ @@ -1919,7 +1919,7 @@ show_color_name(int y, int x, int color, bool wide) } else if (color < 0) { strcpy(temp, "default"); } else { - strcpy(temp, the_color_names[color]); + sprintf(temp, "%.*s", 16, the_color_names[color]); } printw("%-*.*s", width, width, temp); } @@ -2244,7 +2244,7 @@ wide_color_test(void) if (row >= 0 && move(row, col) != ERR) { init_pair(pair, InxToFG(i), InxToBG(i)); - color_set(pair, NULL); + (void) color_set(pair, NULL); if (opt_acsc) attr_on((attr_t) A_ALTCHARSET, NULL); if (opt_bold) @@ -3728,7 +3728,7 @@ show_2_wacs(int n, const char *name, const char *code, attr_t attr, short pair) MvPrintw(row, col, "%*s : ", COLS / 4, name); (void) attr_set(attr, pair, 0); - addstr(strcpy(temp, code)); + addstr(strncpy(temp, code, 20)); (void) attr_set(A_NORMAL, 0, 0); return n + 1; } @@ -4244,7 +4244,8 @@ getwindow(void) outerbox(ul, lr, TRUE); refresh(); - wrefresh(rwindow); + if (rwindow != 0) + wrefresh(rwindow); move(0, 0); clrtoeol(); @@ -5785,55 +5786,60 @@ edit_secure(FIELD * me, int c) if (field_info(me, &rows, &cols, &frow, &fcol, &nrow, &nbuf) == E_OK && nbuf > 0) { char *source = field_buffer(me, 1); - char temp[80]; + size_t have = (source ? strlen(source) : 0) + 1; + size_t need = 80 + have; + char *temp = malloc(need); long len; - strcpy(temp, source ? source : ""); - len = (long) (char *) field_userptr(me); - if (c <= KEY_MAX) { - if (isgraph(c) && (len + 1) < (int) sizeof(temp)) { - temp[len++] = (char) c; - temp[len] = 0; - set_field_buffer(me, 1, temp); - c = '*'; - } else { - c = 0; - } - } else { - switch (c) { - case REQ_BEG_FIELD: - case REQ_CLR_EOF: - case REQ_CLR_EOL: - case REQ_DEL_LINE: - case REQ_DEL_WORD: - case REQ_DOWN_CHAR: - case REQ_END_FIELD: - case REQ_INS_CHAR: - case REQ_INS_LINE: - case REQ_LEFT_CHAR: - case REQ_NEW_LINE: - case REQ_NEXT_WORD: - case REQ_PREV_WORD: - case REQ_RIGHT_CHAR: - case REQ_UP_CHAR: - c = 0; /* we don't want to do inline editing */ - break; - case REQ_CLR_FIELD: - if (len) { - temp[0] = 0; + if (temp != 0) { + strncpy(temp, source ? source : "", have + 1); + len = (long) (char *) field_userptr(me); + if (c <= KEY_MAX) { + if (isgraph(c) && (len + 1) < (int) sizeof(temp)) { + temp[len++] = (char) c; + temp[len] = 0; set_field_buffer(me, 1, temp); + c = '*'; + } else { + c = 0; } - break; - case REQ_DEL_CHAR: - case REQ_DEL_PREV: - if (len) { - temp[--len] = 0; - set_field_buffer(me, 1, temp); + } else { + switch (c) { + case REQ_BEG_FIELD: + case REQ_CLR_EOF: + case REQ_CLR_EOL: + case REQ_DEL_LINE: + case REQ_DEL_WORD: + case REQ_DOWN_CHAR: + case REQ_END_FIELD: + case REQ_INS_CHAR: + case REQ_INS_LINE: + case REQ_LEFT_CHAR: + case REQ_NEW_LINE: + case REQ_NEXT_WORD: + case REQ_PREV_WORD: + case REQ_RIGHT_CHAR: + case REQ_UP_CHAR: + c = 0; /* we don't want to do inline editing */ + break; + case REQ_CLR_FIELD: + if (len) { + temp[0] = 0; + set_field_buffer(me, 1, temp); + } + break; + case REQ_DEL_CHAR: + case REQ_DEL_PREV: + if (len) { + temp[--len] = 0; + set_field_buffer(me, 1, temp); + } + break; } - break; } + set_field_userptr(me, (void *) len); + free(temp); } - set_field_userptr(me, (void *) len); } return c; } @@ -6826,7 +6832,14 @@ main(int argc, char *argv[]) #ifdef NCURSES_VERSION case 'a': assumed_colors = TRUE; - sscanf(optarg, "%d,%d", &default_fg, &default_bg); + switch (sscanf(optarg, "%d,%d", &default_fg, &default_bg)) { + case 0: + default_fg = COLOR_WHITE; + /* FALLTHRU */ + case 1: + default_bg = COLOR_BLACK; + break; + } break; case 'd': default_colors = TRUE;