From 397ce928225448507d225bab56f51ed71ff8b431 Mon Sep 17 00:00:00 2001 From: albert-github Date: Sun, 7 Jul 2019 15:59:44 +0200 Subject: Incorrect joining documentation sections. In case we have a documentation block that is interrupted the following part is directly appended to it without an appropriate newline and results, in this case, in messages like: ``` aa.c:13: warning: Illegal command @verbatim as part of a title section aa.c:15: warning: unexpected command endverbatim bb.f:13: warning: Illegal command @verbatim as part of a title section bb.f:15: warning: unexpected command endverbatim ``` We need a solution at 2 places due to the reset of of `OutputBrief` to `OutputDoc` in `setOutput` The original problem results from the "The R Project for Statistical Computing" version 3.6.1 in the Fortran part. --- src/commentscan.l | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/commentscan.l b/src/commentscan.l index 665360c..dc676d4 100644 --- a/src/commentscan.l +++ b/src/commentscan.l @@ -827,6 +827,7 @@ static inline void setOutput(OutputContext ctx) } else { + if (!current->doc.isEmpty()) current->doc += "\n"; pOutputString = ¤t->doc; inContext = OutputDoc; // need to switch to detailed docs, see bug 631380 } @@ -3158,6 +3159,8 @@ bool parseCommentBlock(/* in */ ParserInterface *parser, parseMore = FALSE; inBody = isInbody; outputXRef.resize(0); + if (!(isBrief || isAutoBriefOn)) + if (!current->doc.isEmpty()) current->doc += "\n"; setOutput( isBrief || isAutoBriefOn ? OutputBrief : OutputDoc ); briefEndsAtDot = isAutoBriefOn; g_condCount = 0; -- cgit v0.12 From 07926ab1f7f60f63cfe25201dcf81897df12d89c Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 4 Aug 2019 11:49:11 +0200 Subject: Minor code simplifications --- src/commentscan.l | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/commentscan.l b/src/commentscan.l index 1d7297a..168de94 100644 --- a/src/commentscan.l +++ b/src/commentscan.l @@ -812,7 +812,10 @@ static inline void setOutput(OutputContext ctx) } else { - if (!current->doc.isEmpty()) current->doc += "\n"; + if (!current->doc.isEmpty()) // when appending parts add a new line + { + current->doc += "\n"; + } pOutputString = ¤t->doc; inContext = OutputDoc; // need to switch to detailed docs, see bug 631380 } @@ -3147,8 +3150,10 @@ bool parseCommentBlock(/* in */ ParserInterface *parser, parseMore = FALSE; inBody = isInbody; outputXRef.resize(0); - if (!(isBrief || isAutoBriefOn)) - if (!current->doc.isEmpty()) current->doc += "\n"; + if (!isBrief && !isAutoBriefOn && !current->doc.isEmpty()) + { // add newline separator between detailed comment blocks + current->doc += '\n'; + } setOutput( isBrief || isAutoBriefOn ? OutputBrief : OutputDoc ); briefEndsAtDot = isAutoBriefOn; g_condCount = 0; -- cgit v0.12