[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[7377] parsetexi update
From: |
gavinsmith0123 |
Subject: |
[7377] parsetexi update |
Date: |
Mon, 19 Sep 2016 10:37:51 +0000 (UTC) |
Revision: 7377
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=7377
Author: gavin
Date: 2016-09-19 10:37:50 +0000 (Mon, 19 Sep 2016)
Log Message:
-----------
parsetexi update
Modified Paths:
--------------
trunk/tp/parsetexi/convert.c
trunk/tp/parsetexi/convert.h
trunk/tp/parsetexi/end_line.c
Modified: trunk/tp/parsetexi/convert.c
===================================================================
--- trunk/tp/parsetexi/convert.c 2016-09-19 10:12:01 UTC (rev 7376)
+++ trunk/tp/parsetexi/convert.c 2016-09-19 10:37:50 UTC (rev 7377)
@@ -21,13 +21,14 @@
#include "parser.h"
#include "text.h"
+#include "convert.h"
-#define ADD(x) text_append (result, x)
static void expand_cmd_args_to_texi (ELEMENT *e, TEXT *result);
static void convert_to_texinfo_internal (ELEMENT *e, TEXT *result);
+#define ADD(x) text_append (result, x)
static void
expand_cmd_args_to_texi (ELEMENT *e, TEXT *result)
@@ -122,6 +123,38 @@
return result.text;
}
+/* Very stripped-down version of Texinfo::Convert::Text.
+ Convert the contents of E to plain text. Suitable for specifying a file
+ name containing an at sign or braces. Set *SUPERFLUOUS_ARG if the contents
+ of E are too complicated to convert properly. */
+char *
+convert_to_text (ELEMENT *e, int *superfluous_arg)
+{
+#define ADD(x) text_append (&result, x)
+
+ TEXT result; int i;
+
+ if (!e)
+ return "";
+ text_init (&result);
+ for (i = 0; i < e->contents.number; i++)
+ {
+ ELEMENT *e1 = contents_child_by_index (e, i);
+ if (e1->text.end > 0)
+ ADD(e1->text.text);
+ else if (e1->cmd == CM_AT_SIGN)
+ ADD("@");
+ else if (e1->cmd == CM_OPEN_BRACE)
+ ADD("{");
+ else if (e1->cmd == CM_CLOSE_BRACE)
+ ADD("}");
+ else
+ *superfluous_arg = 1;
+ }
+ return result.text;
+}
+#undef ADD
+
/* Produce normalized node name recursively. IN_UC is non-zero if we are
converting to upper case. */
static void
Modified: trunk/tp/parsetexi/convert.h
===================================================================
--- trunk/tp/parsetexi/convert.h 2016-09-19 10:12:01 UTC (rev 7376)
+++ trunk/tp/parsetexi/convert.h 2016-09-19 10:37:50 UTC (rev 7377)
@@ -1,2 +1,3 @@
char *convert_to_normalized (ELEMENT *label);
char *convert_to_texinfo (ELEMENT *e);
+char *convert_to_text (ELEMENT *e, int *superfluous_arg);
Modified: trunk/tp/parsetexi/end_line.c
===================================================================
--- trunk/tp/parsetexi/end_line.c 2016-09-19 10:12:01 UTC (rev 7376)
+++ trunk/tp/parsetexi/end_line.c 2016-09-19 10:37:50 UTC (rev 7377)
@@ -1332,8 +1332,7 @@
&& !trimmed->contents.list[0]->text.text))
superfluous_arg = 1;
- if (trimmed->contents.number > 0)
- text = trimmed->contents.list[0]->text.text;
+ text = convert_to_text (trimmed, &superfluous_arg);
}
if (!text)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [7377] parsetexi update,
gavinsmith0123 <=