summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--remake.c4
-rw-r--r--tests/ChangeLog5
-rw-r--r--tests/scripts/options/dash-n17
4 files changed, 30 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 09f657a..34411cf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-09-02 Paul Smith <psmith@gnu.org>
+
+ * remake.c (touch_file): If we have both -n and -t, -n takes
+ precedence. Patch from Michael Witten <mfwitten@gmail.com>
+
2011-08-29 Paul Smith <psmith@gnu.org>
* expand.c (variable_expand_string): Always allocate a new buffer
diff --git a/remake.c b/remake.c
index 97e3854..669eadc 100644
--- a/remake.c
+++ b/remake.c
@@ -1113,6 +1113,10 @@ touch_file (struct file *file)
if (!silent_flag)
message (0, "touch %s", file->name);
+ /* Print-only (-n) takes precedence over touch (-t). */
+ if (just_print_flag)
+ return 0;
+
#ifndef NO_ARCHIVES
if (ar_name (file->name))
return ar_touch (file->name);
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 32213bb..03983ec 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,8 @@
+2011-09-02 Paul Smith <psmith@gnu.org>
+
+ * scripts/options/dash-n: Verify that in "-n -t", the -n takes
+ priority. Patch from Michael Witten <mfwitten@gmail.com>.
+
2011-08-29 Paul Smith <psmith@gnu.org>
* scripts/features/varnesting: Test resetting of variables while
diff --git a/tests/scripts/options/dash-n b/tests/scripts/options/dash-n
index de19f42..248e0c8 100644
--- a/tests/scripts/options/dash-n
+++ b/tests/scripts/options/dash-n
@@ -65,6 +65,21 @@ $answer = "$make_name: `a' is up to date.\n";
$answer = "$make_name: `a' is up to date.\n";
&compare_output($answer, &get_logfile(1));
-unlink('a', 'b', 'c');
+# TEST 4
+
+unlink(qw(a b));
+
+&run_make_with_options($makefile2, "-t -n", &get_logfile);
+
+open(DASH_N_LOG, ">>" . &get_logfile(1));
+print DASH_N_LOG "a exists but should not!\n" if -e 'a';
+print DASH_N_LOG "b exists but should not!\n" if -e 'b';
+close(DASH_N_LOG);
+
+&compare_output("touch b\ntouch a\n", &get_logfile(1));
+
+# CLEANUP
+
+unlink(qw(a b c));
1;