Hello, I have seen in the mailing list archives that there has been discussion of allowing characters like colons in node names and indices over the years. It would be useful for languages like C++ or anywhere else.
The idea that was floated was to have some kind of quoting in Info format. See, e.g. http://lists.gnu.org/archive/html/bug-texinfo/2001-04/msg00026.html. http://lists.gnu.org/archive/html/help-texinfo/2001-04/msg00002.html Unfortunately, it's never been done. This is useful and necessary functionality, and does seem implementable, so I thought I would try to lay out in a bit more detail what would be required so we can discuss whether this would work or not. There are two contexts where quoting would be required: * In node information lines (the top line of a node starting with "File:".) * In node specifications (in cross-references and menu items (including index entries)) Node information lines: Fields: * File - no quoting required (we don't really need special characters in file names) * Node - Currently of the form "Node: <nodename>,". This would be changed to "Node: <q1><nodename><q2>," where <q?> are sequences of bytes to be specified. * Next, Prev, Up - Currently either "Next: <nodename>" or "Next: (<filename>)<nodename>". Since it could be useful to have a bracket ("(" or ")") in a node name, the file name should be specified if at all separately. If quoting is used, then the field would look like either "Next: <q3><nodename><q4>," or "Next: <q5><filename><q6>nodename<q7>,". Node specifications: Use the same method as Next etc. in node lines. E.g. "*see <label>:<nodename>," would become "*see <label>:<q3><nodename><q4>" if <nodename> contained forbidden characters. Choice of quoting sequences: Here is a proposal: q1 = ^@^H{ q2 = ^@^H} q3 = ^@^H( q4 = ^@^H) q5 = ^@^H( q6 = ^@^H)^@^H{ q7 = ^@^} This mimics the ^@^H[ and ^@^H] already used for image tags while remaining separate. The "{" and "[" brackets would always be balanced. Implementation: These quoting characters can be stripped out by an Info reader when a node is read and the strings they quote recorded. Backwards compatibility: These would not work in old browsers, but references like these don't work any way. Implement support for this format extension in the readers, and after some time turn it on in the generators (makeinfo) once the updated readers have spread. Testing would be required to check that the format extension didn't break old readers too badly. Gavin