[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[6052] parsetexi better dumping
From: |
Gavin D. Smith |
Subject: |
[6052] parsetexi better dumping |
Date: |
Mon, 19 Jan 2015 17:46:51 +0000 |
Revision: 6052
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6052
Author: gavin
Date: 2015-01-19 17:46:50 +0000 (Mon, 19 Jan 2015)
Log Message:
-----------
parsetexi better dumping
Modified Paths:
--------------
trunk/parsetexi/ChangeLog
trunk/parsetexi/dump_perl.c
Modified: trunk/parsetexi/ChangeLog
===================================================================
--- trunk/parsetexi/ChangeLog 2015-01-19 17:24:34 UTC (rev 6051)
+++ trunk/parsetexi/ChangeLog 2015-01-19 17:46:50 UTC (rev 6052)
@@ -1,5 +1,12 @@
2015-01-19 Gavin Smith <address@hidden>
+ * dump_perl.c (dump_extra) <extra_index_entry>: Don't output
+ current indent.
+ <extra_misc_args>: Escape backslashes and single quotes in
+ output.
+
+2015-01-19 Gavin Smith <address@hidden>
+
* command_data.awk: Output #define's into generated
commands_id.h file to give more readable alternatives for the
CM_hex_?? enum command_id values.
Modified: trunk/parsetexi/dump_perl.c
===================================================================
--- trunk/parsetexi/dump_perl.c 2015-01-19 17:24:34 UTC (rev 6051)
+++ trunk/parsetexi/dump_perl.c 2015-01-19 17:46:50 UTC (rev 6052)
@@ -49,7 +49,21 @@
printf (" ");
}
+/* Ouput S escaping single quotes and backslashes, so that
+ Perl can read it in when it is surrounded by single quotes. */
void
+dump_string (char *s)
+{
+ while (*s)
+ {
+ if (*s == '\''
+ || *s == '\\')
+ putchar ('\\');
+ putchar (*s++);
+ }
+}
+
+void
dump_args (ELEMENT *e)
{
int i;
@@ -164,8 +178,6 @@
{
for (i = 0; i < e->extra_number; i++)
{
- dump_indent ();
-
if (e->extra[i].type == extra_index_entry)
{
/* A "index_entry" extra key on a command defining an index
@@ -183,8 +195,13 @@
"$INDEX_NAMES->{'%s'}{'index_entries'}[%d];\n",
value->index_name, value->number - 1);
/* value->number is 1-based so we needed to subtract 1. */
+
+ continue;
}
- else if (e->extra[i].type == extra_misc_args)
+
+ dump_indent ();
+
+ if (e->extra[i].type == extra_misc_args)
{
int j;
/* A "misc_args" value is just an array of strings. */
@@ -193,9 +210,10 @@
{
if (e->extra[i].value->contents.list[j]->text.end > 0)
{
- /* TODO: Escape special characters. */
- printf ("'%s',",
- e->extra[i].value->contents.list[j]->text.text);
+ printf("'");
+ dump_string(e->extra[i].value->contents.list[j]
+ ->text.text);
+ printf("',");
}
/* else an error? */
}
@@ -291,18 +309,6 @@
}
void
-dump_string (char *s)
-{
- while (*s)
- {
- if (*s == '\''
- || *s == '\\')
- putchar ('\\');
- putchar (*s++);
- }
-}
-
-void
dump_element (ELEMENT *e)
{
printf ("{\n");
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [6052] parsetexi better dumping,
Gavin D. Smith <=