[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[7088] parsetexi nested ifset
From: |
Gavin D. Smith |
Subject: |
[7088] parsetexi nested ifset |
Date: |
Thu, 31 Mar 2016 18:58:59 +0000 |
Revision: 7088
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=7088
Author: gavin
Date: 2016-03-31 18:58:58 +0000 (Thu, 31 Mar 2016)
Log Message:
-----------
parsetexi nested ifset
Modified Paths:
--------------
trunk/tp/parsetexi/parser.c
Modified: trunk/tp/parsetexi/parser.c
===================================================================
--- trunk/tp/parsetexi/parser.c 2016-03-31 18:02:53 UTC (rev 7087)
+++ trunk/tp/parsetexi/parser.c 2016-03-31 18:58:58 UTC (rev 7088)
@@ -699,16 +699,31 @@
goto funexit;
}
}
-#if 0
- /* Else check for nested ifclear */
- if (...)
+
+ /* Else check for nested @ifset (so that @end ifset doesn't
+ end the outermost @ifset). */
+ if (current->cmd == CM_ifclear || current->cmd == CM_ifset
+ || current->cmd == CM_ifcommanddefined
+ || current->cmd == CM_ifcommandnotdefined)
{
- /* ... */
- current = current->contents.list[number];
- break;
+ ELEMENT *e;
+ char *p = line;
+ p += strspn (p, whitespace_chars);
+ if (!strncmp (p, command_name(current->cmd),
+ strlen (command_name(current->cmd))))
+ {
+ line = p;
+ p += strlen (command_name(current->cmd));
+ e = new_element (ET_NONE);
+ e->cmd = current->cmd;
+ add_extra_string (e, "line", strdup (line));
+ add_to_element_contents (current, e);
+ current = e;
+ retval = GET_A_NEW_LINE;
+ goto funexit;
+ }
}
- else
-#endif
+
/* 3755 Else check if line is "@end ..." for current command. */
if (is_end_current_command (current, &line, &end_cmd))
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [7088] parsetexi nested ifset,
Gavin D. Smith <=