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;
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 :
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 :