bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] mkdir/split: send --verbose output to stdout


From: Jim Meyering
Subject: Re: [PATCH] mkdir/split: send --verbose output to stdout
Date: Thu, 07 Feb 2008 08:35:44 +0100

Steven Schubiger <address@hidden> wrote:
> +2008-02-01  Steven Schubiger  <address@hidden>
> +
> +     * src/mkdir.c: Send --verbose output to stdout.
> +     * src/split.c: Likewise.
> +     Update texinfo documentation for split.
> +     Adjust tests for mkdir/split.
> +     * tests/mkdir/p-v: Capture verbose output which previously was
> +     being emitted to stderr from stdout.
> +     * tests/misc/split-a: Likewise.

Thanks for the patch.
I've made some minor changes and handled the usual administrivia.

        mkdir, split: write --verbose output to stdout, not stderr.

        * src/mkdir.c (verbose_output): New function.
        (announce_mkdir): Use it.
        * src/split.c (usage): Update.
        * src/split.c (cwrite): Write to stdout, not stderr.
        * doc/coreutils.texi (split invocation): Remove the mention
        of --verbose output being printed to stderr.
        * tests/mkdir/p-v: Redirect stdout, not stderr.
        * tests/misc/split-a: Likewise.
        * NEWS: Mention this change.
        * TODO: Remove this item.

Signed-off-by: Jim Meyering <address@hidden>
---
 ChangeLog          |   14 ++++++++++++++
 NEWS               |    4 ++++
 TODO               |    8 --------
 doc/coreutils.texi |    2 +-
 src/mkdir.c        |   17 +++++++++++++++--
 src/split.c        |    8 ++++----
 tests/misc/split-a |    4 ++--
 tests/mkdir/p-v    |    4 ++--
 8 files changed, 42 insertions(+), 19 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c6c44c2..597db63 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2008-02-06  Steven Schubiger  <address@hidden>
+
+       mkdir, split: write --verbose output to stdout, not stderr.
+       * src/mkdir.c (verbose_output): New function.
+       (announce_mkdir): Use it.
+       * src/split.c (usage): Update.
+       * src/split.c (cwrite): Write to stdout, not stderr.
+       * doc/coreutils.texi (split invocation): Remove the mention
+       of --verbose output being printed to stderr.
+       * tests/mkdir/p-v: Redirect stdout, not stderr.
+       * tests/misc/split-a: Likewise.
+       * NEWS: Mention this change.
+       * TODO: Remove this item.
+
 2008-02-04  Jim Meyering  <address@hidden>

        * Makefile.maint (announcement): Remove stale comment.
diff --git a/NEWS b/NEWS
index 0d2d97d..3d714fc 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,10 @@ GNU coreutils NEWS                                    -*- 
outline -*-
   "rmdir --ignore-fail-on-non-empty" detects and ignores the failure
   in more cases when a directory is empty.

+** Consistency
+
+  mkdir and split now write --verbose output to stdout, not stderr.
+

 * Noteworthy changes in release 6.10 (2008-01-22) [stable]

diff --git a/TODO b/TODO
index a442620..3cec054 100644
--- a/TODO
+++ b/TODO
@@ -46,14 +46,6 @@ And once that's done, add an exclusion so that `cp --link'
 no longer incurs the overhead of saving src. dev/ino and dest. filename
 in the hash table.

-See if we can be consistent about where --verbose sends its output:
-  These all send --verbose output to stdout:
-    head, tail, rm, cp, mv, ln, chmod, chown, chgrp, install, ln
-  These send it to stderr:
-    shred mkdir split
-  shred must write --verbose output to stderr
-  readlink is different
-
 Write an autoconf test to work around build failure in HPUX's 64-bit mode.
 See notes in README -- and remove them once there's a work-around.

diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index 40aee6f..aca5fbd 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -2838,7 +2838,7 @@ Use digits in suffixes rather than lower-case letters.

 @itemx --verbose
 @opindex --verbose
-Write a diagnostic to standard error just before each output file is opened.
+Write a diagnostic just before each output file is opened.

 @end table

diff --git a/src/mkdir.c b/src/mkdir.c
index 0704077..3781065 100644
--- a/src/mkdir.c
+++ b/src/mkdir.c
@@ -1,5 +1,5 @@
 /* mkdir -- make directories
-   Copyright (C) 90, 1995-2002, 2004-2007 Free Software Foundation, Inc.
+   Copyright (C) 90, 1995-2002, 2004-2008 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -79,6 +79,19 @@ Mandatory arguments to long options are mandatory for short 
options too.\n\
   exit (status);
 }

+/* Verbose formatted output of variable count of arguments.  */
+static void
+verbose_output (FILE *fp, char const *fmt, ...)
+{
+  va_list ap;
+  fputs (program_name, fp);
+  fputs (": ", fp);
+  va_start (ap, fmt);
+  vfprintf (fp, fmt, ap);
+  va_end (ap);
+  fputc ('\n', fp);
+}
+
 /* Options passed to subsidiary functions.  */
 struct mkdir_options
 {
@@ -105,7 +118,7 @@ announce_mkdir (char const *dir, void *options)
 {
   struct mkdir_options const *o = options;
   if (o->created_directory_format)
-    error (0, 0, o->created_directory_format, quote (dir));
+    verbose_output (stdout, o->created_directory_format, quote (dir));
 }

 /* Make ancestor directory DIR, whose last component is COMPONENT,
diff --git a/src/split.c b/src/split.c
index 5807a1c..f84d40e 100644
--- a/src/split.c
+++ b/src/split.c
@@ -1,5 +1,5 @@
 /* split.c -- split a file into pieces.
-   Copyright (C) 1988, 1991, 1995-2007 Free Software Foundation, Inc.
+   Copyright (C) 1988, 1991, 1995-2008 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -122,8 +122,8 @@ Mandatory arguments to long options are mandatory for short 
options too.\n\
   -l, --lines=NUMBER      put NUMBER lines per output file\n\
 "), DEFAULT_SUFFIX_LENGTH);
       fputs (_("\
-      --verbose           print a diagnostic to standard error just\n\
-                            before each output file is opened\n\
+      --verbose           print a diagnostic just before each\n\
+                            output file is opened\n\
 "), stdout);
       fputs (HELP_OPTION_DESCRIPTION, stdout);
       fputs (VERSION_OPTION_DESCRIPTION, stdout);
@@ -208,7 +208,7 @@ cwrite (bool new_file_flag, const char *bp, size_t bytes)

       next_file_name ();
       if (verbose)
-       fprintf (stderr, _("creating file %s\n"), quote (outfile));
+       fprintf (stdout, _("creating file %s\n"), quote (outfile));
       output_desc = open (outfile,
                          O_WRONLY | O_CREAT | O_TRUNC | O_BINARY,
                          (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP
diff --git a/tests/misc/split-a b/tests/misc/split-a
index 794115f..a8eed38 100755
--- a/tests/misc/split-a
+++ b/tests/misc/split-a
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Show that split -a works.

-# Copyright (C) 2002-2007 Free Software Foundation, Inc.
+# Copyright (C) 2002-2008 Free Software Foundation, Inc.

 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -39,7 +39,7 @@ test -f xaz && fail=1
 rm -f x*

 # With a longer suffix, it must succeed.
-split --verbose -b 1 -a 2 in 2> err || fail=1
+split --verbose -b 1 -a 2 in > err || fail=1
 test -f xaa || fail=1
 test -f xaz || fail=1
 test -f xba || fail=1
diff --git a/tests/mkdir/p-v b/tests/mkdir/p-v
index 2c84b41..569e9b0 100755
--- a/tests/mkdir/p-v
+++ b/tests/mkdir/p-v
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Test mkdir -pv.

-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2006-2008 Free Software Foundation, Inc.

 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@ fi
 . $srcdir/../lang-default
 . $srcdir/../test-lib.sh

-mkdir -pv foo/a/b/c/d 2>out || exit
+mkdir -pv foo/a/b/c/d >out || exit

 diff - out <<\EOF
 mkdir: created directory `foo'
--
1.5.4.30.g7dbe




reply via email to

[Prev in Thread] Current Thread [Next in Thread]