From b9c4a38022e5238356957bba6c2ffaef7a219a23 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Sun, 9 Sep 2012 23:14:55 +0000 Subject: On BSD, realpath(3) doesn't fail if the target doesn't exist, so test explicitly with stat(2). Fixes Savannah bug #35919. --- function.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'function.c') diff --git a/function.c b/function.c index 67405cc..325d930 100644 --- a/function.c +++ b/function.c @@ -2066,9 +2066,7 @@ func_realpath (char *o, char **argv, const char *funcname UNUSED) const char *path = 0; int doneany = 0; unsigned int len = 0; -#ifndef HAVE_REALPATH struct stat st; -#endif PATH_VAR (in); PATH_VAR (out); @@ -2083,9 +2081,9 @@ func_realpath (char *o, char **argv, const char *funcname UNUSED) #ifdef HAVE_REALPATH realpath (in, out) #else - abspath (in, out) && stat (out, &st) == 0 + abspath (in, out) #endif - ) + && stat (out, &st) == 0) { o = variable_buffer_output (o, out, strlen (out)); o = variable_buffer_output (o, " ", 1); -- cgit v1.2.3