Ondrej Vasik 13c6ce
Fixes some small bugs (merged upstream patches)
Ondrej Vasik 13c6ce
Fixed RedHat Bugzillas: 250089(fix by jplans@redhat.com), 239266 
Ondrej Vasik 13c6ce
Ondrej Vasik 13c6ce
diff -Naurp coreutils-5.2.1/lib/fts.c coreutils-5.2.1.new/lib/fts.c
Ondrej Vasik 13c6ce
--- coreutils-5.2.1/lib/fts.c	2003-12-20 10:05:23.000000000 -0800
Ondrej Vasik 13c6ce
+++ coreutils-5.2.1.new/lib/fts.c	2007-06-14 11:38:00.696001000 -0700
Ondrej Vasik 13c6ce
@@ -685,7 +685,7 @@ fts_read(sp)
Ondrej Vasik 13c6ce
			   /* If fts_build's call to fts_safe_changedir failed
Ondrej Vasik 13c6ce
			   because it was not able to fchdir into a
Ondrej Vasik 13c6ce
			   subdirectory, tell the caller.  */
Ondrej Vasik 13c6ce
-			if (p->fts_errno)
Ondrej Vasik 13c6ce
+			if (p->fts_errno && p->fts_info != FTS_DNR)
Ondrej Vasik 13c6ce
				p->fts_info = FTS_ERR;
Ondrej Vasik 13c6ce
			LEAVE_DIR (sp, p, "2");
Ondrej Vasik 13c6ce
			return (p);
Ondrej Vasik 13c6ce
		}
Ondrej Vasik 13c6ce
diff -ur coreutils-6.9-orig/src/du.c coreutils-6.9/src/du.c
Ondrej Vasik 13c6ce
--- coreutils-6.9-orig/src/du.c
Ondrej Vasik 13c6ce
+++ coreutils-6.9/src/du.c
Ondrej Vasik 13c6ce
     duinfo_add (&dulvl[level].ent, &dui;;
Ondrej Vasik 13c6ce
 
Ondrej Vasik 13c6ce
   /* Even if this directory is unreadable or we can't chdir into it,
Ondrej Vasik 13c6ce
-     do let its size contribute to the total, ... */
Ondrej Vasik 13c6ce
+     do let its size contribute to the total. */
Ondrej Vasik 13c6ce
   duinfo_add (&tot_dui, &dui;;
Ondrej Vasik 13c6ce
 
Ondrej Vasik 13c6ce
-  /* ... but don't print out a total for it, since without the size(s)
Ondrej Vasik 13c6ce
-     of any potential entries, it could be very misleading.  */
Ondrej Vasik 13c6ce
-  if (ent->fts_info == FTS_DNR)
Ondrej Vasik 13c6ce
-    return ok;
Ondrej Vasik 13c6ce
-
Ondrej Vasik 13c6ce
   /* If we're not counting an entry, e.g., because it's a hard link
Ondrej Vasik 13c6ce
      to a file we've already counted (and --count-links), then don't
Ondrej Vasik 13c6ce
      print a line for it.  */
Ondrej Vasik 13c6ce
diff -urNp coreutils-6.9-orig/src/dircolors.hin coreutils-6.9/src/dircolors.hin
Ondrej Vasik 13c6ce
--- coreutils-6.9-orig/src/dircolors.hin	2007-03-18 22:36:43.000000000 +0100
Ondrej Vasik 13c6ce
+++ coreutils-6.9/src/dircolors.hin	2007-11-02 12:27:03.000000000 +0100
Ondrej Vasik 13c6ce
@@ -27,6 +27,7 @@ TERM cons25
Ondrej Vasik 13c6ce
 TERM console
Ondrej Vasik 13c6ce
 TERM cygwin
Ondrej Vasik 13c6ce
 TERM dtterm
Ondrej Vasik 13c6ce
+TERM eterm-color
Ondrej Vasik 13c6ce
 TERM gnome
Ondrej Vasik 13c6ce
 TERM konsole
Ondrej Vasik 13c6ce
 TERM kterm
Ondrej Vasik 13c6ce
@@ -40,6 +40,7 @@ TERM rxvt-cygwin
Ondrej Vasik 13c6ce
 TERM rxvt-cygwin-native
Ondrej Vasik 13c6ce
 TERM rxvt-unicode
Ondrej Vasik 13c6ce
 TERM screen
Ondrej Vasik 13c6ce
+TERM screen-256color
Ondrej Vasik 13c6ce
 TERM screen-bce
Ondrej Vasik 13c6ce
 TERM screen-w
Ondrej Vasik 13c6ce
 TERM screen.linux
Ondrej Vasik 13c6ce
@@ -46,7 +47,9 @@ TERM screen-w
Ondrej Vasik 13c6ce
 TERM screen.linux
Ondrej Vasik 13c6ce
 TERM vt100
Ondrej Vasik 13c6ce
 TERM xterm
Ondrej Vasik 13c6ce
+TERM xterm-16color
Ondrej Vasik 13c6ce
 TERM xterm-256color
Ondrej Vasik 13c6ce
+TERM xterm-88color
Ondrej Vasik 13c6ce
 TERM xterm-color
Ondrej Vasik 13c6ce
 TERM xterm-debian
Ondrej Vasik 13c6ce
Ondrej Vasik 13c6ce
diff -ur a/src/ls.c b/src/ls.c
Ondrej Vasik 13c6ce
--- a/src/ls.c
Ondrej Vasik 13c6ce
+++ b/src/ls.c
Ondrej Vasik 13c6ce
@@ -1168,7 +1168,7 @@ main (int argc, char **argv)
Ondrej Vasik 13c6ce
     {
Ondrej Vasik 13c6ce
       /* Avoid following symbolic links when possible.  */
Ondrej Vasik 13c6ce
       if (is_colored (C_ORPHAN)
Ondrej Vasik 13c6ce
-	  || is_colored (C_EXEC)
Ondrej Vasik 13c6ce
+	  || (is_colored (C_EXEC) && color_symlink_as_referent)
Ondrej Vasik 13c6ce
	  || (is_colored (C_MISSING) && format == long_format))
Ondrej Vasik 13c6ce
	check_symlink_color = true;
Ondrej Vasik cfcdd2
Ondrej Vasik cfcdd2
@@ -2570,7 +2574,8 @@ gobble_file (char const *name, enum file
Ondrej Vasik cfcdd2
       || ((print_inode || format_needs_type)
Ondrej Vasik cfcdd2
 	  && (type == symbolic_link || type == unknown)
Ondrej Vasik cfcdd2
 	  && (dereference == DEREF_ALWAYS
Ondrej Vasik cfcdd2
-	      || (command_line_arg && dereference != DEREF_NEVER)))
Ondrej Vasik cfcdd2
+	      || (command_line_arg && dereference != DEREF_NEVER)
Ondrej Vasik cfcdd2
+	      || color_symlink_as_referent || check_symlink_color))
Ondrej Vasik cfcdd2
       /* Command line dereferences are already taken care of by the above
Ondrej Vasik cfcdd2
 	 assertion that the inode number is not yet known.  */
Ondrej Vasik cfcdd2
       || (print_inode && inode == NOT_AN_INODE_NUMBER) 
Ondrej Vasik 13c6ce
@@ -2713,6 +2713,12 @@ gobble_file (char const *name, enum filetype type, ino_t inode,
Ondrej Vasik 13c6ce
          free (linkname);
Ondrej Vasik 13c6ce
        }
Ondrej Vasik 13c6ce
 
Ondrej Vasik 13c6ce
+      /* When not distinguishing types of symlinks, pretend we know that
Ondrej Vasik 13c6ce
+        it is stat'able, so that it will be colored as a regular symlink,
Ondrej Vasik 13c6ce
+        and not as an orphan.  */
Ondrej Vasik 13c6ce
+      if (S_ISLNK (f->stat.st_mode) && !check_symlink_color)
Ondrej Vasik 13c6ce
+       f->linkok = true;
Ondrej Vasik 13c6ce
+
Ondrej Vasik 13c6ce
       if (S_ISLNK (f->stat.st_mode))
Ondrej Vasik 13c6ce
        f->filetype = symbolic_link;
Ondrej Vasik 13c6ce
       else if (S_ISDIR (f->stat.st_mode))