summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2013-09-14 21:01:10 -0400
committerPaul Smith <psmith@gnu.org>2013-09-14 21:01:10 -0400
commit3aa2aa7e82ac4c74df298f381c8d1d280cff852e (patch)
tree6db0995f7df540c78a6f66a7668a938a77024110
parent29a94ceb76936b88e74052dcb81fe506145f6ff4 (diff)
downloadgunmake-3aa2aa7e82ac4c74df298f381c8d1d280cff852e.tar.gz
[SV 35248] Add --debug "n" flag to turn off current debug options.
-rw-r--r--ChangeLog8
-rw-r--r--NEWS7
-rw-r--r--doc/make.texi4
-rw-r--r--main.c11
-rw-r--r--make.14
-rw-r--r--output.c2
6 files changed, 30 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 68c771d..16cf70f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2013-09-14 Paul Smith <psmith@gnu.org>
+ Fix Savannah bug #35248.
+
+ * main.c (decode_debug_flags): Add support for the "n" flag to
+ disable all debugging.
+ * make.1: Document the "n" (none) flag.
+ * doc/make.texi (Options Summary): Ditto.
+ * NEWS: Ditto.
+
Fix Savannah bug #33134. Suggested by David Boyce <dsb@boyski.com>.
* misc.c (close_stdout): Move to output.c.
diff --git a/NEWS b/NEWS
index cf234b7..c36dab0 100644
--- a/NEWS
+++ b/NEWS
@@ -34,9 +34,10 @@ http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=101&set
the recipe to be invoked is printed even if it would otherwise be suppressed
by .SILENT or a "@" prefix character. Also before each recipe is run the
makefile name and linenumber where it was defined are shown as well as the
- prerequisites that caused the target to be considered out of date. If the
- "dir" option argument is given, it will display directory enter/leave
- logging around each block of synchronized output.
+ prerequisites that caused the target to be considered out of date.
+
+* New command line option argument: --debug now accepts a "n" (none) flag
+ which disables all debugging settings that are currently enabled.
* New feature: The "job server" capability is now supported on Windows.
Implementation contributed by Troy Runkel <Troy.Runkel@mathworks.com>
diff --git a/doc/make.texi b/doc/make.texi
index 975f0b3..169f8fa 100644
--- a/doc/make.texi
+++ b/doc/make.texi
@@ -8595,6 +8595,10 @@ By default, the above messages are not enabled while trying to remake
the makefiles. This option enables messages while rebuilding makefiles,
too. Note that the @samp{all} option does enable this option. This
option also enables @samp{basic} messages.
+
+@item n (@i{none})
+Disable all debugging currently enabled. If additional debugging
+flags are encountered after this they will still take effect.
@end table
@item -e
diff --git a/main.c b/main.c
index eacab28..575ca92 100644
--- a/main.c
+++ b/main.c
@@ -714,6 +714,9 @@ decode_debug_flags (void)
case 'm':
db_level |= DB_BASIC | DB_MAKEFILES;
break;
+ case 'n':
+ db_level = 0;
+ break;
case 'v':
db_level |= DB_BASIC | DB_VERBOSE;
break;
@@ -723,7 +726,10 @@ decode_debug_flags (void)
while (*(++p) != '\0')
if (*p == ',' || *p == ' ')
- break;
+ {
+ ++p;
+ break;
+ }
if (*p == '\0')
break;
@@ -732,6 +738,9 @@ decode_debug_flags (void)
if (db_level)
verify_flag = 1;
+
+ if (! db_level)
+ debug_flag = 0;
}
static void
diff --git a/make.1 b/make.1
index 87ee42e..94536fe 100644
--- a/make.1
+++ b/make.1
@@ -143,7 +143,9 @@ for showing implicit rules,
.I j
for details on invocation of commands, and
.I m
-for debugging while remaking makefiles.
+for debugging while remaking makefiles. Use
+.I n
+to disable all previous debugging flags.
.TP 0.5i
\fB\-e\fR, \fB\-\-environment\-overrides\fR
Give variables taken from the environment precedence
diff --git a/output.c b/output.c
index 6463432..c9e1909 100644
--- a/output.c
+++ b/output.c
@@ -186,7 +186,7 @@ static sync_handle_t sync_handle = -1;
static int
sync_init ()
{
- int combined_output;
+ int combined_output = 0;
#ifdef WINDOWS32
if ((!STREAM_OK (stdout) && !STREAM_OK (stderr))