doxygen
                                
                                 doxygen copied to clipboard
                                
                                    doxygen copied to clipboard
                            
                            
                            
                        Manpages require excessive backslash-escaping (Origin: bugzilla #654871)
status NEW severity normal in component general for --- Reported in version 1.7.4 on platform Other Assigned to: Dimitri van Heesch
On 2011-07-18 20:48:58 +0000, Bas Wijnen wrote:
I got incorrect manpages from the code:
..., std::string const &delimiters = std::string (" \t\v\f\a\n\r\0", 8));
Which results in a manpage containing:
std::string(' \\t\\v\\f\\a\\n\\r\\0', 8))
(As an aside, the double quotes have been replaces with single quotes, which
is not correct C++)
The problem is that man appearantly evaluates this thing three times before
displaying. This means that every backslash must be thrice doubled, leading
to 8 backslashes:
' \\\\\\\\t\\\\\\\\v\\\\\\\\f\\\\\\\\a\\\\\\\\n\\\\\\\\r\\\\\\\\0'
This gives the result of a single backslash in the manpage as shown by man
and no more warnings from man.
Arguably this is a bug in man. However, given that everybody uses it with
the current syntax, I don't think it's realistic to request a parser change
for it.
Due to a missing example and used settings it is a bit hard to reproduce though with the simple example:
/// \file
/// the delimiters
std::string const &delimiters = std::string (" \t\v\f\a\n\r\0", 8));
we get (for the 1.7.4 and the current 1.9.8 doxygen version):
so even worse:
- (nearly) all informatiion is gone
- the "is replaced by'