summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2008-07-18 22:59:53 (UTC)
committer Michael Krelin <hacker@klever.net>2008-07-18 22:59:53 (UTC)
commitd1d3203e351e51cf905b3166f88c1a4d72140555 (patch) (side-by-side diff)
tree92a89f798591faacb3c8d2f3543971cb98b0b71e
parent04fb190243442e83349f129b523ab747e58100bf (diff)
downloadnapkin-d1d3203e351e51cf905b3166f88c1a4d72140555.zip
napkin-d1d3203e351e51cf905b3166f88c1a4d72140555.tar.gz
napkin-d1d3203e351e51cf905b3166f88c1a4d72140555.tar.bz2
make it build on Mac OS X with macports
Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--configure.ac4
-rw-r--r--src/db.cc19
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
@@ -9,8 +9,12 @@ 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])
diff --git a/src/db.cc b/src/db.cc
index d1e0a85..9ae5f8f 100644
--- a/src/db.cc
+++ b/src/db.cc
@@ -16,13 +16,32 @@ namespace napkin {
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))