[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[7079] parsetexi update
From: |
Gavin D. Smith |
Subject: |
[7079] parsetexi update |
Date: |
Mon, 28 Mar 2016 14:09:38 +0000 |
Revision: 7079
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=7079
Author: gavin
Date: 2016-03-28 14:09:37 +0000 (Mon, 28 Mar 2016)
Log Message:
-----------
parsetexi update
Modified Paths:
--------------
trunk/tp/parsetexi/api.c
trunk/tp/parsetexi/parser.c
Modified: trunk/tp/parsetexi/api.c
===================================================================
--- trunk/tp/parsetexi/api.c 2016-03-28 13:46:44 UTC (rev 7078)
+++ trunk/tp/parsetexi/api.c 2016-03-28 14:09:37 UTC (rev 7079)
@@ -295,9 +295,8 @@
{
HV *extra;
int i;
+ int all_deleted = 1;
extra = newHV ();
- hv_store (e->hv, "extra", strlen ("extra"),
- newRV_inc((SV *)extra), 0);
for (i = 0; i < e->extra_number; i++)
{
@@ -307,6 +306,7 @@
if (e->extra[i].type == extra_deleted)
continue;
+ all_deleted = 0;
switch (e->extra[i].type)
{
@@ -484,6 +484,10 @@
}
}
#undef STORE
+
+ if (!all_deleted)
+ hv_store (e->hv, "extra", strlen ("extra"),
+ newRV_inc((SV *)extra), 0);
}
if (e->line_nr.line_nr)
Modified: trunk/tp/parsetexi/parser.c
===================================================================
--- trunk/tp/parsetexi/parser.c 2016-03-28 13:46:44 UTC (rev 7078)
+++ trunk/tp/parsetexi/parser.c 2016-03-28 14:09:37 UTC (rev 7079)
@@ -406,8 +406,7 @@
{
KEY_PAIR *k = 0; ELEMENT *e;
- /* FIXME: does extra key get removed from current or
- current->parent? */
+ /* Remove extra key from either from current or current->parent. */
if (current)
k = lookup_extra_key (current, "spaces_before_argument");
if (k && k->value == last_contents_child (current))
@@ -416,13 +415,20 @@
k->value = 0;
k->type = extra_deleted;
}
+ else if (current->parent)
+ {
+ k = lookup_extra_key (current->parent, "spaces_before_argument");
+ if (k && k->value == last_contents_child (current))
+ {
+ k->key = "";
+ k->value = 0;
+ k->type = extra_deleted;
+ }
+ }
- /* FIXME: We can't destroy it, because it may still be
- referred to by current->parent->extra. This is an oversight
- in the Perl implementation. */
e = pop_element_from_contents (current);
e->parent = 0; e->parent_type = route_not_in_tree;
- //destroy_element (e);
+ destroy_element (e);
/* TODO: Maybe we could avoid adding it in the first place? */
}
else if (last_child->type == ET_empty_line) //2132
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [7079] parsetexi update,
Gavin D. Smith <=