Browse Source

Check availability of pwd.h

Tatsuhiro Tsujikawa 13 years ago
parent
commit
840ca5adb6
2 changed files with 7 additions and 4 deletions
  1. 2 1
      configure.ac
  2. 5 3
      src/util.cc

+ 2 - 1
configure.ac

@@ -317,7 +317,8 @@ AC_CHECK_HEADERS([argz.h \
                   unistd.h \
 		  utime.h \
                   wchar.h \
-		  ifaddrs.h])
+		  ifaddrs.h \
+		  pwd.h])
 
 # Checks for typedefs, structures, and compiler characteristics.
 AC_HEADER_STDBOOL

+ 5 - 3
src/util.cc

@@ -36,7 +36,9 @@
 
 #include <signal.h>
 #include <sys/types.h>
-#include <pwd.h>
+#ifdef HAVE_PWD_H
+#  include <pwd.h>
+#endif // HAVE_PWD_H
 
 #include <cerrno>
 #include <cassert>
@@ -1026,12 +1028,12 @@ std::string getHomeDir()
         }
       }
     }
-#else // !__MINGW32__
+#elif HAVE_PWD_H
     passwd* pw = getpwuid(geteuid());
     if(pw && pw->pw_dir) {
       return pw->pw_dir;
     }
-#endif // !__MINGW32__
+#endif // HAVE_PWD_H
     return A2STR::NIL;
   }
 }