62 |
int mode; |
int mode; |
63 |
int flags; |
int flags; |
64 |
{ |
{ |
|
char *p; |
|
|
|
|
65 |
assert(opened == 0); |
assert(opened == 0); |
66 |
/* |
/* |
67 |
* We create GPATH just first time. |
* We create GPATH just first time. |
69 |
_mode = mode; |
_mode = mode; |
70 |
if (mode == 1 && created) |
if (mode == 1 && created) |
71 |
mode = 0; |
mode = 0; |
72 |
p = strdup(makepath(dbpath, dbname(GPATH), NULL)); |
dbop = dbop_open(makepath(dbpath, dbname(GPATH), NULL), mode, 0644, flags); |
|
if (p == NULL) |
|
|
die("short of memory."); |
|
|
dbop = dbop_open(p, mode, 0644, flags); |
|
|
free(p); |
|
73 |
if (dbop == NULL) |
if (dbop == NULL) |
74 |
return -1; |
return -1; |
75 |
if (mode == 1) |
if (mode == 1) |
76 |
_nextkey = 1; |
_nextkey = 1; |
77 |
else { |
else { |
78 |
if (!(p = dbop_get(dbop, NEXTKEY))) |
char *p = dbop_get(dbop, NEXTKEY);; |
79 |
|
|
80 |
|
if (p == NULL) |
81 |
die("nextkey not found in GPATH."); |
die("nextkey not found in GPATH."); |
82 |
_nextkey = atoi(p); |
_nextkey = atoi(p); |
83 |
} |
} |
226 |
|
|
227 |
assert(gfind_opened == 0); |
assert(gfind_opened == 0); |
228 |
assert(gfind_first == 0); |
assert(gfind_first == 0); |
229 |
path = strdup(makepath(dbpath, dbname(GPATH), NULL)); |
gfind_dbop = dbop_open(makepath(dbpath, dbname(GPATH), NULL), 0, 0, 0); |
|
if (path == NULL) |
|
|
die("short of memory."); |
|
|
gfind_dbop = dbop_open(path, 0, 0, 0); |
|
|
free(path); |
|
230 |
if (gfind_dbop == NULL) |
if (gfind_dbop == NULL) |
231 |
die("GPATH not found."); |
die("GPATH not found."); |
232 |
strlimcpy(gfind_prefix, (local) ? local : "./", sizeof(gfind_prefix)); |
strlimcpy(gfind_prefix, (local) ? local : "./", sizeof(gfind_prefix)); |