aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xChangeLog5
-rw-r--r--awkgram.c10
-rw-r--r--awkgram.y10
3 files changed, 25 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a96b8e6f..15061907 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-12-02 Arnold D. Robbins <arnold@skeeve.com>
+
+ * awkgram.y (mk_program): Add in leading and trailing comments
+ when program block is empty.
+
2018-11-29 Arnold D. Robbins <arnold@skeeve.com>
* awkgram.y (first_rule, func_first): Remove unused variables.
diff --git a/awkgram.c b/awkgram.c
index d467eb17..36955071 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -5075,6 +5075,16 @@ mk_program()
(void) list_merge(cp, beginfile_block);
(void) list_merge(cp, endfile_block);
+ if (outer_comment != NULL) {
+ cp = list_merge(list_create(outer_comment), cp);
+ outer_comment = NULL;
+ }
+
+ if (interblock_comment != NULL) {
+ (void) list_append(cp, interblock_comment);
+ interblock_comment = NULL;
+ }
+
goto out;
} else {
diff --git a/awkgram.y b/awkgram.y
index 41876301..d925e750 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -2610,6 +2610,16 @@ mk_program()
(void) list_merge(cp, beginfile_block);
(void) list_merge(cp, endfile_block);
+ if (outer_comment != NULL) {
+ cp = list_merge(list_create(outer_comment), cp);
+ outer_comment = NULL;
+ }
+
+ if (interblock_comment != NULL) {
+ (void) list_append(cp, interblock_comment);
+ interblock_comment = NULL;
+ }
+
goto out;
} else {