author | Michael Krelin <hacker@klever.net> | 2008-07-19 14:47:54 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2008-07-19 14:47:54 (UTC) |
commit | 8a24019a28e046189e15fdbade21d1a716edbb56 (patch) (side-by-side diff) | |
tree | 11fe3fd5b5cca6827b019de30f78b046002c602d | |
parent | 3a827660c11527f6d93008336994fb9431bc34f3 (diff) | |
parent | d1d3203e351e51cf905b3166f88c1a4d72140555 (diff) | |
download | napkin-8a24019a28e046189e15fdbade21d1a716edbb56.zip napkin-8a24019a28e046189e15fdbade21d1a716edbb56.tar.gz napkin-8a24019a28e046189e15fdbade21d1a716edbb56.tar.bz2 |
Merge commit 'bee/master'
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | src/db.cc | 19 |
2 files changed, 23 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 3ca0b4e..fbf373b 100644 --- a/configure.ac +++ b/configure.ac @@ -7,12 +7,16 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_PROG_INSTALL AC_PROG_CXX AC_PROG_CC AC_PROG_LIBTOOL PKG_PROG_PKG_CONFIG +onegetcwd=false +AC_CHECK_FUNCS([get_current_dir_name getcwd],[onegetcwd=true;break]) +$onegetcwd || AC_MSG_ERROR([no function to get current directory found. weird.]) + AC_HEADER_STDC AC_PATH_PROG([XSLTPROC],[xsltproc],[true]) PKG_CHECK_MODULES([MODULES],[gtkmm-2.4 sqlite3],,[ AC_MSG_ERROR([not all dependencies could be satisfied]) @@ -14,17 +14,36 @@ namespace napkin { db_t::db_t() { const char *h = getenv("HOME"); if(h) { datadir = h; datadir += "/."PACKAGE_NAME"/"; }else{ +#if defined(HAVE_GET_CURRENT_DIR_NAME) char *cwd = get_current_dir_name(); if(!cwd) throw napkin::exception("failed to get_current_dir_name()"); datadir = cwd; free(cwd); +#elif defined(HAVE_GETCWD) + { + char cwd[ +# if defined(MAXPATH) + MAXPATH +# elif defined(MAXPATHLEN) + MAXPATHLEN +# else /* maxpath */ + 512 +#endif /* maxpath */ + ]; + if(!getcwd(cwd,sizeof(cwd))) + throw napkin::exception("failed to getcwd()"); + datadir = cwd; + } +#else /* get cwd */ +# error dunno how to get current workdir +#endif /* get cwd */ datadir += "/."PACKAGE_NAME"/"; } if(access(datadir.c_str(),R_OK|W_OK) && mkdir(datadir.c_str(),0700)) throw napkin::exception("no access to '"+datadir+"' directory"); open((datadir+PACKAGE_NAME".db").c_str()); |