Ondřej Vašík bfd5cf
diff -urNp coreutils-8.17-orig/src/ls.c coreutils-8.17/src/ls.c
Ondřej Vašík bfd5cf
--- coreutils-8.17-orig/src/ls.c	2012-05-11 20:59:01.467946060 +0200
Ondřej Vašík bfd5cf
+++ coreutils-8.17/src/ls.c	2012-05-11 21:00:38.276821883 +0200
Ondřej Vašík bfd5cf
@@ -3206,14 +3206,9 @@ make_link_name (char const *name, char const *linkname)
Ondřej Vašík bfd5cf
   if (IS_ABSOLUTE_FILE_NAME (linkname))
Ondřej Vašík bfd5cf
     return xstrdup (linkname);
Ondřej Vašík bfd5cf
Ondřej Vašík bfd5cf
-  /* The link is to a relative name.  Prepend any leading directory
Ondřej Vašík bfd5cf
-     in 'name' to the link name.  */
Ondřej Vašík bfd5cf
-  size_t prefix_len = dir_len (name);
Ondřej Vašík bfd5cf
-  if (prefix_len == 0)
Ondřej Vašík bfd5cf
-    return xstrdup (linkname);
Ondřej Vašík bfd5cf
-
Ondřej Vašík bfd5cf
-  char *p = xmalloc (prefix_len + 1 + strlen (linkname) + 1);
Ondřej Vašík bfd5cf
-  stpcpy (stpncpy (p, name, prefix_len + 1), linkname);
Ondřej Vašík bfd5cf
+  char *d = dir_name (name);
Ondřej Vašík bfd5cf
+  char *p = file_name_concat (d, linkname, NULL);
Ondřej Vašík bfd5cf
+  free (d);
Ondřej Vašík bfd5cf
   return p;
Ondřej Vašík bfd5cf
 }
Ondřej Vašík bfd5cf