texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[6854] parsetexi update


From: Gavin D. Smith
Subject: [6854] parsetexi update
Date: Sun, 13 Dec 2015 12:02:06 +0000

Revision: 6854
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6854
Author:   gavin
Date:     2015-12-13 12:02:00 +0000 (Sun, 13 Dec 2015)
Log Message:
-----------
parsetexi update

Modified Paths:
--------------
    trunk/parsetexi/api.c
    trunk/parsetexi/command_data.txt
    trunk/parsetexi/convert.c
    trunk/parsetexi/handle_commands.c
    trunk/parsetexi/indices.c
    trunk/parsetexi/parser.c

Modified: trunk/parsetexi/api.c
===================================================================
--- trunk/parsetexi/api.c       2015-12-12 19:33:50 UTC (rev 6853)
+++ trunk/parsetexi/api.c       2015-12-13 12:02:00 UTC (rev 6854)
@@ -235,6 +235,7 @@
       || (command_data(e->cmd).flags & CF_accent)
       || (command_data(e->cmd).flags & CF_brace
           && (command_data(e->cmd).data > 0       // 4838
+              || command_data(e->cmd).data == BRACE_style
               || command_data(e->cmd).data == BRACE_context))
       || e->cmd == CM_node) // FIXME special case
     {

Modified: trunk/parsetexi/command_data.txt
===================================================================
--- trunk/parsetexi/command_data.txt    2015-12-12 19:33:50 UTC (rev 6853)
+++ trunk/parsetexi/command_data.txt    2015-12-13 12:02:00 UTC (rev 6854)
@@ -241,8 +241,7 @@
 guilsinglright brace           0
 
 # accent commands - can be called with or without braces
-# do we need both "brace" and "accent"?
-# there is special casing on line 3998
+# TODO do we need "brace" here as well?
 \"             brace,accent    BRACE_accent
 ~              brace,accent    BRACE_accent
 ^              brace,accent    BRACE_accent

Modified: trunk/parsetexi/convert.c
===================================================================
--- trunk/parsetexi/convert.c   2015-12-12 19:33:50 UTC (rev 6853)
+++ trunk/parsetexi/convert.c   2015-12-13 12:02:00 UTC (rev 6854)
@@ -79,12 +79,12 @@
           switch (root->cmd) // 353 Common.pm
             {
             case CM_ASTERISK:
-              ADD("\n");
+              ADD("-");
               break;
             case CM_SPACE:
             case CM_TAB:
             case CM_NEWLINE:
-              ADD(" ");
+              ADD("-");
               break;
             case CM_HYPHEN:
             case CM_VERTICAL_BAR:
@@ -98,7 +98,7 @@
             case CM_CLOSE_BRACE:
             case CM_OPEN_BRACE:
             case CM_BACKSLASH:
-              ADD(command_name(root->cmd));
+              text_printf (result, "_00%02x", *command_name(root->cmd));
               break;
             default:
               /* Shouldn't get here. */
@@ -128,15 +128,15 @@
             case CM_bullet:
               ADD("_2022"); break;
             case CM_copyright:
-              ADD("_00A9"); break;
+              ADD("_00a9"); break;
             case CM_registeredsymbol:
-              ADD("_00AE"); break;
+              ADD("_00ae"); break;
             case CM_dots:
               ADD("_2026"); break;
             case CM_equiv:
               ADD("_2261"); break;
             case CM_expansion:
-              ADD("_21A6"); break;
+              ADD("_21a6"); break;
             case CM_arrow:
               ADD("_2192"); break;
             case CM_minus:
@@ -144,93 +144,93 @@
             case CM_point:
               ADD("_2605"); break;
             case CM_print:
-              ADD("_22A3"); break;
+              ADD("_22a3"); break;
             case CM_result:
-              ADD("_21D2"); break;
+              ADD("_21d2"); break;
             case CM_aa:
-              ADD("_00E5"); break;
+              ADD("_00e5"); break;
             case CM_AA:
-              ADD("_00C5"); break;
+              ADD("_00c5"); break;
             case CM_ae:
-              ADD("_00E6"); break;
+              ADD("_00e6"); break;
             case CM_oe:
               ADD("_0153"); break;
             case CM_AE:
-              ADD("_00C6"); break;
+              ADD("_00c6"); break;
             case CM_OE:
               ADD("_0152"); break;
             case CM_o:
-              ADD("_00F8"); break;
+              ADD("_00f8"); break;
             case CM_O:
-              ADD("_00D8"); break;
+              ADD("_00d8"); break;
             case CM_ss:
-              ADD("_00DF"); break;
+              ADD("_00df"); break;
             case CM_DH:
-              ADD("_00D0"); break;
+              ADD("_00d0"); break;
             case CM_dh:
-              ADD("_00F0"); break;
+              ADD("_00f0"); break;
             case CM_TH:
-              ADD("_00DE"); break;
+              ADD("_00de"); break;
             case CM_th:
-              ADD("_00FE"); break;
+              ADD("_00fe"); break;
             case CM_l:
               ADD("_0142"); break;
             case CM_L:
               ADD("_0141"); break;
             case CM_exclamdown:
-              ADD("_00A1"); break;
+              ADD("_00a1"); break;
             case CM_questiondown:
-              ADD("_00BF"); break;
+              ADD("_00bf"); break;
             case CM_pounds:
-              ADD("_00A3"); break;
+              ADD("_00a3"); break;
             case CM_ordf:
-              ADD("_00AA"); break;
+              ADD("_00aa"); break;
             case CM_ordm:
-              ADD("_00BA"); break;
+              ADD("_00ba"); break;
             case CM_comma:
-              ADD("_002C"); break;
+              ADD("_002c"); break;
             case CM_atchar:
               ADD("_0040"); break;
             case CM_lbracechar:
-              ADD("_007B"); break;
+              ADD("_007b"); break;
             case CM_rbracechar:
-              ADD("_007D"); break;
+              ADD("_007d"); break;
             case CM_backslashchar:
-              ADD("_005C"); break;
+              ADD("_005c"); break;
             case CM_hashchar:
               ADD("_0023"); break;
             case CM_euro:
-              ADD("_20AC"); break;
+              ADD("_20ac"); break;
             case CM_geq:
               ADD("_2265"); break;
             case CM_leq:
               ADD("_2264"); break;
             case CM_textdegree:
-              ADD("_00B0"); break;
+              ADD("_00b0"); break;
             case CM_quotedblleft:
-              ADD("_201C"); break;
+              ADD("_201c"); break;
             case CM_quotedblright:
-              ADD("_201D"); break;
+              ADD("_201d"); break;
             case CM_quoteleft:
               ADD("_2018"); break;
             case CM_quoteright:
               ADD("_2019"); break;
             case CM_quotedblbase:
-              ADD("_201E"); break;
+              ADD("_201e"); break;
             case CM_quotesinglbase:
-              ADD("_201A"); break;
+              ADD("_201a"); break;
             case CM_guillemetleft:
-              ADD("_00AB"); break;
+              ADD("_00ab"); break;
             case CM_guillemetright:
-              ADD("_00BB"); break;
+              ADD("_00bb"); break;
             case CM_guillemotleft:
-              ADD("_00AB"); break;
+              ADD("_00ab"); break;
             case CM_guillemotright:
-              ADD("_00BB"); break;
+              ADD("_00bb"); break;
             case CM_guilsinglleft:
               ADD("_2039"); break;
             case CM_guilsinglright:
-              ADD("_203A"); break;
+              ADD("_203a"); break;
             case CM_click:
               ADD("_2192"); break;
             default:

Modified: trunk/parsetexi/handle_commands.c
===================================================================
--- trunk/parsetexi/handle_commands.c   2015-12-12 19:33:50 UTC (rev 6853)
+++ trunk/parsetexi/handle_commands.c   2015-12-13 12:02:00 UTC (rev 6854)
@@ -685,6 +685,7 @@
   // 4841
   // 258 keep_line_nr_brace_commands
   if (e->cmd == CM_titlefont || e->cmd == CM_anchor
+      || (command_data(e->cmd).flags & CF_accent)
       || (command_data(e->cmd).flags & CF_brace
           && (command_data(e->cmd).data > 1
               || command_data(e->cmd).data == BRACE_context)))

Modified: trunk/parsetexi/indices.c
===================================================================
--- trunk/parsetexi/indices.c   2015-12-12 19:33:50 UTC (rev 6853)
+++ trunk/parsetexi/indices.c   2015-12-13 12:02:00 UTC (rev 6854)
@@ -273,6 +273,8 @@
 
   add_extra_key_index_entry (current, "index_entry", ier);
 
+  if (!current_section)
+    line_warn ("entry for index `%s' outside of any node", idx->name);
 }
 
 

Modified: trunk/parsetexi/parser.c
===================================================================
--- trunk/parsetexi/parser.c    2015-12-12 19:33:50 UTC (rev 6853)
+++ trunk/parsetexi/parser.c    2015-12-13 12:02:00 UTC (rev 6854)
@@ -902,7 +902,7 @@
                   k = lookup_extra_key (current, "spaces");
                   if (!k)
                     {
-                      asprintf (&s, "%.*s", (int) (p - line), p);
+                      asprintf (&s, "%.*s", (int) (p - line), line);
                       add_extra_string (current, "spaces", s);
                     }
                   else
@@ -915,45 +915,65 @@
                     }
                   line = p;
                 }
-              else if (*line == '@')
+              else
                 {
-                  line_error ("use braces to give a command as an argument "
-                               "to @%s", command_name(current->cmd));
+                  line_warn ("accent command @%s must not be followed "
+                             "by whitespace", command_name(current->cmd));
                   current = current->parent;
                 }
-              else if (*line != '\0' && *line != '\n' && *line != '\r')
+            }
+          else if (*line == '@')
+            {
+              line_error ("use braces to give a command as an argument "
+                          "to @%s", command_name(current->cmd));
+              current = current->parent;
+            }
+          else if (*line != '\0' && *line != '\n' && *line != '\r')
+            {
+              ELEMENT *e, *e2;
+              debug ("ACCENT");
+              e = new_element (ET_following_arg);
+              add_to_element_args (current, e);
+              e2 = new_element (ET_NONE);
+              text_append_n (&e2->text, line, 1);
+              add_to_element_contents (e, e2);
+
+              if (current->cmd == CM_dotless
+                  && *line != 'i' && *line != 'j')
                 {
-                  ELEMENT *e;
-                  debug ("ACCENT");
-                  e = new_element (ET_following_arg);
-                  add_to_element_args (current, e);
-                  text_append_n (&e->text, line, 1);
-                  if (current->cmd == CM_dotless
-                      && *line != 'i' && *line != 'j')
-                    {
-                      line_error ("@%s expects `i' or `j' as argument, "
-                                   "not `%c'", *line++);
-                    }
-                  if (isalpha (command_name(current->cmd)[0]))
-                    e->type = ET_space_command_arg;
-                  while (current->contents.number > 0)
-                    destroy_element (pop_element_from_contents (current));
-                  current = current->parent;
+                  line_error ("@dotless expects `i' or `j' as argument, "
+                              "not `%c'", *line);
                 }
-              else // 4032
-                {
-                  debug ("STRANGE ACC");
-                  line_warn ("accent command address@hidden' must not be 
followed by "
-                             "a new line", command_name(current->cmd));
-                }
+              if (isalpha (command_name(current->cmd)[0]))
+                e->type = ET_space_command_arg;
+              while (current->contents.number > 0)
+                destroy_element (pop_element_from_contents (current));
+              line++;
+              current = current->parent;
             }
-          current = current->parent;
+          else // 4032
+            {
+              debug ("STRANGE ACC");
+              line_warn ("accent command address@hidden' must not be followed 
by "
+                         "a new line", command_name(current->cmd));
+              current = current->parent;
+            }
           goto funexit;
         }
       else // 4041
         {
           /* TODO: Check 'IGNORE_SPACES_AFTER_BRACED_COMMAND_NAME' config
              variable. */
+          if (1)
+            {
+              char *p;
+              p = line + strspn (line, whitespace_chars);
+              if (p != line)
+                {
+                  line = p;
+                  goto funexit;
+                }
+            }
           line_error ("@%s expected braces",
                        command_name(current->cmd));
           current = current->parent;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]