[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [7866] parsetexi support integer extra values instead of outputting them as strings,
gavinsmith0123 <=