texinfo-commits
[Top][All Lists]
Advanced

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

[7866] parsetexi support integer extra values instead of outputting them


From: gavinsmith0123
Subject: [7866] parsetexi support integer extra values instead of outputting them as strings
Date: Tue, 27 Jun 2017 07:21:54 -0400 (EDT)

Revision: 7866
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=7866
Author:   gavin
Date:     2017-06-27 07:21:53 -0400 (Tue, 27 Jun 2017)
Log Message:
-----------
parsetexi support integer extra values instead of outputting them as strings

Modified Paths:
--------------
    trunk/tp/parsetexi/Makefile.am
    trunk/tp/parsetexi/api.c
    trunk/tp/parsetexi/extra.c
    trunk/tp/parsetexi/handle_commands.c
    trunk/tp/parsetexi/tree_types.h

Modified: trunk/tp/parsetexi/Makefile.am
===================================================================
--- trunk/tp/parsetexi/Makefile.am      2017-06-26 20:45:09 UTC (rev 7865)
+++ trunk/tp/parsetexi/Makefile.am      2017-06-27 11:21:53 UTC (rev 7866)
@@ -15,7 +15,7 @@
 .xs.c:
        $(XSUBPP) $(XSUBPPARGS) $< > $*.xsc && mv $*.xsc $*.c
 
-bin_PROGRAMS=parsetexi
+# bin_PROGRAMS=parsetexi
 xs_LTLIBRARIES = Parsetexi.la
 
 CLEANFILES += Parsetexi.c

Modified: trunk/tp/parsetexi/api.c
===================================================================
--- trunk/tp/parsetexi/api.c    2017-06-26 20:45:09 UTC (rev 7865)
+++ trunk/tp/parsetexi/api.c    2017-06-27 11:21:53 UTC (rev 7866)
@@ -388,13 +388,19 @@
             case extra_string:
               { /* A simple string. */
               char *value = (char *) f;
+              STORE(newSVpv (value, 0));
+              break;
+              }
+            case extra_integer:
+              { /* A simple string. */
+              int value = (int) f;
               if (strcmp (key, "level"))
-                STORE(newSVpv (value, 0));
+                STORE(newSViv (value));
               else
                 {
                   // FIXME: don't use level as a separate key
                   hv_store (e->hv, key, strlen (key),
-                           newSVpv(value, 0), 0);
+                           newSViv(value), 0);
                 }
               break;
               }

Modified: trunk/tp/parsetexi/extra.c
===================================================================
--- trunk/tp/parsetexi/extra.c  2017-06-26 20:45:09 UTC (rev 7865)
+++ trunk/tp/parsetexi/extra.c  2017-06-27 11:21:53 UTC (rev 7866)
@@ -1,4 +1,4 @@
-/* Copyright 2010, 2011, 2012, 2013, 2014, 2015
+/* Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
    Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -121,6 +121,12 @@
   add_extra_key (e, key, (ELEMENT *) value, extra_string);
 }
 
+void
+add_extra_integer (ELEMENT *e, char *key, int value)
+{
+  add_extra_key (e, key, (ELEMENT *) value, extra_integer);
+}
+
 KEY_PAIR *
 lookup_extra_key (ELEMENT *e, char *key)
 {

Modified: trunk/tp/parsetexi/handle_commands.c
===================================================================
--- trunk/tp/parsetexi/handle_commands.c        2017-06-26 20:45:09 UTC (rev 
7865)
+++ trunk/tp/parsetexi/handle_commands.c        2017-06-27 11:21:53 UTC (rev 
7866)
@@ -628,30 +628,12 @@
 
           if (command_data(cmd).flags & CF_sectioning)
             {
-              static char *level_string =
-                          ("0\0" "0\0" "1\0" "2\0" "3\0" "4\0"
-                                 "5\0" "6\0" "7\0" "8\0" "9\0");
-              /* Store section level in 'extra' key. */
               if (global_info.sections_level)
                 {
-                  int level = global_info.sections_level;
-                  char *p;
-
-                  if (level < -1)
-                    level = -1;
-                  if (level > 9)
-                    level = 9;
-                  /* fixme: should support all values */
-
-                  if (level == -1)
-                    p = "-1";
-                  else
-                    p = &(level_string + 2)[level * 2];
-                  add_extra_string (last_contents_child (current),
-                                    "sections_level", p);
+                  add_extra_integer (misc, "sections_level",
+                                     global_info.sections_level);
                 }
-              add_extra_string (misc, "level",
-                          &(level_string + 2)[section_level (misc) * 2]);
+              add_extra_integer (misc, "level", section_level (misc));
             }
 
           /* 4546 - def*x */

Modified: trunk/tp/parsetexi/tree_types.h
===================================================================
--- trunk/tp/parsetexi/tree_types.h     2017-06-26 20:45:09 UTC (rev 7865)
+++ trunk/tp/parsetexi/tree_types.h     2017-06-27 11:21:53 UTC (rev 7866)
@@ -35,6 +35,7 @@
     extra_node_spec,
     extra_node_spec_array,
     extra_string,
+    extra_integer,
     extra_def_args,
     extra_float_type,
     extra_deleted




reply via email to

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