aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--NEWS2
-rw-r--r--awkgram.c4
-rw-r--r--awkgram.y4
4 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 56558a76..e68b1bec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,7 +14,9 @@
Unrelated:
* symbol.c (get_symbols): Add FUNCTAB and SYMTAB to the list
- for the -d option. Thanks to Hermann Peifer for the report.
+ for the -d option.
+ * awkgram.y (dump_vars): Allow "-" to mean print to stdout.
+ Thanks to Hermann Peifer for the reports.
2016-06-30 Arnold D. Robbins <arnold@skeeve.com>
diff --git a/NEWS b/NEWS
index 290642f6..ac3cc76d 100644
--- a/NEWS
+++ b/NEWS
@@ -112,6 +112,8 @@ Changes from 4.1.3 to 4.1.4
10. MinGW support has been updated.
+11. The -d option now allows -d- to print to standard output.
+
Changes from 4.1.2 to 4.1.3
---------------------------
diff --git a/awkgram.c b/awkgram.c
index df654c7f..6556d0a7 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -7046,6 +7046,8 @@ dump_vars(const char *fname)
if (fname == NULL)
fp = stderr;
+ else if (strcmp(fname, "-") == 0)
+ fp = stdout;
else if ((fp = fopen(fname, "w")) == NULL) {
warning(_("could not open `%s' for writing (%s)"), fname, strerror(errno));
warning(_("sending variable list to standard error"));
@@ -7055,7 +7057,7 @@ dump_vars(const char *fname)
vars = variable_list();
print_vars(vars, fprintf, fp);
efree(vars);
- if (fp != stderr && fclose(fp) != 0)
+ if (fp != stdout && fp != stderr && fclose(fp) != 0)
warning(_("%s: close failed (%s)"), fname, strerror(errno));
}
diff --git a/awkgram.y b/awkgram.y
index 87d7a59a..cd5353f9 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -4626,6 +4626,8 @@ dump_vars(const char *fname)
if (fname == NULL)
fp = stderr;
+ else if (strcmp(fname, "-") == 0)
+ fp = stdout;
else if ((fp = fopen(fname, "w")) == NULL) {
warning(_("could not open `%s' for writing (%s)"), fname, strerror(errno));
warning(_("sending variable list to standard error"));
@@ -4635,7 +4637,7 @@ dump_vars(const char *fname)
vars = variable_list();
print_vars(vars, fprintf, fp);
efree(vars);
- if (fp != stderr && fclose(fp) != 0)
+ if (fp != stdout && fp != stderr && fclose(fp) != 0)
warning(_("%s: close failed (%s)"), fname, strerror(errno));
}