texinfo-commits
[Top][All Lists]
Advanced

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

[7225] parsetexi update


From: gavinsmith0123
Subject: [7225] parsetexi update
Date: Tue, 14 Jun 2016 18:08:32 +0000 (UTC)

Revision: 7225
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=7225
Author:   gavin
Date:     2016-06-14 18:08:32 +0000 (Tue, 14 Jun 2016)
Log Message:
-----------
parsetexi update

Modified Paths:
--------------
    trunk/tp/parsetexi/dump_perl.c
    trunk/tp/parsetexi/extra.c
    trunk/tp/parsetexi/parser.c

Modified: trunk/tp/parsetexi/dump_perl.c
===================================================================
--- trunk/tp/parsetexi/dump_perl.c      2016-06-14 17:58:30 UTC (rev 7224)
+++ trunk/tp/parsetexi/dump_perl.c      2016-06-14 18:08:32 UTC (rev 7225)
@@ -648,9 +648,9 @@
   if (output.end > 0)
     printf ("%s", output.text);
 
-  dump_labels_information ();
+  //dump_labels_information ();
 
-  dump_indices_information ();
+  //dump_indices_information ();
 
   if (fixup_dump.end > 0)
     printf ("%s", fixup_dump.text);

Modified: trunk/tp/parsetexi/extra.c
===================================================================
--- trunk/tp/parsetexi/extra.c  2016-06-14 17:58:30 UTC (rev 7224)
+++ trunk/tp/parsetexi/extra.c  2016-06-14 18:08:32 UTC (rev 7225)
@@ -19,18 +19,30 @@
 #include "parser.h"
 
 static void
-add_extra_key (ELEMENT *e, char *key, ELEMENT *value)
+add_extra_key (ELEMENT *e, char *key, ELEMENT *value,
+               enum extra_type type)
 {
-  if (e->extra_number == e->extra_space)
+  int i;
+  for (i = 0; i < e->extra_number; i++)
     {
-      e->extra = realloc (e->extra,
-                          (e->extra_space += 5) * sizeof (KEY_PAIR));
-      if (!e->extra)
-        abort ();
+      if (!strcmp (e->extra[i].key, key))
+        break;
     }
+  if (i == e->extra_number)
+    {
+      if (e->extra_number == e->extra_space)
+        {
+          e->extra = realloc (e->extra,
+                              (e->extra_space += 5) * sizeof (KEY_PAIR));
+          if (!e->extra)
+            abort ();
+        }
+      e->extra_number++;
+    }
 
-  e->extra[e->extra_number].key = key;
-  e->extra[e->extra_number++].value = value;
+  e->extra[i].key = key;
+  e->extra[i].value = value;
+  e->extra[i].type = type;
 }
 
 /* Add an extra key that is a reference to another element (for example, 
@@ -38,8 +50,7 @@
 void
 add_extra_element (ELEMENT *e, char *key, ELEMENT *value)
 {
-  add_extra_key (e, key, value);
-  e->extra[e->extra_number - 1].type = extra_element;
+  add_extra_key (e, key, value, extra_element);
 }
 
 /* Add an extra key that is a reference to the contents array of another
@@ -47,16 +58,14 @@
 void
 add_extra_contents (ELEMENT *e, char *key, ELEMENT *value)
 {
-  add_extra_key (e, key, value);
-  e->extra[e->extra_number - 1].type = extra_element_contents;
+  add_extra_key (e, key, value, extra_element_contents);
 }
 
 /* An array of content arrays. */
 void
 add_extra_contents_array (ELEMENT *e, char *key, ELEMENT *value)
 {
-  add_extra_key (e, key, value);
-  e->extra[e->extra_number - 1].type = extra_element_contents_array;
+  add_extra_key (e, key, value, extra_element_contents_array);
 }
 
 /* Add an extra key that is a reference to the text field of another
@@ -64,30 +73,26 @@
 void
 add_extra_text (ELEMENT *e, char *key, ELEMENT *value)
 {
-  add_extra_key (e, key, value);
-  e->extra[e->extra_number - 1].type = extra_element_text;
+  add_extra_key (e, key, value, extra_element_text);
 }
 
 void
 add_extra_index_entry (ELEMENT *e, char *key, INDEX_ENTRY_REF *value)
 {
-  add_extra_key (e, key, (ELEMENT *) value);
-  e->extra[e->extra_number - 1].type = extra_index_entry;
+  add_extra_key (e, key, (ELEMENT *) value, extra_index_entry);
 }
 
 void
 add_extra_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;
+  add_extra_key (e, key, value, extra_misc_args);
 }
 
 void
 add_extra_node_spec (ELEMENT *e, char *key, NODE_SPEC_EXTRA *value)
 {
-  add_extra_key (e, key, (ELEMENT *) value);
-  e->extra[e->extra_number - 1].type = extra_node_spec;
+  add_extra_key (e, key, (ELEMENT *) value, extra_node_spec);
 }
 
 /* Used for 'node_manuals' array for the arguments given on a
@@ -95,29 +100,25 @@
 void
 add_extra_node_spec_array (ELEMENT *e, char *key, NODE_SPEC_EXTRA **value)
 {
-  add_extra_key (e, key, (ELEMENT *) value);
-  e->extra[e->extra_number - 1].type = extra_node_spec_array;
+  add_extra_key (e, key, (ELEMENT *) value, extra_node_spec_array);
 }
 
 void
 add_extra_def_args (ELEMENT *e, char *key, DEF_ARGS_EXTRA *value)
 {
-  add_extra_key (e, key, (ELEMENT *) value);
-  e->extra[e->extra_number - 1].type = extra_def_args;
+  add_extra_key (e, key, (ELEMENT *) value, extra_def_args);
 }
 
 void
 add_extra_float_type (ELEMENT *e, char *key, EXTRA_FLOAT_TYPE *value)
 {
-  add_extra_key (e, key, (ELEMENT *) value);
-  e->extra[e->extra_number - 1].type = extra_float_type;
+  add_extra_key (e, key, (ELEMENT *) value, extra_float_type);
 }
 
 void
 add_extra_string (ELEMENT *e, char *key, char *value)
 {
-  add_extra_key (e, key, (ELEMENT *) value);
-  e->extra[e->extra_number - 1].type = extra_string;
+  add_extra_key (e, key, (ELEMENT *) value, extra_string);
 }
 
 KEY_PAIR *

Modified: trunk/tp/parsetexi/parser.c
===================================================================
--- trunk/tp/parsetexi/parser.c 2016-06-14 17:58:30 UTC (rev 7224)
+++ trunk/tp/parsetexi/parser.c 2016-06-14 18:08:32 UTC (rev 7225)
@@ -849,8 +849,16 @@
             }
           else
             {
+              ELEMENT *e;
+              int n;
+
               debug ("CLOSED raw %s", command_name(end_cmd)); // 3830
-              start_empty_line_after_command (current, &line, raw_command);
+              e = new_element (ET_empty_line_after_command);
+              n = strspn (line, whitespace_chars_except_newline);
+              text_append_n (&e->text, line, n);
+              line += n;
+              add_extra_element (e, "command", raw_command);
+              add_to_element_contents (current, e);
             }
         }
       else /* 3833 save the line verbatim */




reply via email to

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