int input_read(config *cfg, data_set *ds) { char *line = NULL; size_t row_count = 0; init_pairs(ds); while ((line = fgets(buf, sizeof(buf) - 1, cfg->in))) { size_t len = strlen(line); sink_line_res res = sink_line(cfg, ds, line, len, row_count); switch (res) { case SINK_LINE_OK: row_count++; break; case SINK_LINE_EMPTY: return (cfg->stream_mode ? 0 : -1); case SINK_LINE_COMMENT: continue; case SINK_LINE_DONE: return 0; default: assert(false); } } return -1; // end of stream }
void startup() { setlocale(LC_CTYPE, ""); win = initscr(); /* FIXME: is this cast a good idea? */ atexit((void (*)()) endwin); start_color(); init_pairs(); cbreak(); noecho(); nonl(); intrflush(win, FALSE); meta(win, TRUE); }
static void initialize_windows (void) { if (_wmsg) delwin (_wmsg); else { static const struct color_pair c_Pairs[] = { { COLOR_WHITE, COLOR_BLUE }, // color_Panel { COLOR_BLACK, COLOR_WHITE }, // color_CardBlack { COLOR_RED, COLOR_WHITE } // color_CardRed }; init_pairs (ArrayBlock (c_Pairs)); } _wmsg = newwin (LINES-PANEL_LINES, PANEL_COLS, 0, 0); scrollok (_wmsg, true); idlok (_wmsg, true); keypad (_wmsg, true); wmove (_wmsg, getmaxy(_wmsg)-1, 0); if (_wpanel) delwin (_wpanel); _wpanel = newwin (PANEL_LINES, PANEL_COLS, LINES-PANEL_LINES, 0); wbkgdset (_wpanel, COLOR_PAIR(color_Panel)); }