static void write_symbols(const char *symbols) { FILE *file; if (!strcmp(symbols,"-")) file = stdout; else { file = fopen(symbols,"w"); if (!file) { perror(symbols); exit(1); } } write_ids(file); /* assume "write_ids" doesn't do any other system calls */ if (ferror(file)) { perror(symbols); exit(1); } if (file != stdout) if (fclose(file) == EOF) { perror(symbols); exit(1); } }
void WED_Select::ToDB(sqlite3 * db) { WED_Thing::ToDB(db); int err; sql_command nuke_all(db,"DELETE FROM WED_selection where id=@id;","@id"); sql_row1<int> me(GetID()); err = nuke_all.simple_exec(me); if(err != SQLITE_DONE) WED_ThrowPrintf("%s (%d)",sqlite3_errmsg(db),err); if (!mSelected.empty()) { sql_command write_ids(db,"INSERT INTO WED_selection(id,item) VALUES(@id,@item);","@id,@item"); for (set<int>::iterator i = mSelected.begin(); i != mSelected.end(); ++i) { sql_row2<int, int> id(GetID(),*i); err = write_ids.simple_exec(id); if(err != SQLITE_DONE) WED_ThrowPrintf("%s (%d)",sqlite3_errmsg(db),err); } } }