summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libidu/walker.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/libidu/walker.c b/libidu/walker.c
index 8064282..8a27fec 100644
--- a/libidu/walker.c
+++ b/libidu/walker.c
@@ -611,23 +611,17 @@ struct file_link *
get_current_dir_link (void)
{
struct file_link *dir_link;
- char *cwd_0;
char *cwd;
- char *xcwd = 0;
char **links_0;
char **links;
if (current_dir_link)
return current_dir_link;
- cwd_0 = getenv ("PWD");
- if (cwd_0)
- cwd_0 = xstrdup (cwd_0);
- if (!same_as_dot (cwd_0))
- cwd_0 = xcwd = xgetcwd ();
- if (cwd_0 == 0)
+ cwd = getenv ("PWD");
+ cwd = same_as_dot (cwd) ? xstrdup (cwd) : xgetcwd ();
+ if (cwd == NULL)
error (1, errno, _("can't get working directory"));
- cwd = cwd_0;
#if HAVE_LINK
dir_link = get_link_from_string (SLASH_STRING, 0);
dir_link->fl_flags = (dir_link->fl_flags & ~FL_TYPE_MASK) | FL_TYPE_DIR;
@@ -645,7 +639,7 @@ get_current_dir_link (void)
}
chdir_to_link (dir_link);
free (links_0);
- free (xcwd);
+ free (cwd);
current_dir_link = dir_link;
return dir_link;
}