[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[6820] parsetexi remove_empty_content_arguments
From: |
Gavin D. Smith |
Subject: |
[6820] parsetexi remove_empty_content_arguments |
Date: |
Tue, 01 Dec 2015 12:05:12 +0000 |
Revision: 6820
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6820
Author: gavin
Date: 2015-12-01 12:05:09 +0000 (Tue, 01 Dec 2015)
Log Message:
-----------
parsetexi remove_empty_content_arguments
Modified Paths:
--------------
trunk/parsetexi/ChangeLog
trunk/parsetexi/end_line.c
trunk/parsetexi/parser.h
trunk/parsetexi/separator.c
Modified: trunk/parsetexi/ChangeLog
===================================================================
--- trunk/parsetexi/ChangeLog 2015-12-01 11:30:16 UTC (rev 6819)
+++ trunk/parsetexi/ChangeLog 2015-12-01 12:05:09 UTC (rev 6820)
@@ -1,5 +1,9 @@
2015-12-01 Gavin Smith <address@hidden>
+ * separator.c (remove_empty_content_arguments): Implement.
+
+2015-12-01 Gavin Smith <address@hidden>
+
* api.c (parse_text): Use new function input_push_text_with_line_nos
to keep track of line numbers (for tests).
Modified: trunk/parsetexi/end_line.c
===================================================================
--- trunk/parsetexi/end_line.c 2015-12-01 11:30:16 UTC (rev 6819)
+++ trunk/parsetexi/end_line.c 2015-12-01 12:05:09 UTC (rev 6820)
@@ -864,6 +864,7 @@
// TODO: Free lists?
current->args.number = 0;
}
+ remove_empty_content_arguments (current);
if (command_flags(current) & CF_blockitem) // 2981
{
Modified: trunk/parsetexi/parser.h
===================================================================
--- trunk/parsetexi/parser.h 2015-12-01 11:30:16 UTC (rev 6819)
+++ trunk/parsetexi/parser.h 2015-12-01 12:05:09 UTC (rev 6820)
@@ -29,6 +29,7 @@
void register_command_arg (ELEMENT *current, char *key);
ELEMENT *handle_separator (ELEMENT *current, char separator,
char **line_inout);
+void remove_empty_content_arguments (ELEMENT *current);
/* In parser.c */
ELEMENT *parse_texi (ELEMENT *root_elt);
Modified: trunk/parsetexi/separator.c
===================================================================
--- trunk/parsetexi/separator.c 2015-12-01 11:30:16 UTC (rev 6819)
+++ trunk/parsetexi/separator.c 2015-12-01 12:05:09 UTC (rev 6820)
@@ -295,6 +295,32 @@
return current;
}
+// 2577
+/* Remove 'brace_command_contents' or 'block_command_line_contents'
+ extra value if empty.
+ TODO: If not empty, remove empty elements thereof. */
+void
+remove_empty_content_arguments (ELEMENT *current)
+{
+ KEY_PAIR *k;
+
+ k = lookup_extra_key (current, "block_command_line_contents");
+ if (!k)
+ k = lookup_extra_key (current, "brace_command_contents");
+ if (!k)
+ return;
+
+ while (k->value->contents.number > 0
+ && last_contents_child(k->value)->contents.number == 0)
+ destroy_element (pop_element_from_contents (k->value));
+
+ if (k->value->contents.number == 0)
+ {
+ k->type = extra_deleted;
+ }
+}
+
+
/* Handle a comma separating arguments to a Texinfo command. */
/* 5228 */
ELEMENT *
@@ -314,7 +340,7 @@
// 5033
isolate_last_space (current, 0);
register_command_arg (current, "brace_command_contents");
- //remove_empty_content_arguments ();
+ remove_empty_content_arguments (current);
}
else
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [6820] parsetexi remove_empty_content_arguments,
Gavin D. Smith <=