texinfo-commits
[Top][All Lists]
Advanced

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

[6816] parsetexi update


From: Gavin D. Smith
Subject: [6816] parsetexi update
Date: Mon, 30 Nov 2015 14:19:18 +0000

Revision: 6816
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6816
Author:   gavin
Date:     2015-11-30 14:19:17 +0000 (Mon, 30 Nov 2015)
Log Message:
-----------
parsetexi update

Modified Paths:
--------------
    trunk/parsetexi/end_line.c
    trunk/parsetexi/extra.c

Modified: trunk/parsetexi/end_line.c
===================================================================
--- trunk/parsetexi/end_line.c  2015-11-30 13:17:07 UTC (rev 6815)
+++ trunk/parsetexi/end_line.c  2015-11-30 14:19:17 UTC (rev 6816)
@@ -163,10 +163,11 @@
 
   line_args = new_element (ET_NONE);
 
+  cmd = line_command->cmd;
   if (arg->contents.number == 0)
     {
       /*command_errorf ("@%s missing argument",
-                      command_name (line_command->cmd));*/
+                      command_name (cmd));*/
       return 0;
     }
 
@@ -193,18 +194,21 @@
         {
           /* Error - too many arguments. */
           line_errorf ("superfluous argument to @%s",
-                       command_name (line_command->cmd));
+                       command_name (cmd));
+          break;
         }
     }
+
   if (!argarg)
     {
-      abort();
+      command_errorf ("@%s missing argument", command_name(cmd));
+      add_extra_string (line_command, "missing_argument", "1");
+      return 0;
     }
 
   if (argarg->text.end == 0)
      return 0; // 5519
 
-  cmd = line_command->cmd;
   line = argarg->text.text;
 
   switch (cmd)
@@ -1148,22 +1152,26 @@
       /* Check if in multitable. */
       if (!current->parent || current->parent->cmd != CM_multitable)
         {
-          abort ();
+          command_error
+            ("@columnfractions only meaningful on a @multitable line");
         }
+      else
+        {
+          // pop and check context stack
+          //pop_context (); /* ct_line */;
 
-      // pop and check context stack
+          current = current->parent;
 
-      current = current->parent;
+          if (misc_args = lookup_extra_key (misc_cmd, "misc_args"))
+            {
+              add_extra_key_misc_args (current, "columnfractions", 
+                                       misc_args->value);
+            }
 
-      if (misc_args = lookup_extra_key (misc_cmd, "misc_args"))
-        {
-          add_extra_key_misc_args (current, "columnfractions", 
-                                   misc_args->value);
+          before_item = new_element (ET_before_item);
+          add_to_element_contents (current, before_item);
+          current = before_item;
         }
-
-      before_item = new_element (ET_before_item);
-      add_to_element_contents (current, before_item);
-      current = before_item;
     }
   else if (command_data(cmd).flags & CF_root) /* 3380 */
     {

Modified: trunk/parsetexi/extra.c
===================================================================
--- trunk/parsetexi/extra.c     2015-11-30 13:17:07 UTC (rev 6815)
+++ trunk/parsetexi/extra.c     2015-11-30 14:19:17 UTC (rev 6816)
@@ -77,6 +77,7 @@
 void
 add_extra_key_misc_args (ELEMENT *e, char *key, ELEMENT *value)
 {
+  if (!value) return;
   add_extra_key (e, key, value);
   e->extra[e->extra_number - 1].type = extra_misc_args;
 }




reply via email to

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