[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[6840] parsetexi update
From: |
Gavin D. Smith |
Subject: |
[6840] parsetexi update |
Date: |
Mon, 07 Dec 2015 18:58:18 +0000 |
Revision: 6840
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6840
Author: gavin
Date: 2015-12-07 18:58:17 +0000 (Mon, 07 Dec 2015)
Log Message:
-----------
parsetexi update
Modified Paths:
--------------
trunk/parsetexi/api.c
trunk/parsetexi/close.c
trunk/parsetexi/end_line.c
trunk/parsetexi/handle_commands.c
trunk/parsetexi/menus.c
trunk/parsetexi/parser.c
Modified: trunk/parsetexi/api.c
===================================================================
--- trunk/parsetexi/api.c 2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/api.c 2015-12-07 18:58:17 UTC (rev 6840)
@@ -159,7 +159,7 @@
build_perl_array (&value->node_content->contents), 0);
}
- if (value->normalized)
+ if (value->normalized && *value->normalized)
{
hv_store (hv, "normalized", strlen ("normalized"),
newSVpv (value->normalized, 0), 0);
@@ -230,6 +230,7 @@
|| e->type == ET_text_root // FIXME special case
|| e->cmd == CM_image // why image?
|| e->cmd == CM_anchor
+ || e->type == ET_menu_entry_name
|| e->cmd == CM_node) // FIXME special case
{
AV *av;
Modified: trunk/parsetexi/close.c
===================================================================
--- trunk/parsetexi/close.c 2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/close.c 2015-12-07 18:58:17 UTC (rev 6840)
@@ -251,10 +251,33 @@
current = close_brace_command (current,
closed_command, interrupting_command);
}
+ else if (command_flags(current) & CF_block)
+ {
+ if (closed_command)
+ {
+ line_errorf ("address@hidden' expected `%s', but saw `%s'",
+ command_name(current->cmd),
+ command_name(closed_command));
+ }
+ else if (interrupting_command)
+ {
+ line_errorf ("`%s' seen before @end %s",
+ command_name(interrupting_command),
+ command_name(current->cmd));
+ }
+ else
+ {
+ line_errorf ("no matching address@hidden %s'",
+ command_name(current->cmd));
+ // TODO: ignored conditional
+ }
+ current = current->parent;
+ }
else
{
+ /* @item and @tab commands are closed here, as well as line commands
+ with invalid content. */
current = current->parent;
- // TODO
}
}
else if (current->type != ET_NONE)
Modified: trunk/parsetexi/end_line.c
===================================================================
--- trunk/parsetexi/end_line.c 2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/end_line.c 2015-12-07 18:58:17 UTC (rev 6840)
@@ -1267,7 +1267,8 @@
add_to_element_contents (closed_command, end_elt); // 3321
// 3324 ET_menu_comment
- if (command_flags(closed_command) & CF_menu)
+ if (command_flags(closed_command) & CF_menu
+ && current_context () == ct_menu)
{
ELEMENT *e;
debug ("CLOSE menu but still in menu context");
Modified: trunk/parsetexi/handle_commands.c
===================================================================
--- trunk/parsetexi/handle_commands.c 2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/handle_commands.c 2015-12-07 18:58:17 UTC (rev 6840)
@@ -379,8 +379,7 @@
/* Store section level in 'extra' key. */
/* TODO: @part? */
/*add_extra_string (last_contents_child (current),
- "sections_level", "1");
- //"0\0""1\0"[level * 2]);*/
+ "sections_level", "1"); */
add_extra_string (misc, "level",
&("0\0" "0\0" "1\0" "2\0" "3\0" "4\0"
"5\0" "6\0" "7\0" "8\0" "9\0" + 2)
@@ -625,19 +624,24 @@
// Record dir entry here
- if (current_node)
+ if (current_node) // 4793
{
if (cmd == CM_direntry)
{
- // warning
+ line_warn ("@direntry after first node");
}
else if (cmd == CM_menu)
{
// add to array of menus for current node
}
}
- else
+ else if (cmd != CM_direntry)
{
+ line_errorf ("@%s seen before first @node",
+ command_name(cmd));
+ line_errorf ("perhaps your @top node should be "
+ "wrapped in @ifnottex rather than @ifinfo?");
+ // 4810 unassociated menus
}
}
Modified: trunk/parsetexi/menus.c
===================================================================
--- trunk/parsetexi/menus.c 2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/menus.c 2015-12-07 18:58:17 UTC (rev 6840)
@@ -46,7 +46,10 @@
isolate_last_space (arg, ET_space_at_end_menu_node);
parsed_entry_node = parse_node_manual (arg);
- add_extra_node_spec (current, "menu_entry_node", parsed_entry_node);
+ if (1)
+ {
+ add_extra_node_spec (current, "menu_entry_node",
parsed_entry_node);
+ }
}
else if (arg->type == ET_menu_entry_description)
{
Modified: trunk/parsetexi/parser.c
===================================================================
--- trunk/parsetexi/parser.c 2015-12-07 14:56:54 UTC (rev 6839)
+++ trunk/parsetexi/parser.c 2015-12-07 18:58:17 UTC (rev 6840)
@@ -785,13 +785,10 @@
if (q)
{
/* Save up to the delimiter character. */
- if (q != line)
- {
- ELEMENT *e = new_element (ET_raw);
- text_append_n (&e->text, line, q - line);
- add_to_element_contents (current, e);
- line = q + 1;
- }
+ ELEMENT *e = new_element (ET_raw);
+ text_append_n (&e->text, line, q - line);
+ add_to_element_contents (current, e);
+ line = q + 1;
debug ("END VERB");
/* The '}' will close the @verb command in handle_separator below. */
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [6840] parsetexi update,
Gavin D. Smith <=