texinfo-commits
[Top][All Lists]
Advanced

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

[6840] parsetexi update


From: Gavin D. Smith
Subject: [6840] parsetexi update
Date: Mon, 07 Dec 2015 18:58:18 +0000

Revision: 6840
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6840
Author:   gavin
Date:     2015-12-07 18:58:17 +0000 (Mon, 07 Dec 2015)
Log Message:
-----------
parsetexi update

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

Modified: trunk/parsetexi/api.c
===================================================================
--- trunk/parsetexi/api.c       2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/api.c       2015-12-07 18:58:17 UTC (rev 6840)
@@ -159,7 +159,7 @@
                 build_perl_array (&value->node_content->contents), 0);
     }
 
-  if (value->normalized)
+  if (value->normalized && *value->normalized)
     {
       hv_store (hv, "normalized", strlen ("normalized"),
                 newSVpv (value->normalized, 0), 0);
@@ -230,6 +230,7 @@
       || e->type == ET_text_root // FIXME special case
       || e->cmd == CM_image // why image?
       || e->cmd == CM_anchor
+      || e->type == ET_menu_entry_name
       || e->cmd == CM_node) // FIXME special case
     {
       AV *av;

Modified: trunk/parsetexi/close.c
===================================================================
--- trunk/parsetexi/close.c     2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/close.c     2015-12-07 18:58:17 UTC (rev 6840)
@@ -251,10 +251,33 @@
           current = close_brace_command (current,
                                          closed_command, interrupting_command);
         }
+      else if (command_flags(current) & CF_block)
+        {
+          if (closed_command)
+            {
+              line_errorf ("address@hidden' expected `%s', but saw `%s'",
+                           command_name(current->cmd),
+                           command_name(closed_command));
+            }
+          else if (interrupting_command)
+            {
+              line_errorf ("`%s' seen before @end %s",
+                           command_name(interrupting_command),
+                           command_name(current->cmd));
+            }
+          else
+            {
+              line_errorf ("no matching address@hidden %s'",
+                           command_name(current->cmd));
+              // TODO: ignored conditional
+            }
+          current = current->parent;
+        }
       else
         {
+          /* @item and @tab commands are closed here, as well as line commands 
+             with invalid content. */
           current = current->parent;
-          // TODO
         }
     }
   else if (current->type != ET_NONE)

Modified: trunk/parsetexi/end_line.c
===================================================================
--- trunk/parsetexi/end_line.c  2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/end_line.c  2015-12-07 18:58:17 UTC (rev 6840)
@@ -1267,7 +1267,8 @@
               add_to_element_contents (closed_command, end_elt); // 3321
 
               // 3324 ET_menu_comment
-              if (command_flags(closed_command) & CF_menu)
+              if (command_flags(closed_command) & CF_menu
+                  && current_context () == ct_menu)
                 {
                   ELEMENT *e;
                   debug ("CLOSE menu but still in menu context");

Modified: trunk/parsetexi/handle_commands.c
===================================================================
--- trunk/parsetexi/handle_commands.c   2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/handle_commands.c   2015-12-07 18:58:17 UTC (rev 6840)
@@ -379,8 +379,7 @@
               /* Store section level in 'extra' key. */
               /* TODO: @part? */
               /*add_extra_string (last_contents_child (current), 
-                "sections_level", "1");
-                                //"0\0""1\0"[level * 2]);*/
+                "sections_level", "1"); */
               add_extra_string (misc, "level",
                           &("0\0" "0\0" "1\0" "2\0" "3\0" "4\0"
                                   "5\0" "6\0" "7\0" "8\0" "9\0" + 2)
@@ -625,19 +624,24 @@
 
               // Record dir entry here
 
-              if (current_node)
+              if (current_node) // 4793
                 {
                   if (cmd == CM_direntry)
                     {
-                      // warning
+                      line_warn ("@direntry after first node");
                     }
                   else if (cmd == CM_menu)
                     {
                       // add to array of menus for current node
                     }
                 }
-              else
+              else if (cmd != CM_direntry)
                 {
+                  line_errorf ("@%s seen before first @node",
+                               command_name(cmd));
+                  line_errorf ("perhaps your @top node should be "
+                               "wrapped in @ifnottex rather than @ifinfo?");
+                  // 4810 unassociated menus
                 }
             }
 

Modified: trunk/parsetexi/menus.c
===================================================================
--- trunk/parsetexi/menus.c     2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/menus.c     2015-12-07 18:58:17 UTC (rev 6840)
@@ -46,7 +46,10 @@
           isolate_last_space (arg, ET_space_at_end_menu_node);
 
           parsed_entry_node = parse_node_manual (arg);
-          add_extra_node_spec (current, "menu_entry_node", parsed_entry_node);
+          if (1)
+            {
+              add_extra_node_spec (current, "menu_entry_node", 
parsed_entry_node);
+            }
         }
       else if (arg->type == ET_menu_entry_description)
         {

Modified: trunk/parsetexi/parser.c
===================================================================
--- trunk/parsetexi/parser.c    2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/parser.c    2015-12-07 18:58:17 UTC (rev 6840)
@@ -785,13 +785,10 @@
       if (q)
         {
           /* Save up to the delimiter character. */
-          if (q != line)
-            {
-              ELEMENT *e = new_element (ET_raw);
-              text_append_n (&e->text, line, q - line);
-              add_to_element_contents (current, e);
-              line = q + 1;
-            }
+          ELEMENT *e = new_element (ET_raw);
+          text_append_n (&e->text, line, q - line);
+          add_to_element_contents (current, e);
+          line = q + 1;
           debug ("END VERB");
           /* The '}' will close the @verb command in handle_separator below. */
         }




reply via email to

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