static void opensex_db_parse(database_handle_t *db) { const char *cmd; while (db_read_next_row(db)) { cmd = db_read_word(db); if (!cmd || !*cmd || strchr("#\n\t \r", *cmd)) continue; db_process(db, cmd); } }
static bool opensex_read_time(database_handle_t *db, time_t *res) { const char *s = db_read_word(db); char *rp; if (!s) return false; *res = strtoul(s, &rp, 0); return *s && !*rp; }
const char * db_sread_word(database_handle_t *db) { const char *w = db_read_word(db); if (!w) { slog(LG_ERROR, "db-sread-word: needed word at file %s line %d token %d", db->file, db->line, db->token); slog(LG_ERROR, "db-sread-word: exiting to avoid data loss"); exit(EXIT_FAILURE); } return w; }