Esempio n. 1
0
void free_wiredb(wire_db_t *wires) {
  GStringChunk *wirenames = wires->wirenames;
  if (wirenames)
    g_string_chunk_free(wirenames);
  g_free((void *)wires->details);
  g_free(wires->names);
  empty_db(wires, wires->dblen);
  g_free((void *)wires->wires);
  g_free(wires);
}
Esempio n. 2
0
File: txt.c Progetto: aahls/txt
/*
This sets the working directory. save_db() calls rely on the working directory
being unchanged after the call. Probably shouldn't rely on that side effect
*/
note_db_t get_db(enum db which_db){
    if(which_db==DB_GLOBAL){
        chdir(getenv("HOME"));
    }else if(which_db==DB_STD){
        char cwd[1024];
        while(access(NOTESFILE, F_OK) == -1){
            if(!strcmp(getcwd(cwd, 1024), "/")){
                chdir(getenv("HOME"));
                break;
            }
            chdir("..");
        }
    }
    if(access(NOTESFILE, F_OK) != -1)
        return load_db(NOTESFILE);
    else
        return empty_db();
}