94 lines
3.7 KiB
Diff
94 lines
3.7 KiB
Diff
diff --git a/src/commentscan.l b/src/commentscan.l
|
|
index fad09d9..f26cabd 100644
|
|
--- a/src/commentscan.l
|
|
+++ b/src/commentscan.l
|
|
@@ -125,6 +125,8 @@ static bool handleCopyBrief(const QCString &);
|
|
static bool handleCopyDetails(const QCString &);
|
|
static bool handleParBlock(const QCString &);
|
|
static bool handleEndParBlock(const QCString &);
|
|
+static bool handleParam(const QCString &);
|
|
+static bool handleRetval(const QCString &);
|
|
|
|
typedef bool (*DocCmdFunc)(const QCString &name);
|
|
|
|
@@ -247,7 +249,7 @@ static DocCmdMap docCmdMap[] =
|
|
{ "line", 0, TRUE },
|
|
{ "note", 0, TRUE },
|
|
{ "par", 0, TRUE },
|
|
- { "param", 0, TRUE },
|
|
+ { "param", &handleParam, TRUE },
|
|
{ "tparam", 0, TRUE },
|
|
{ "post", 0, TRUE },
|
|
{ "pre", 0, TRUE },
|
|
@@ -257,7 +259,7 @@ static DocCmdMap docCmdMap[] =
|
|
{ "return", 0, TRUE },
|
|
{ "returns", 0, TRUE },
|
|
{ "exception", 0, TRUE },
|
|
- { "retval", 0, TRUE },
|
|
+ { "retval", &handleRetval, TRUE },
|
|
{ "sa", 0, TRUE },
|
|
{ "see", 0, TRUE },
|
|
{ "since", 0, TRUE },
|
|
@@ -971,6 +973,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
|
|
%x XRefItemParam2
|
|
%x XRefItemParam3
|
|
%x FileDocArg1
|
|
+%x ParamArg1
|
|
%x EnumDocArg1
|
|
%x NameSpaceDocArg1
|
|
%x PackageDocArg1
|
|
@@ -1564,6 +1567,30 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
|
|
BEGIN( Comment );
|
|
}
|
|
|
|
+ /* --------- handle arguments of the param command ------------ */
|
|
+<ParamArg1>{ID}/{B}*"," {
|
|
+ if (yytext[0]=='_' && Config_getBool(MARKDOWN_SUPPORT))
|
|
+ {
|
|
+ addOutput('\\');
|
|
+ }
|
|
+ addOutput(yytext);
|
|
+ }
|
|
+<ParamArg1>"," {
|
|
+ addOutput(" , ");
|
|
+ }
|
|
+<ParamArg1>{ID} {
|
|
+ if (yytext[0]=='_' && Config_getBool(MARKDOWN_SUPPORT))
|
|
+ {
|
|
+ addOutput('\\');
|
|
+ }
|
|
+ addOutput(yytext);
|
|
+ BEGIN( Comment );
|
|
+ }
|
|
+<ParamArg1>. {
|
|
+ unput(yytext[0]);
|
|
+ BEGIN( Comment );
|
|
+ }
|
|
+
|
|
/* --------- handle arguments of the file/dir/example command ------------ */
|
|
|
|
<FileDocArg1>{DOCNL} { // no file name specfied
|
|
@@ -2400,6 +2427,22 @@ static bool handleFile(const QCString &)
|
|
return stop;
|
|
}
|
|
|
|
+static bool handleParam(const QCString &)
|
|
+{
|
|
+ // we need process param and retval arguments to escape leading underscores in case of
|
|
+ // markdown processing, see bug775493
|
|
+ addOutput("@param ");
|
|
+ BEGIN( ParamArg1 );
|
|
+ return FALSE;
|
|
+}
|
|
+
|
|
+static bool handleRetval(const QCString &)
|
|
+{
|
|
+ addOutput("@retval ");
|
|
+ BEGIN( ParamArg1 );
|
|
+ return FALSE;
|
|
+}
|
|
+
|
|
static bool handleDir(const QCString &)
|
|
{
|
|
bool stop=makeStructuralIndicator(Entry::DIRDOC_SEC);
|