From b11d9d80ffce53cfdaebb076ea67420884fba6ab Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Fri, 1 Jul 2016 10:16:05 +0300 Subject: Allow -d- to print to stdout. --- ChangeLog | 4 +++- NEWS | 2 ++ awkgram.c | 4 +++- awkgram.y | 4 +++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5e381305..e7ef8c82 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 diff --git a/NEWS b/NEWS index 8c4e2c3e..8474e69a 100644 --- a/NEWS +++ b/NEWS @@ -36,6 +36,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 bc91d406..5455430b 100644 --- a/awkgram.c +++ b/awkgram.c @@ -6547,6 +6547,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")); @@ -6556,7 +6558,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 e9d535e7..6aa90c50 100644 --- a/awkgram.y +++ b/awkgram.y @@ -4208,6 +4208,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")); @@ -4217,7 +4219,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)); } -- cgit v1.2.3