[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[8142] parsetexi update
From: |
gavinsmith0123 |
Subject: |
[8142] parsetexi update |
Date: |
Sat, 1 Sep 2018 12:22:18 -0400 (EDT) |
Revision: 8142
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=8142
Author: gavin
Date: 2018-09-01 12:22:18 -0400 (Sat, 01 Sep 2018)
Log Message:
-----------
parsetexi update
Modified Paths:
--------------
trunk/tp/Texinfo/XS/parsetexi/def.c
Modified: trunk/tp/Texinfo/XS/parsetexi/def.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/def.c 2018-09-01 15:43:30 UTC (rev 8141)
+++ trunk/tp/Texinfo/XS/parsetexi/def.c 2018-09-01 16:22:18 UTC (rev 8142)
@@ -155,7 +155,8 @@
}
/* Divide any text elements into separate elements, separating whitespace
- and non-whitespace. */
+ and non-whitespace. Change ET_bracketed elements to
+ ET_bracketed_def_content. */
static void
split_def_args (ELEMENT *current)
{
@@ -167,6 +168,12 @@
char *p;
ELEMENT *new;
int len;
+ if (e->type == ET_bracketed)
+ {
+ isolate_last_space (e, 0);
+ e->type = ET_bracketed_def_content;
+ continue;
+ }
if (e->text.end == 0)
continue;
if (e->type == ET_empty_spaces_after_command)
@@ -173,18 +180,23 @@
continue;
p = e->text.text;
- len = strspn (p, whitespace_chars);
- if (len)
- {
- new = new_element (ET_spaces);
- text_append_n (&new->text, p, len);
- insert_into_contents (current, new, i++);
- add_extra_string_dup (new, "def_role", "spaces");
- p += len;
- }
-
while (1)
{
+ len = strspn (p, whitespace_chars);
+ if (len)
+ {
+ new = new_element (ET_spaces);
+ text_append_n (&new->text, p, len);
+ insert_into_contents (current, new, i++);
+ add_extra_string_dup (new, "def_role", "spaces");
+ if (!*(p += len))
+ {
+ if (p[-1] == '\n')
+ new->type = ET_spaces_at_end;
+ break;
+ }
+ }
+
len = strcspn (p, whitespace_chars);
new = new_element (ET_NONE);
text_append_n (&new->text, p, len);
@@ -192,16 +204,6 @@
if (!*(p += len))
break;
- len = strspn (p, whitespace_chars);
- new = new_element (ET_spaces);
- text_append_n (&new->text, p, len);
- insert_into_contents (current, new, i++);
- add_extra_string_dup (new, "def_role", "spaces");
- if (!*(p += len))
- {
- new->type = ET_spaces_at_end;
- break;
- }
}
destroy_element (remove_from_contents (current, i--));
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [8142] parsetexi update,
gavinsmith0123 <=