Add strerror() string to chdir() error message
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 29 Aug 2012 03:01:23 +0000 (23:01 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 29 Aug 2012 03:01:23 +0000 (23:01 -0400)
src/port/exec.c

index 1687c9c9729c21c3b21808357e3b6c1c88d77010..9160b6367874c1149c6582a734d96d2be3f1f39e 100644 (file)
 #include <unistd.h>
 
 #ifndef FRONTEND
-/* We use only 3-parameter elog calls in this file, for simplicity */
+/* We use only 3- and 4-parameter elog calls in this file, for simplicity */
 /* NOTE: caller must provide gettext call around str! */
 #define log_error(str, param)  elog(LOG, str, param)
+#define log_error4(str, param, arg1)   elog(LOG, str, param, arg1)
 #else
 #define log_error(str, param)  (fprintf(stderr, str, param), fputc('\n', stderr))
+#define log_error4(str, param, arg1)   (fprintf(stderr, str, param, arg1), fputc('\n', stderr))
 #endif
 
 #ifdef WIN32_ONLY_COMPILER
@@ -252,7 +254,7 @@ resolve_symlinks(char *path)
            *lsep = '\0';
            if (chdir(path) == -1)
            {
-               log_error(_("could not change directory to \"%s\""), path);
+               log_error4(_("could not change directory to \"%s\": %s"), path, strerror(errno));
                return -1;
            }
            fname = lsep + 1;
@@ -288,7 +290,7 @@ resolve_symlinks(char *path)
 
    if (chdir(orig_wd) == -1)
    {
-       log_error(_("could not change directory to \"%s\""), orig_wd);
+       log_error4(_("could not change directory to \"%s\": %s"), orig_wd, strerror(errno));
        return -1;
    }
 #endif   /* HAVE_READLINK */