From 61dbc4b50ca568dcf087e93cc466ad8e89f9294c Mon Sep 17 00:00:00 2001 From: John McFarland Date: Sat, 2 May 2020 18:34:50 -0500 Subject: [PATCH] Fix for missing space after \endlink in doxygen The "endlink" command is processed in processWordCommands, which by default skips space occuring after the command, which is intended for removing leading space from a command argument. For "end" commands, we don't want to do this. Note that certain end commands such as "endcode" aren't processed by processWordCommands (believe addCommandUnique ends up handling them). Update usage of \link in doxygen_translate_all_tags.i to test handling of space after \endlink. Tweaking some of the usage in doxygen_misc_constructs.i to remove what seems to be an extra space from the input (otherwise we would need to add an extra space to the expected output). --- Examples/test-suite/doxygen_misc_constructs.i | 4 ++-- Examples/test-suite/doxygen_translate_all_tags.i | 2 +- .../test-suite/java/doxygen_translate_all_tags_runme.java | 2 +- .../test-suite/python/doxygen_translate_all_tags_runme.py | 2 +- Source/Doxygen/doxyparser.cxx | 4 ++++ 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Examples/test-suite/doxygen_misc_constructs.i b/Examples/test-suite/doxygen_misc_constructs.i index c1b3eea31..9cf95de39 100644 --- a/Examples/test-suite/doxygen_misc_constructs.i +++ b/Examples/test-suite/doxygen_misc_constructs.i @@ -36,7 +36,7 @@ * @param line line number * @param isGetSize if set, for every object location both address and size are returned * - * @link Connection::getId() @endlink
+ * @link Connection::getId() @endlink
*/ void getAddress(int &fileName, int line, @@ -62,7 +62,7 @@ * used for unspecified parameters. *

* - * @link advancedWinIDEALaunching.py Python example.@endlink
+ * @link advancedWinIDEALaunching.py Python example.@endlink
*/ class CConnectionConfig { diff --git a/Examples/test-suite/doxygen_translate_all_tags.i b/Examples/test-suite/doxygen_translate_all_tags.i index 6cefd8d4e..b54203d0a 100644 --- a/Examples/test-suite/doxygen_translate_all_tags.i +++ b/Examples/test-suite/doxygen_translate_all_tags.i @@ -210,7 +210,7 @@ void func05(int a) * * \line example * - * \link someMember Some description follows \endlink + * \link someMember Some description follows\endlink with text after * * \mainpage Some title * diff --git a/Examples/test-suite/java/doxygen_translate_all_tags_runme.java b/Examples/test-suite/java/doxygen_translate_all_tags_runme.java index fda1fc3f8..56272bf84 100644 --- a/Examples/test-suite/java/doxygen_translate_all_tags_runme.java +++ b/Examples/test-suite/java/doxygen_translate_all_tags_runme.java @@ -93,7 +93,7 @@ public class doxygen_translate_all_tags_runme { "

  • With lots of items \n" + "
  • lots of lots of items \n" + "
  • \n" + - " {@link someMember Some description follows }\n" + + " {@link someMember Some description follows} with text after\n" + " This will only appear in man\n"); wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func07(int, int, int, int)", diff --git a/Examples/test-suite/python/doxygen_translate_all_tags_runme.py b/Examples/test-suite/python/doxygen_translate_all_tags_runme.py index 2b5b3b810..e884cf9ef 100644 --- a/Examples/test-suite/python/doxygen_translate_all_tags_runme.py +++ b/Examples/test-suite/python/doxygen_translate_all_tags_runme.py @@ -175,7 +175,7 @@ This will only appear in LATeX -someMember Some description follows +someMember Some description follows with text after diff --git a/Source/Doxygen/doxyparser.cxx b/Source/Doxygen/doxyparser.cxx index 6bda9d27c..35d18363f 100644 --- a/Source/Doxygen/doxyparser.cxx +++ b/Source/Doxygen/doxyparser.cxx @@ -1196,6 +1196,10 @@ void DoxygenParser::processWordCommands(size_t &pos, const std::string &line) { // do it every time.) if (getBaseCommand(cmd) == CMD_CODE) skipLeadingSpace = true; else skipLeadingSpace = false; + } else if (cmd.substr(0,3) == "end") { + // If processing an "end" command such as "endlink", don't skip + // the space before the next string + skipLeadingSpace = false; } if (skipLeadingSpace) {