From: Ton v. O. <tvo...@us...> - 2007-09-28 01:23:32
|
Update of /cvsroot/easycalc/easycalc/mlib In directory sc8-pr-cvs17:/tmp/cvs-serv6359/mlib Modified Files: calcDB.c history.c Log Message: Set backup attribute on calc_xxx.prc and all databases. Use a single function for opening the databases (dbutil.[ch]). Index: history.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/mlib/history.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** history.c 12 Sep 2006 19:40:56 -0000 1.5 --- history.c 28 Sep 2007 01:23:25 -0000 1.6 *************** *** 32,35 **** --- 32,36 ---- #include "history.h" #include "display.h" + #include "dbutil.h" static DmOpenRef dbRef; *************** *** 229,242 **** } - static Err history_open_byid(LocalID dbid) MLIB; - static Err - history_open_byid(LocalID dbid) - { - dbRef=DmOpenDatabase(CARDNO,dbid,dmModeReadWrite); - if (dbRef) - return DmGetLastErr(); - return 0; - } - /*********************************************************************** * --- 230,233 ---- *************** *** 253,307 **** history_open(void) { ! Err err; ! LocalID dbid; ! UInt16 version; ! UInt32 creator; ! UInt32 type; ! ! dbid=DmFindDatabase(CARDNO,HISTORYDBNAME); ! if (dbid) { /* Database exists */ ! DmDatabaseInfo(CARDNO,dbid, ! NULL, /* name */ ! NULL, /* attrib */ ! &version, /* version */ ! NULL, /* crDate */ ! NULL, /* modDate */ ! NULL, /* bckUpDate */ ! NULL, /* modNum */ ! NULL, /* appinfoID */ ! NULL, /* sortInfoID */ ! &type, /* Type */ ! &creator); /* Creator */ ! ! if (version==HIST_DB_VERSION && creator==LIB_ID && type==DBTYPE) ! return history_open_byid(dbid); ! ! /* Database exists, but with uncorrect version */ ! err=DmDeleteDatabase(CARDNO,dbid); ! if (err) ! return err; ! } ! ! /* Database doesn't exist or old version */ ! err=DmCreateDatabase(CARDNO,HISTORYDBNAME,LIB_ID,DBTYPE,false); ! if (err) ! return err; ! ! dbid=DmFindDatabase(CARDNO,HISTORYDBNAME); ! ! version=HIST_DB_VERSION; ! DmSetDatabaseInfo(CARDNO,dbid, ! NULL, /* name */ ! NULL, /* attrib */ ! &version, /* version */ ! NULL, /* crDate */ ! NULL, /* modDate */ ! NULL, /* bckUpDate */ ! NULL, /* modNum */ ! NULL, /* appinfoID */ ! NULL, /* sortInfoID */ ! NULL, /* Type */ ! NULL); /* Creator */ ! return history_open_byid(dbid); } --- 244,248 ---- history_open(void) { ! return open_db(HISTORYDBNAME, HIST_DB_VERSION, LIB_ID, DBTYPE, &dbRef); } Index: calcDB.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/mlib/calcDB.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** calcDB.c 12 Sep 2006 19:40:56 -0000 1.11 --- calcDB.c 28 Sep 2007 01:23:25 -0000 1.12 *************** *** 32,35 **** --- 32,36 ---- #include "calcDB.h" #include "stack.h" + #include "dbutil.h" static DmOpenRef gDB; *************** *** 554,567 **** } - static Err db_open_byid(LocalID dbid) MLIB; - static Err - db_open_byid(LocalID dbid) - { - gDB=DmOpenDatabase(CARDNO,dbid,dmModeReadWrite); - if (gDB) - return DmGetLastErr(); - return 0; - } - /*********************************************************************** * --- 555,558 ---- *************** *** 582,636 **** db_open() { ! Err err; ! LocalID dbid; ! UInt16 version; ! UInt32 creator; ! UInt32 type; ! ! dbid=DmFindDatabase(CARDNO,DBNAME); ! if (dbid) { /* Database exists */ ! DmDatabaseInfo(CARDNO,dbid, ! NULL, /* name */ ! NULL, /* attrib */ ! &version, /* version */ ! NULL, /* crDate */ ! NULL, /* modDate */ ! NULL, /* bckUpDate */ ! NULL, /* modNum */ ! NULL, /* appinfoID */ ! NULL, /* sortInfoID */ ! &type, /* Type */ ! &creator); /* Creator */ ! ! if (version==DBVERSION && creator==LIB_ID && type==DBTYPE) ! return db_open_byid(dbid); ! ! /* Database exists, but with uncorrect version */ ! err=DmDeleteDatabase(CARDNO,dbid); ! if (err) ! return err; ! } ! ! /* Database doesn't exist or old version */ ! err=DmCreateDatabase(CARDNO,DBNAME,LIB_ID,DBTYPE,false); ! if (err) ! return err; ! ! dbid=DmFindDatabase(CARDNO,DBNAME); ! ! version=DBVERSION; ! DmSetDatabaseInfo(CARDNO,dbid, ! NULL, /* name */ ! NULL, /* attrib */ ! &version, /* version */ ! NULL, /* crDate */ ! NULL, /* modDate */ ! NULL, /* bckUpDate */ ! NULL, /* modNum */ ! NULL, /* appinfoID */ ! NULL, /* sortInfoID */ ! NULL, /* Type */ ! NULL); /* Creator */ ! return db_open_byid(dbid); } --- 573,577 ---- db_open() { ! return open_db(DBNAME, DBVERSION, LIB_ID, DBTYPE, &gDB); } |