texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[6824] parsetexi update


From: Gavin D. Smith
Subject: [6824] parsetexi update
Date: Wed, 02 Dec 2015 10:14:29 +0000

Revision: 6824
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6824
Author:   gavin
Date:     2015-12-02 10:14:28 +0000 (Wed, 02 Dec 2015)
Log Message:
-----------
parsetexi update

Modified Paths:
--------------
    trunk/parsetexi/api.c
    trunk/parsetexi/end_line.c
    trunk/parsetexi/handle_commands.c
    trunk/parsetexi/parser.c

Modified: trunk/parsetexi/api.c
===================================================================
--- trunk/parsetexi/api.c       2015-12-01 23:18:34 UTC (rev 6823)
+++ trunk/parsetexi/api.c       2015-12-02 10:14:28 UTC (rev 6824)
@@ -171,8 +171,10 @@
       e->hv = newHV ();
     }
 
-  if (e->parent && e->parent_type != route_not_in_tree)
+  if (e->parent) // && e->parent_type != route_not_in_tree)
     {
+      if (!e->parent->hv)
+        e->parent->hv = newHV ();
       sv = newRV_inc ((SV *) e->parent->hv);
       hv_store (e->hv, "parent", strlen ("parent"), sv, 0);
     }
@@ -180,6 +182,8 @@
      i.e. the only out-of-tree elements are simple text elements
      (or other elements with no children) - otherwise we shall fail
      to set "parent" properly. */
+  /* FIXME: Sometimes extra values have parent set - try to remove this
+     in the Perl code as well. */
 
   if (e->type)
     {

Modified: trunk/parsetexi/end_line.c
===================================================================
--- trunk/parsetexi/end_line.c  2015-12-01 23:18:34 UTC (rev 6823)
+++ trunk/parsetexi/end_line.c  2015-12-02 10:14:28 UTC (rev 6824)
@@ -896,7 +896,7 @@
           e = new_element (ET_command_as_argument);
           e->cmd = CM_bullet;
           e->parent_type = route_not_in_tree;
-          //e->parent = current; // FIXME: done in Perl code
+          e->parent = current;
           add_extra_key_element (current, "command_as_argument", e);
 
           contents = new_element (ET_NONE);
@@ -909,10 +909,23 @@
         }
       else if (item_line_command (current->cmd)
           && !lookup_extra_key (current, "command_as_argument"))
-        {
-          ELEMENT *e = new_element (ET_command_as_argument);
+        { // 3064
+          ELEMENT *e, *contents, *contents2;
+
+          e = new_element (ET_command_as_argument);
           e->cmd = CM_asis;
+          e->parent_type = route_not_in_tree;
+          e->parent = current;
           add_extra_key_element (current, "command_as_argument", e);
+
+          contents = new_element (ET_NONE);
+          contents2 = new_element (ET_NONE);
+          contents2->parent_type = route_not_in_tree;
+          add_to_contents_as_array (contents2, e);
+          add_to_element_contents (contents, contents2);
+          add_extra_key_contents_array (current, "block_command_line_contents",
+                                        contents);
+          // FIXME: code duplication
         }
 
       {

Modified: trunk/parsetexi/handle_commands.c
===================================================================
--- trunk/parsetexi/handle_commands.c   2015-12-01 23:18:34 UTC (rev 6823)
+++ trunk/parsetexi/handle_commands.c   2015-12-02 10:14:28 UTC (rev 6824)
@@ -130,7 +130,7 @@
               text_append_n (&misc_arg->text, 
                              args->contents.list[i]->text.text,
                              args->contents.list[i]->text.end);
-              add_to_element_contents (misc, misc_arg);
+              add_to_element_args (misc, misc_arg);
             }
           /* TODO: Could we have just set misc->args directly as args? */
 
@@ -181,7 +181,7 @@
       if (cmd == CM_item || cmd == CM_itemx
           || cmd == CM_headitem || cmd == CM_tab)
         {
-          ELEMENT *misc = 0, *parent;
+          ELEMENT *parent;
 
           /* @itemize or @enumerate */ // 4443
           if ((parent = item_container_parent (current)))

Modified: trunk/parsetexi/parser.c
===================================================================
--- trunk/parsetexi/parser.c    2015-12-01 23:18:34 UTC (rev 6823)
+++ trunk/parsetexi/parser.c    2015-12-02 10:14:28 UTC (rev 6824)
@@ -288,7 +288,6 @@
 
       if (last_child
           && (last_child->type == ET_empty_line_after_command
-              || last_child->type == ET_empty_line_after_command
               || last_child->type == ET_empty_spaces_before_argument
               || last_child->type == ET_empty_spaces_after_close_brace))
         {
@@ -645,6 +644,7 @@
       if (is_end_current_command (current, &line, &end_cmd))
         {
           ELEMENT *last_child;
+          ELEMENT *raw_command = current;
 
           last_child = last_contents_child (current);
            
@@ -696,8 +696,8 @@
             }
           else
             {
-              debug ("CLOSED raw %s", command_name(end_cmd));
-              start_empty_line_after_command (current, &line, 0); // 3831
+              debug ("CLOSED raw %s", command_name(end_cmd)); // 3830
+              start_empty_line_after_command (current, &line, raw_command);
             }
         }
       else /* 3833 save the line verbatim */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]