Unidiff1 files changed, 19 insertions, 0 deletions
|
diff --git a/src/db.cc b/src/db.cc index d1e0a85..9ae5f8f 100644 --- a/ src/db.cc+++ b/ src/db.cc |
|
@@ -17,11 +17,30 @@ namespace napkin { |
17 | datadir = h; |
17 | datadir = h; |
18 | datadir += "/."PACKAGE_NAME"/"; |
18 | datadir += "/."PACKAGE_NAME"/"; |
19 | }else{ |
19 | }else{ |
| |
20 | #if defined(HAVE_GET_CURRENT_DIR_NAME) |
20 | char *cwd = get_current_dir_name(); |
21 | char *cwd = get_current_dir_name(); |
21 | if(!cwd) |
22 | if(!cwd) |
22 | throw napkin::exception("failed to get_current_dir_name()"); |
23 | throw napkin::exception("failed to get_current_dir_name()"); |
23 | datadir = cwd; |
24 | datadir = cwd; |
24 | free(cwd); |
25 | free(cwd); |
| |
26 | #elif defined(HAVE_GETCWD) |
| |
27 | { |
| |
28 | char cwd[ |
| |
29 | # if defined(MAXPATH) |
| |
30 | MAXPATH |
| |
31 | # elif defined(MAXPATHLEN) |
| |
32 | MAXPATHLEN |
| |
33 | # else /* maxpath */ |
| |
34 | 512 |
| |
35 | #endif /* maxpath */ |
| |
36 | ]; |
| |
37 | if(!getcwd(cwd,sizeof(cwd))) |
| |
38 | throw napkin::exception("failed to getcwd()"); |
| |
39 | datadir = cwd; |
| |
40 | } |
| |
41 | #else /* get cwd */ |
| |
42 | # error dunno how to get current workdir |
| |
43 | #endif /* get cwd */ |
25 | datadir += "/."PACKAGE_NAME"/"; |
44 | datadir += "/."PACKAGE_NAME"/"; |
26 | } |
45 | } |
27 | if(access(datadir.c_str(),R_OK|W_OK) |
46 | if(access(datadir.c_str(),R_OK|W_OK) |
|