m4-patches
[Top][All Lists]
Advanced

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

Re: --debugfile behavior


From: Eric Blake
Subject: Re: --debugfile behavior
Date: Tue, 23 Dec 2008 20:25:49 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.18) Gecko/20081105 Thunderbird/2.0.0.18 Mnenhy/0.7.5.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Eric Blake on 12/22/2008 7:00 AM:
> While working on adding debugmode(`+o') for branch-1.6, I noticed that
> there is no command-line way to change the current debug file to stderr if
> it has been changed elsewhere (at least, not without OS support for
> /dev/stderr or /proc/self/fd/2...).  I introduced --debugfile in m4 1.4.7
> with a mandatory argument 2 years ago, but think that an optional argument
> would serve us better; the only drawback is that anyone using the
> non-canonical form 'm4 --debugfile trace' instead of following the
> recommended 'm4 --debugfile=trace' will be broken.  But since --debugfile
> isn't that old, and the primary user that I am aware of (autoconf) uses
> the correct form, I'm okay with making this change.

I've gone ahead and pushed this change.

>  The older spellings
> of --error-output and -o options do not change in behavior for branch-1.4,
> although I'm thinking that 2 years has been long enough with --debugfile
> available that I can make branch-1.6 issue a deprecation warning for those
> (and thus open the door for m4 2.0 to use -o to specify where output goes,
> rather than where traces are dumped, consistent with other GNU programs
> like gcc).

Here's what I'm thinking of applying on branch-1.6:

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAklRq70ACgkQ84KuGfSFAYDryQCcD8gycKcPGbZ1LhEqaShYFg+K
9vUAn0gbycLCbMOuK2FXizPwjqe8IDqb
=Pi7o
-----END PGP SIGNATURE-----
>From 9c4e3e51d29d2aaf218f5b835bbd72232976950f Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Tue, 23 Dec 2008 17:07:47 -0700
Subject: [PATCH] Issue deprecation warning for -o/--error-output.

* src/m4.c (main): Add warning for deprecated option.
* doc/m4.texinfo (Debugging options): Document the change.
* NEWS: Likewise.

Signed-off-by: Eric Blake <address@hidden>
---
 ChangeLog      |    5 +++++
 NEWS           |    6 ++++++
 doc/m4.texinfo |   17 ++++++++++++-----
 src/m4.c       |   11 ++++++-----
 4 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ef11ce4..7f3bde2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2008-12-23  Eric Blake  <address@hidden>
 
+       Issue deprecation warning for -o/--error-output.
+       * src/m4.c (main): Add warning for deprecated option.
+       * doc/m4.texinfo (Debugging options): Document the change.
+       * NEWS: Likewise.
+
        Add debugmode(o) to control dumpdef output location.
        * src/m4.h (DEBUG_TRACE_OUTPUT_DUMPDEF): New macro.
        (DEBUG_TRACE_VERBOSE): Update.
diff --git a/NEWS b/NEWS
index 45664c8..567820d 100644
--- a/NEWS
+++ b/NEWS
@@ -22,6 +22,12 @@ Foundation, Inc.
 ** Remove the undocumented command-line option '-N', as no one complained
    about the assertion failure regression that it introduced in 1.4.7.
 
+** The `-o'/`--error-output' command-line options, which were replaced by
+   `--debugfile' in 1.4.7, now issue a deprecation warning.  This warning
+   harmlessly triggers with versions of Autoconf 2.60 and earlier, but can
+   be silenced by applying this patch:
+     http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=8dc951191
+
 ** Fix the `m4wrap' builtin to accumulate wrapped text in FIFO order, as
    required by POSIX.  The manual mentions a way to restore the LIFO order
    present in earlier GNU M4 versions.  NOTE: this change exposes a bug
diff --git a/doc/m4.texinfo b/doc/m4.texinfo
index 9e5b07c..2ab7290 100644
--- a/doc/m4.texinfo
+++ b/doc/m4.texinfo
@@ -936,11 +936,10 @@ Debugging options
 debug output is discarded.  @xref{Debugfile}, for more details.  The
 option @option{--debugfile} may be given more than once, and order is
 significant with respect to file names.  The spellings @option{-o} and
address@hidden are misleading and inconsistent with other
address@hidden tools; for now they are silently accepted as synonyms of
address@hidden and only recognized once, but in a future version
-of M4, using them will cause a warning to be issued.
address@hidden FIXME make them warn in m4 1.6
address@hidden are misleading and
+inconsistent with other @acronym{GNU} tools; using those spellings will
+evoke a warning, and they may be withdrawn or change semantics in a
+future release.
 
 @ignore
 @comment not worth including in the manual, but provides a good test
@@ -957,6 +956,14 @@ Debugging options
 @error{}m4trace: -1- bar -> `hello'
 @result{}hello
 @end example
+
address@hidden options: -o /dev/null
address@hidden
+$ @kbd{m4 -o /dev/null
address@hidden: Warning: `-o' is deprecated, use `--debugfile' instead
+dumpdef(`divnum')
address@hidden
address@hidden example
 @end ignore
 
 @item -l @var{num}
diff --git a/src/m4.c b/src/m4.c
index 1206761..8d0221f 100644
--- a/src/m4.c
+++ b/src/m4.c
@@ -541,7 +541,8 @@ main (int argc, char *const *argv, char *const *envp)
        break;
 
       case 'e':
-       error (0, 0, "Warning: `m4 -e' is deprecated, use `-i' instead");
+       error (0, 0, _("Warning: `%s' is deprecated, use `%s' instead"),
+                      "-e", "-i");
        /* fall through */
       case 'i':
        interactive = true;
@@ -560,10 +561,10 @@ main (int argc, char *const *argv, char *const *envp)
 
       case 'o':
        /* -o/--error-output are deprecated synonyms of --debugfile,
-          but don't issue a deprecation warning until autoconf 2.61
-          or later is more widely established, as such a warning
-          would interfere with all earlier versions of autoconf.  */
-       /* Don't call debug_set_output here, as it has side effects.  */
+          so issue a warning.  Don't call debug_set_output here, as
+          it has side effects.  */
+       error (0, 0, _("Warning: `%s' is deprecated, use `%s' instead"),
+              optchar == 'o' ? "-o" : "--error-output", "--debugfile");
        debugfile = optarg;
        break;
 
-- 
1.6.0.4


reply via email to

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