]> granicus.if.org Git - php/commitdiff
- Fix problems with c mode
authorMarcus Boerger <helly@php.net>
Mon, 10 May 2004 01:42:43 +0000 (01:42 +0000)
committerMarcus Boerger <helly@php.net>
Mon, 10 May 2004 01:42:43 +0000 (01:42 +0000)
ext/dba/dba_db2.c
ext/dba/dba_db3.c
ext/dba/dba_db4.c

index d544c83b8b45333dbdb5c52c3647fc141c14f22b..a8760eeb8628e55781909b6dae78c754bf7464d8 100644 (file)
@@ -53,6 +53,10 @@ DBA_OPEN_FUNC(db2)
        struct stat check_stat;
        int s = VCWD_STAT(info->path, &check_stat);
 
+       if (!s && !check_stat.st_size) {
+               info->mode = DBA_TRUNC; /* force truncate */
+       }
+
        type = info->mode == DBA_READER ? DB_UNKNOWN :
                info->mode == DBA_TRUNC ? DB_BTREE :
                s ? DB_BTREE : DB_UNKNOWN;
index cfb8791a387f6174618033402c67b2b25c0f7d76..8d039d4819a6290ea2da78d9c4e114d5287e8f7d 100644 (file)
@@ -62,9 +62,13 @@ DBA_OPEN_FUNC(db3)
        struct stat check_stat;
        int s = VCWD_STAT(info->path, &check_stat);
 
-       type =  info->mode == DBA_READER ? DB_UNKNOWN :
+       if (!s && !check_stat.st_size) {
+               info->mode = DBA_TRUNC; /* force truncate */
+       }
+
+       type = info->mode == DBA_READER ? DB_UNKNOWN :
                info->mode == DBA_TRUNC ? DB_BTREE :
-               s? DB_BTREE : DB_UNKNOWN;
+               s ? DB_BTREE : DB_UNKNOWN;
          
        gmode = info->mode == DBA_READER ? DB_RDONLY :
                (info->mode == DBA_CREAT && s) ? DB_CREATE : 
index 7059f5eee0c28afbdea2a730d1fd2c29df571603..34e2af1a1f08410f6518221a71f090086b35f972 100644 (file)
@@ -63,9 +63,13 @@ DBA_OPEN_FUNC(db4)
        struct stat check_stat;
        int s = VCWD_STAT(info->path, &check_stat);
 
-       type =  info->mode == DBA_READER ? DB_UNKNOWN :
+       if (!s && !check_stat.st_size) {
+               info->mode = DBA_TRUNC; /* force truncate */
+       }
+
+       type = info->mode == DBA_READER ? DB_UNKNOWN :
                info->mode == DBA_TRUNC ? DB_BTREE :
-               s? DB_BTREE : DB_UNKNOWN;
+               s ? DB_BTREE : DB_UNKNOWN;
          
        gmode = info->mode == DBA_READER ? DB_RDONLY :
                (info->mode == DBA_CREAT && s) ? DB_CREATE :