Package: busybox-cvs
Version: 20040101-6
Tags: patch

ls prints a newline before the first directory header:

 $ mkdir /tmp/foo
 $ busybox ls /tmp/foo

 /tmp/foo:
 $ exit

but it should be omitted.  The attached patch makes it do so.

-- 
Matt Kraai            [EMAIL PROTECTED]            http://ftbfs.org/
--- busybox-cvs-20040101/coreutils/ls.c.orig    2004-02-09 17:21:27.000000000 -0800
+++ busybox-cvs-20040101/coreutils/ls.c 2004-02-09 17:21:33.000000000 -0800
@@ -532,7 +532,7 @@
 }
 
 /*----------------------------------------------------------------------*/
-static void showdirs(struct dnode **dn, int ndirs)
+static void showdirs(struct dnode **dn, int ndirs, int first)
 {
        int i, nfiles;
        struct dnode **subdnp;
@@ -547,7 +547,10 @@
 
        for (i = 0; i < ndirs; i++) {
                if (all_fmt & (DISP_DIRNAME | DISP_RECURSIVE)) {
-                       printf("\n%s:\n", dn[i]->fullname);
+                       if (!first)
+                               printf("\n");
+                       first = 0;
+                       printf("%s:\n", dn[i]->fullname);
                }
                subdnp = list_dir(dn[i]->fullname);
                nfiles = countfiles(subdnp);
@@ -566,7 +569,7 @@
 #ifdef CONFIG_FEATURE_LS_SORTFILES
                                        shellsort(dnd, dndirs);
 #endif
-                                       showdirs(dnd, dndirs);
+                                       showdirs(dnd, dndirs, 0);
                                        free(dnd);      /* free the array of dnode 
pointers to the dirs */
                                }
                        }
@@ -1084,7 +1087,7 @@
 #ifdef CONFIG_FEATURE_LS_SORTFILES
                        shellsort(dnd, dndirs);
 #endif
-                       showdirs(dnd, dndirs);
+                       showdirs(dnd, dndirs, dnfiles == 0);
                }
        }
        return (status);

Reply via email to