|
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);
}
|