texinfo-commits
[Top][All Lists]
Advanced

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

[8191] implement @& and @ampchar{}


From: gavinsmith0123
Subject: [8191] implement @& and @ampchar{}
Date: Fri, 21 Sep 2018 18:02:12 -0400 (EDT)

Revision: 8191
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=8191
Author:   gavin
Date:     2018-09-21 18:02:12 -0400 (Fri, 21 Sep 2018)
Log Message:
-----------
implement @& and @ampchar{}

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/NEWS
    trunk/configure.ac
    trunk/doc/texinfo.tex
    trunk/doc/texinfo.texi
    trunk/tp/Texinfo/Common.pm
    trunk/tp/Texinfo/Convert/Converter.pm
    trunk/tp/Texinfo/Convert/HTML.pm
    trunk/tp/Texinfo/Convert/TexinfoXML.pm
    trunk/tp/Texinfo/Convert/Text.pm
    trunk/tp/Texinfo/Convert/Unicode.pm
    trunk/tp/Texinfo/Parser.pm
    trunk/tp/Texinfo/XS/misc.c
    trunk/tp/t/19def.t
    trunk/util/texinfo.dtd

Added Paths:
-----------
    trunk/tp/t/results/def/ampchar.pl

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog     2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/ChangeLog     2018-09-21 22:02:12 UTC (rev 8191)
@@ -1,5 +1,31 @@
 2018-09-21  Gavin Smith  <address@hidden>
 
+       * tp/Texinfo/Common.pm (%no_brace_commands): Add '&'.
+       (%brace_commands): Add 'ampchar'.
+       * tp/Texinfo/Convert/Converter.pm
+       (%defaul_xml_commands_formatting): Add 'ampchar'.
+       * tp/Texinfo/Convert/TexinfoXML.pm (%commands_formatting): Add 
+       '&', 'ampchar'.
+       * tp/Texinfo/Convert/Text.pm (%text_brace_no_arg_commands): Add 
+       'ampchar'.
+       * tp/Texinfo/Convert/Unicode.pm (%unicode_map): Add 'ampchar'.
+       * tp/Texinfo/XS/misc.c (parse_texi_regex),
+       * tp/Texinfo/Parser.pm (_parse_texi_regex): Include & as a 
+       single letter command.
+
+       * tp/t/19def.t (ampchar): New test.
+
+       * util/texinfo.dtd: Add 'ampchar'.
+       * configure.ac (TEXINFO_DTD_VERSION): Increase to '6.4dev'.
+
+       * doc/texinfo.tex (\ampchar): Define.
+
+       * doc/texinfo.texi (Inserting an Ampersand): New section.
+
+       * NEWS: Mention @&, @ampchar{}.
+
+2018-09-21  Gavin Smith  <address@hidden>
+
        * tp/Texinfo/Parser.pm (_parse_texi):
        Do not set a 'spaces_after_command_elt' value.
        (_abort_empty_line): Do not clear a 'spaces_before_argument_elt' 

Modified: trunk/NEWS
===================================================================
--- trunk/NEWS  2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/NEWS  2018-09-21 22:02:12 UTC (rev 8191)
@@ -4,7 +4,7 @@
 
   Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
-  2013, 2014, 2015, 2016, 2017 Free Software Foundation, Inc.
+  2013, 2014, 2015, 2016, 2017, 2018 Free Software Foundation, Inc.
 
   Copying and distribution of this file, with or without modification,
   are permitted in any medium without royalty provided the copyright
@@ -12,6 +12,10 @@
 
 ------------------------------------------------------------------------------
 
+* Language:
+  . New commands @&, @ampchar{}.
+
+
 6.5 (12 September 2017)
 * info:
   . some bugs fixed:

Modified: trunk/configure.ac
===================================================================
--- trunk/configure.ac  2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/configure.ac  2018-09-21 22:02:12 UTC (rev 8191)
@@ -2,7 +2,7 @@
 # $Id$
 #
 # Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
-# 2012, 2013, 2014, 2015, 2016, 2017 Free Software Foundation, Inc.
+# 2012, 2013, 2014, 2015, 2016, 2017, 2018 Free Software Foundation, Inc.
 #
 # This file is free software; as a special exception the author gives
 # unlimited permission to copy and/or distribute it, with or without
@@ -18,7 +18,7 @@
 AC_CONFIG_AUX_DIR([build-aux])
 dnl tar-ustar because we have long filenames for some test files.
 dnl parallel-tests as recommended by stefano.
-AM_INIT_AUTOMAKE([1.14 dist-xz
+AM_INIT_AUTOMAKE([1.14
                  info-in-builddir parallel-tests readme-alpha tar-ustar])
 
 # Where to generate output; srcdir location.
@@ -35,7 +35,7 @@
 # 3. It may be kept as is in case there were no change in the DTD
 #    between releases.  This is rare, but has happened.
 #
-TEXINFO_DTD_VERSION=6.4
+TEXINFO_DTD_VERSION=6.4dev
 AC_SUBST([TEXINFO_DTD_VERSION])
 
 # Conditional texi2html support.

Modified: trunk/doc/texinfo.tex
===================================================================
--- trunk/doc/texinfo.tex       2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/doc/texinfo.tex       2018-09-21 22:02:12 UTC (rev 8191)
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2018-06-02.09}
+\def\texinfoversion{2018-09-21.20}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -8004,6 +8004,7 @@
   \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
   \gdef\magicamp{\let&=\amprm}
 }
+\let\ampchar\&
 
 \newcount\parencount
 

Modified: trunk/doc/texinfo.texi
===================================================================
--- trunk/doc/texinfo.texi      2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/doc/texinfo.texi      2018-09-21 22:02:12 UTC (rev 8191)
@@ -418,7 +418,7 @@
 
 Special Insertions
 
-* Special Characters::          Inserting @@ @address@hidden , \ #
+* Special Characters::          Inserting @@ @address@hidden , \ # &
 * Inserting Quote Characters::  Inserting left and right quotes, in code.
 * Inserting Space::             Inserting the right amount of whitespace.
 * Inserting Accents::           Inserting accents and special characters.
@@ -430,7 +430,7 @@
                                  expansion of macros, errors, etc.
 * Inserting Unicode::           Inserting a Unicode character by code point.
 
-Special Characters: Inserting @@ @address@hidden , \ #
+Special Characters: Inserting @@ @address@hidden , \ # &
 
 * Inserting an Atsign::         @code{@@@@}, @code{@@address@hidden@}}.
 * Inserting Braces::            @code{@@@{ @@@}}, @code{@@l address@hidden@}}.
@@ -437,6 +437,7 @@
 * Inserting a Comma::           , and @code{@@address@hidden@}}.
 * Inserting a Backslash::       \ and @code{@@address@hidden@}}.
 * Inserting a Hashsign::        # and @code{@@address@hidden@}}.
+* Inserting an Ampersand::      & and @code{@@address@hidden@}}.
 
 Inserting Space
 
@@ -9466,7 +9467,7 @@
 These are:
 
 @itemize @bullet
address@hidden The Texinfo special characters: @samp{@@ @address@hidden , \ #}.
address@hidden The Texinfo special characters: @samp{@@ @address@hidden , \ # 
&}.
 @item Whitespace within and around a sentence.
 @item Accents.
 @item Dots and bullets.
@@ -9481,7 +9482,7 @@
 @end iftex
 
 @menu
-* Special Characters::          Inserting @@ @address@hidden , \ #
+* Special Characters::          Inserting @@ @address@hidden , \ # &
 * Inserting Quote Characters::  Inserting left and right quotes, in code.
 * Inserting Space::             Inserting the right amount of whitespace.
 * Inserting Accents::           Inserting accents and special characters.
@@ -9496,7 +9497,7 @@
 
 
 @node Special Characters
address@hidden Special Characters: Inserting @@ @address@hidden , \ #
address@hidden Special Characters: Inserting @@ @address@hidden , \ # &
 @anchor{Braces address@hidden previous names for this node
 @anchor{Atsign Braces Comma}
 @cindex Special characters, inserting
@@ -9507,8 +9508,8 @@
 put an @samp{@@} in front of these characters to prevent Texinfo from
 misinterpreting them.  Alphabetic commands are also provided.
 
-The other characters (comma, backslash, hash) are special only in
-restricted contexts, as explained in the respective sections.
+The other characters (comma, backslash, hash, ampersand) are special 
+only in restricted contexts, as explained in the respective sections.
 
 @menu
 * Inserting an Atsign::         @code{@@@@}, @code{@@address@hidden@}}.
@@ -9516,6 +9517,7 @@
 * Inserting a Comma::           , and @code{@@address@hidden@}}.
 * Inserting a Backslash::       \ and @code{@@address@hidden@}}.
 * Inserting a Hashsign::        # and @code{@@address@hidden@}}.
+* Inserting an Ampersand::      & and @code{@@address@hidden@}}.
 @end menu
 
 
@@ -9661,6 +9663,57 @@
 is no need for it anywhere except this unusual case.
 
 
address@hidden Inserting an Ampersand
address@hidden Inserting `&' with @code{@@&} and @code{@@address@hidden@}}
+
address@hidden address@hidden@} @r{(literal @samp{&})}
address@hidden Inserting &
address@hidden Ampersand, inserting
+
+Ordinarily, an ampersand `&' is a normal character in Texinfo that can be
+simply typed in your input where you need it.  The result is to
+typeset the ampersand character.
+
+However, the ampersand character has a special meaning in Texinfo in 
+just one restricted context.  In the argument to a definition command
+(@pxref{Definition Commands}), Emacs Lisp keywords beginning with 
+ampersands are recognized and typeset specially.  @xref{A Sample 
+Function Description,,, elisp, GNU Emacs Lisp Reference Manual}.
+For example:
+
address@hidden
+@@defun foo integer1 &optional integer2 &rest integers
+@@address@hidden@} described here.
+@@end defun
address@hidden example
+
address@hidden leads to the output
+
address@hidden foo integer1 &optional integer2 &rest integers
address@hidden described here.
address@hidden defun
+
+So, in order to typeset an ampersand in such a context (for example, in 
+documentation of a C++ function taking a reference as a parameter),
+it's necessary to use @code{@@&} or some other construct.
+Here's an example:
+
address@hidden
+@@deftypefn Function int foo (@@address@hidden std::vector<int>@@&@} bar)
+Documentation of @@address@hidden@}.
+@@end deftypefn
address@hidden example
+
address@hidden This gives the output 
+
address@hidden Function int foo (@code{const std::vector<int>@&} bar)
+Documentation of @code{foo}.
address@hidden deftypefn
+
+Although @samp{@@&} and @samp{@@address@hidden@}} can be used nearly 
+anywhere, there is no need for them anywhere except this unusual case.
+
+
 @node Inserting Quote Characters
 @section Inserting Quote Characters
 

Modified: trunk/tp/Texinfo/Common.pm
===================================================================
--- trunk/tp/Texinfo/Common.pm  2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/tp/Texinfo/Common.pm  2018-09-21 22:02:12 UTC (rev 8191)
@@ -377,6 +377,7 @@
            '@', '@',
            '}', '}',
            '{', '{',
+           '&', '&',
            '\\', '\\',  # should only appear in math
 );
 
@@ -566,6 +567,7 @@
   'minus','point','print','result','today',
   'exclamdown','questiondown','pounds','ordf','ordm',
   'atchar', 'lbracechar', 'rbracechar', 'backslashchar', 'hashchar', 'comma',
+  'ampchar',
   'euro', 'geq','leq','tie','textdegree','click',
   'quotedblleft','quotedblright','quoteleft','quoteright','quotedblbase',
   'quotesinglbase','guillemetleft','guillemetright','guillemotleft',

Modified: trunk/tp/Texinfo/Convert/Converter.pm
===================================================================
--- trunk/tp/Texinfo/Convert/Converter.pm       2018-09-21 18:34:13 UTC (rev 
8190)
+++ trunk/tp/Texinfo/Convert/Converter.pm       2018-09-21 22:02:12 UTC (rev 
8191)
@@ -1463,6 +1463,7 @@
                'ordm'         => '&ordm;',
                'comma'        => ',',
                'atchar'       => '@',
+               'ampchar'      => '&amp;',
                'lbracechar'   => '{',
                'rbracechar'   => '}',
                'backslashchar' => '\\',
@@ -1491,6 +1492,8 @@
     = $Texinfo::Common::no_brace_commands{$no_brace_command};
 }
 
+$default_xml_commands_formatting{'normal'}->{'&'} = '&amp;';
+
 sub xml_comment($$)
 {
   my $self = shift;

Modified: trunk/tp/Texinfo/Convert/HTML.pm
===================================================================
--- trunk/tp/Texinfo/Convert/HTML.pm    2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/tp/Texinfo/Convert/HTML.pm    2018-09-21 22:02:12 UTC (rev 8191)
@@ -4811,7 +4811,7 @@
               and 
!$self->_use_entity_is_entity($default_commands_formatting{$context}->{$command}))
 {
             $self->{'commands_formatting'}->{$context}->{$command}
               = Texinfo::Convert::Unicode::unicode_for_brace_no_arg_command(
-                             $command, $self->get_conf('OUTPUT_ENCODING_NAME'))
+                           $command, $self->get_conf('OUTPUT_ENCODING_NAME'));
           } else {
             $self->{'commands_formatting'}->{$context}->{$command} 
               = $default_commands_formatting{$context}->{$command};

Modified: trunk/tp/Texinfo/Convert/TexinfoXML.pm
===================================================================
--- trunk/tp/Texinfo/Convert/TexinfoXML.pm      2018-09-21 18:34:13 UTC (rev 
8190)
+++ trunk/tp/Texinfo/Convert/TexinfoXML.pm      2018-09-21 22:02:12 UTC (rev 
8191)
@@ -86,6 +86,7 @@
            '@' => 'arobase',
            '{' => 'lbrace',
            '}' => 'rbrace',
+           '&' => 'amp',
            '\\' => 'backslash',  # should only appear in math
 
            'TeX' => 'tex',
@@ -108,6 +109,7 @@
            'today'        => ['today'],
            'comma'        => 'comma',
            'atchar'       => 'atchar',
+           'ampchar'      => 'ampchar',
            'lbracechar'   => 'lbracechar',
            'rbracechar'   => 'rbracechar',
            'backslashchar' => 'backslashchar',

Modified: trunk/tp/Texinfo/Convert/Text.pm
===================================================================
--- trunk/tp/Texinfo/Convert/Text.pm    2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/tp/Texinfo/Convert/Text.pm    2018-09-21 22:02:12 UTC (rev 8191)
@@ -113,6 +113,7 @@
                'ordm'         => 'o',
                'comma'        => ',',
                'atchar'       => '@',
+               'ampchar'      => '&',
                'lbracechar'   => '{',
                'rbracechar'   => '}',
                'backslashchar' => '\\',

Modified: trunk/tp/Texinfo/Convert/Unicode.pm
===================================================================
--- trunk/tp/Texinfo/Convert/Unicode.pm 2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/tp/Texinfo/Convert/Unicode.pm 2018-09-21 22:02:12 UTC (rev 8191)
@@ -522,6 +522,7 @@
                'ordm'              => '00BA',
                'comma'             => '002C',
                'atchar'            => '0040',
+               'ampchar'           => '0026',
                'lbracechar'        => '007B',
                'rbracechar'        => '007D',
                'backslashchar'     => '005C',

Modified: trunk/tp/Texinfo/Parser.pm
===================================================================
--- trunk/tp/Texinfo/Parser.pm  2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/tp/Texinfo/Parser.pm  2018-09-21 22:02:12 UTC (rev 8191)
@@ -3533,7 +3533,7 @@
     = ($line =~ /^\@([[:alnum:]][[:alnum:]-]*)
                 |^(\{)
                 |^(\*)
-                |^\@(["'address@hidden,\.!\? \t\n\*\-\^`=:\|\/\\])
+                |^\@(["'~\@&\}\{,\.!\? \t\n\*\-\^`=:\|\/\\])
                 |^([{}@,:\t.\f])
                 |^([^{}@,:\t.\n\f]+)
                 /x);

Modified: trunk/tp/Texinfo/XS/misc.c
===================================================================
--- trunk/tp/Texinfo/XS/misc.c  2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/tp/Texinfo/XS/misc.c  2018-09-21 22:02:12 UTC (rev 8191)
@@ -590,7 +590,7 @@
         }
 
       else if (*text == '@'
-                 && text[1] && strchr ("([\"'address@hidden,.!?"
+                 && text[1] && strchr ("([\"'~@&}{,.!?"
                                        " \t\n"
                                        "*-^`=:|/\\",
                                        text[1]))

Modified: trunk/tp/t/19def.t
===================================================================
--- trunk/tp/t/19def.t  2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/tp/t/19def.t  2018-09-21 22:02:12 UTC (rev 8191)
@@ -508,7 +508,13 @@
 '@deffn truc bidule machin
 @deffnx truc chose args
 @defvar type1 var bidule
-']
+'],
+['ampchar',
+'@defop {Constructor} a b (@code{const std::vector<int>@&})
address@hidden defop
+& @& @ampchar{} @{ @} @@
+',
+{'test_formats' => ['plaintext', 'html', 'xml', 'docbook']}],
 );
 
 my @test_printindex = ();

Added: trunk/tp/t/results/def/ampchar.pl
===================================================================
--- trunk/tp/t/results/def/ampchar.pl                           (rev 0)
+++ trunk/tp/t/results/def/ampchar.pl   2018-09-21 22:02:12 UTC (rev 8191)
@@ -0,0 +1,415 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors 
+   %result_indices %result_sectioning %result_nodes %result_menus
+   %result_floats %result_converted %result_converted_errors 
+   %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'ampchar'} = {
+  'contents' => [
+    {
+      'cmdname' => 'defop',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'Constructor'
+                    }
+                  ],
+                  'extra' => {
+                    'def_role' => 'category'
+                  },
+                  'line_nr' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
+                  'parent' => {},
+                  'type' => 'bracketed_def_content'
+                },
+                {
+                  'extra' => {
+                    'def_role' => 'spaces'
+                  },
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'spaces'
+                },
+                {
+                  'extra' => {
+                    'def_role' => 'class'
+                  },
+                  'text' => 'a'
+                },
+                {
+                  'extra' => {
+                    'def_role' => 'spaces'
+                  },
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'spaces'
+                },
+                {
+                  'extra' => {
+                    'def_role' => 'name'
+                  },
+                  'text' => 'b'
+                },
+                {
+                  'extra' => {
+                    'def_role' => 'spaces'
+                  },
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'spaces'
+                },
+                {
+                  'extra' => {
+                    'def_role' => 'delimiter'
+                  },
+                  'parent' => {},
+                  'text' => '(',
+                  'type' => 'delimiter'
+                },
+                {
+                  'args' => [
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => 'const std::vector<int>'
+                        },
+                        {
+                          'cmdname' => '&',
+                          'parent' => {}
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'code',
+                  'contents' => [],
+                  'extra' => {
+                    'def_role' => 'arg'
+                  },
+                  'line_nr' => {},
+                  'parent' => {}
+                },
+                {
+                  'extra' => {
+                    'def_role' => 'delimiter'
+                  },
+                  'parent' => {},
+                  'text' => ')',
+                  'type' => 'delimiter'
+                },
+                {
+                  'extra' => {
+                    'def_role' => 'spaces'
+                  },
+                  'parent' => {},
+                  'text' => '
+',
+                  'type' => 'spaces_at_end'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'extra' => {
+            'def_command' => 'defop',
+            'def_parsed_hash' => {
+              'category' => {},
+              'class' => {},
+              'name' => {}
+            },
+            'index_entry' => {
+              'command' => {},
+              'content' => [
+                {},
+                {
+                  'text' => ' on '
+                },
+                {}
+              ],
+              'content_normalized' => [
+                {},
+                {
+                  'text' => ' on '
+                },
+                {}
+              ],
+              'in_code' => 1,
+              'index_at_command' => 'defop',
+              'index_name' => 'fn',
+              'index_type_command' => 'defop',
+              'key' => 'b on a',
+              'number' => 1
+            },
+            'original_def_cmdname' => 'defop'
+          },
+          'line_nr' => {},
+          'parent' => {},
+          'type' => 'def_line'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'defop'
+                }
+              ],
+              'extra' => {
+                'spaces_after_argument' => '
+'
+              },
+              'parent' => {},
+              'type' => 'misc_line_arg'
+            }
+          ],
+          'cmdname' => 'end',
+          'extra' => {
+            'command_argument' => 'defop',
+            'spaces_before_argument' => ' ',
+            'text_arg' => 'defop'
+          },
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 2,
+            'macro' => ''
+          },
+          'parent' => {}
+        }
+      ],
+      'extra' => {
+        'end_command' => {},
+        'spaces_before_argument' => ' '
+      },
+      'line_nr' => {},
+      'parent' => {}
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '& '
+        },
+        {
+          'cmdname' => '&',
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => ' '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'ampchar',
+          'contents' => [],
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 3,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => ' '
+        },
+        {
+          'cmdname' => '{',
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => ' '
+        },
+        {
+          'cmdname' => '}',
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => ' '
+        },
+        {
+          'cmdname' => '@',
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[5]{'parent'}
 = $result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[6]{'parent'}
 = $result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[7]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[7]{'args'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[7]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[7]{'args'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[7]{'args'}[0]{'parent'}
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[7];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[7]{'line_nr'}
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'line_nr'};
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[7]{'parent'}
 = $result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[8]{'parent'}
 = $result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[9]{'parent'}
 = $result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'category'}
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'class'}
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'name'}
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[4];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'extra'}{'index_entry'}{'command'}
 = $result_trees{'ampchar'}{'contents'}[0]{'contents'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'extra'}{'index_entry'}{'content'}[0]
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[4];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'extra'}{'index_entry'}{'content'}[2]
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'extra'}{'index_entry'}{'content_normalized'}[0]
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[4];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'extra'}{'index_entry'}{'content_normalized'}[2]
 = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'line_nr'} = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'line_nr'};
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'ampchar'}{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[0];
+$result_trees{'ampchar'}{'contents'}[0]{'extra'}{'end_command'} = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[0]{'line_nr'} = 
$result_trees{'ampchar'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'line_nr'};
+$result_trees{'ampchar'}{'contents'}[0]{'parent'} = $result_trees{'ampchar'};
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[1]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[2]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[3]{'args'}[0]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1]{'contents'}[3];
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[3]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[4]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[5]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[6]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[7]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[8]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[9]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[1]{'contents'}[10]{'parent'} = 
$result_trees{'ampchar'}{'contents'}[1];
+$result_trees{'ampchar'}{'contents'}[1]{'parent'} = $result_trees{'ampchar'};
+
+$result_texis{'ampchar'} = '@defop {Constructor} a b (@code{const 
std::vector<int>@&})
address@hidden defop
+& @& @ampchar{} @{ @} @@
+';
+
+
+$result_texts{'ampchar'} = 'Constructor on a: b (const std::vector<int>&)
+& & & { } @
+';
+
+$result_errors{'ampchar'} = [
+  {
+    'error_line' => ':1: warning: entry for index `fn\' outside of any node
+',
+    'file_name' => '',
+    'line_nr' => 1,
+    'macro' => '',
+    'text' => 'entry for index `fn\' outside of any node',
+    'type' => 'warning'
+  }
+];
+
+
+
+$result_converted{'plaintext'}->{'ampchar'} = ' -- Constructor on a: b 
(\'const std::vector<int>&\')
+   & & & { } @
+';
+
+
+$result_converted{'html'}->{'ampchar'} = '<!DOCTYPE html PUBLIC "-//W3C//DTD 
HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by texinfo, http://www.gnu.org/software/texinfo/ -->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Untitled Document</title>
+
+<meta name="description" content="Untitled Document">
+<meta name="keywords" content="Untitled Document">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.indentedblock {margin-right: 0em}
+blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style: oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nolinebreak {white-space: nowrap}
+span.roman {font-family: initial; font-weight: normal}
+span.sansserif {font-family: sans-serif; font-weight: normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en">
+<dl>
+<dt><a name="index-b-on-a"></a>Constructor on a: <strong>b</strong> 
<em>(<code>const std::vector&lt;int&gt;&amp;</code>)</em></dt>
+</dl>
+<p>&amp; &amp; &amp; { } @
+</p>
+
+
+</body>
+</html>
+';
+
+$result_converted_errors{'html'}->{'ampchar'} = [
+  {
+    'error_line' => 'warning: must specify a title with a title command or @top
+',
+    'text' => 'must specify a title with a title command or @top',
+    'type' => 'warning'
+  }
+];
+
+
+
+$result_converted{'xml'}->{'ampchar'} = '<defop spaces=" " endspaces=" 
"><definitionterm><indexterm index="fn" number="1">b on 
a</indexterm><defcategory bracketed="on">Constructor</defcategory> 
<defclass>a</defclass> <defoperation>b</defoperation> 
<defdelimiter>(</defdelimiter><defparam><code>const 
std::vector&lt;int&gt;&amp;</code></defparam><defdelimiter>)</defdelimiter></definitionterm>
+</defop>
+<para>&amp; &amp; &ampchar; &lbrace; &rbrace; &arobase;
+</para>';
+
+
+$result_converted{'docbook'}->{'ampchar'} = '<synopsis><indexterm 
role="fn"><primary>b on a</primary></indexterm><phrase 
role="category"><emphasis role="bold">Constructor</emphasis>:</phrase> 
<ooclass><classname>a</classname></ooclass> <methodname>b</methodname> 
(<replaceable>const std::vector&lt;int&gt;&amp;</replaceable>)</synopsis>
+<para>&amp; &amp; &#38; { } @
+</para>';
+
+1;

Modified: trunk/util/texinfo.dtd
===================================================================
--- trunk/util/texinfo.dtd      2018-09-21 18:34:13 UTC (rev 8190)
+++ trunk/util/texinfo.dtd      2018-09-21 22:02:12 UTC (rev 8191)
@@ -2,7 +2,7 @@
   Document Type Definition for Texinfo XML output (the '-'-xml option).
 
   Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-  2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
+  2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Free Software Foundation, Inc.
 
   Copying and distribution of this file, with or without modification,
   are permitted in any medium without royalty provided the copyright
@@ -1311,6 +1311,7 @@
 <!ENTITY rbrace     "}">
 <!ENTITY comma      ",">
 <!ENTITY atchar     "@">
+<!ENTITY ampchar    "&amp;">
 <!ENTITY lbracechar "{">
 <!ENTITY rbracechar "}">
 <!ENTITY backslashchar "\\">




reply via email to

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