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 bccf7408..fa98ee49 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-26 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 bd531efb..57075b1a 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -7058,6 +7058,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"));
@@ -7067,7 +7069,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 752503cc..53adf567 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -4638,6 +4638,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"));
@@ -4647,7 +4649,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));
}