From 8a24019a28e046189e15fdbade21d1a716edbb56 Mon Sep 17 00:00:00 2001 From: Michael Krelin Date: Sat, 19 Jul 2008 14:47:54 +0000 Subject: Merge commit 'bee/master' --- diff --git a/configure.ac b/configure.ac index 3ca0b4e..fbf373b 100644 --- a/configure.ac +++ b/configure.ac @@ -10,6 +10,10 @@ 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]) 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 { 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) -- cgit v0.9.0.2