summaryrefslogtreecommitdiffstats
path: root/src/vhdljjparser.cpp
diff options
context:
space:
mode:
authoralbert-github <albert.tests@gmail.com>2018-03-27 10:47:48 (GMT)
committeralbert-github <albert.tests@gmail.com>2018-03-27 10:47:48 (GMT)
commit1431d16ca2a8a20a72f029b48e4b178aa59009e3 (patch)
tree837b2e66c322d234c1e22d73defde7cc236306b8 /src/vhdljjparser.cpp
parent7e2fcd305c8c9377aa958a3d812cc31bc81c0e32 (diff)
downloadDoxygen-1431d16ca2a8a20a72f029b48e4b178aa59009e3.zip
Doxygen-1431d16ca2a8a20a72f029b48e4b178aa59009e3.tar.gz
Doxygen-1431d16ca2a8a20a72f029b48e4b178aa59009e3.tar.bz2
Bug 794567 - Doxygen crash when using \code{.markdown}...\endcode in VHDL source
The handling of the code command in comment is handled when entire comment is handled. Handling was incomplete only the backslash version was checked (and crashed).
Diffstat (limited to 'src/vhdljjparser.cpp')
-rw-r--r--src/vhdljjparser.cpp104
1 files changed, 0 insertions, 104 deletions
diff --git a/src/vhdljjparser.cpp b/src/vhdljjparser.cpp
index 953cd6b..deca239 100644
--- a/src/vhdljjparser.cpp
+++ b/src/vhdljjparser.cpp
@@ -80,7 +80,6 @@ static struct
int iDocLine;
} str_doc;
-static bool doxComment=FALSE; // doxygen comment ?
static QCString strComment;
static int iCodeLen;
@@ -99,59 +98,6 @@ Entry* getVhdlCompound()
return NULL;
}
-void startCodeBlock(int index)
-{
- int ll=strComment.length();
- if (!gBlock) gBlock = new Entry;
- iCodeLen=inputString.findRev(strComment.data())+ll;
- // fprintf(stderr,"\n startin code..%d %d %d\n",iCodeLen,num_chars,ll);
- gBlock->reset();
- int len=strComment.length();
- QCString name=strComment.right(len-index);//
- name=VhdlDocGen::getIndexWord(name.data(),1);
- if (!name)
- gBlock->name="misc"+ VhdlDocGen::getRecordNumber();
- else
- gBlock->name=name;
-
- gBlock->startLine=yyLineNr;
- gBlock->bodyLine=yyLineNr;
-
- strComment=strComment.left(index);
- VhdlDocGen::prepareComment(strComment);
- gBlock->brief+=strComment;
-}
-
-void makeInlineDoc(int endCode)
-{
- int len=endCode-iCodeLen;
- if (!gBlock) gBlock = new Entry;
- QCString par=inputString.mid(iCodeLen,len);
- //fprintf(stderr,"\n inline code: \n<%s>",par.data());
- gBlock->doc=par;
- gBlock->inbodyDocs=par;
- gBlock->section=Entry::VARIABLE_SEC;
- gBlock->spec=VhdlDocGen::MISCELLANEOUS;
- gBlock->fileName = yyFileName;
- gBlock->endBodyLine=yyLineNr-1;
- gBlock->lang=SrcLangExt_VHDL;
- Entry *temp=new Entry(*gBlock);
- Entry* compound=getVhdlCompound();
-
- if (compound)
- {
- compound->addSubEntry(temp);
- }
- else
- {
- temp->type="misc"; // global code like library ieee...
- VhdlParser::current_root->addSubEntry(temp);
- }
- strComment.resize(0);
- gBlock->reset();
-}// makeInlineDoc
-
-
bool isConstraintFile(const QCString &fileName,const QCString &ext)
{
return fileName.right(ext.length())==ext;
@@ -279,20 +225,6 @@ void VhdlParser::newEntry()
initEntry(current);
}
-bool checkInlineCode(QCString & doc)
-{
- int index=doc.find("\\code");
-
- if (index>0)
- {
- strComment+=doc;
- startCodeBlock(index);
- doxComment=TRUE;
- return true;
- }
- return false;
-}
-
void VhdlParser::handleFlowComment(const char* doc)
{
lineCount(doc);
@@ -310,7 +242,6 @@ void VhdlParser::handleFlowComment(const char* doc)
void VhdlParser::handleCommentBlock(const char* doc1,bool brief)
{
int position=0;
- static bool isIn;
QCString doc;
doc.append(doc1);
// fprintf(stderr,"\n %s",doc.data());
@@ -322,22 +253,6 @@ void VhdlParser::handleCommentBlock(const char* doc1,bool brief)
return;
}
- isIn=checkInlineCode(doc);
- bool isEndCode=doc.contains("\\endcode");
- // empty comment --!
- if (isEndCode)
- {
- int end=inputString.find(doc.data(),iCodeLen);
- makeInlineDoc(end);
- strComment.resize(0);
- isIn=false;
- }
- if (isIn)
- {
- isIn=false;
- return;
- }
-
VhdlDocGen::prepareComment(doc);
bool needsEntry=FALSE;
@@ -788,31 +703,12 @@ void VhdlParser::setMultCommentLine()
void VhdlParser::oneLineComment(QCString qcs)
{
- bool isEndCode=qcs.contains("\\endcode");
-
- int index = qcs.find("\\code");
- if (isEndCode)
- {
- int end = inputString.find(qcs.data(),iCodeLen);
- makeInlineDoc(end);
- }
- else if (index > 0)
- {
- // assert(false);
- strComment=qcs;
- startCodeBlock(index);
- strComment.resize(0);
- }
-
- if (!isEndCode && index==-1)
- {
int j=qcs.find("--!");
qcs=qcs.right(qcs.length()-3-j);
if (!checkMultiComment(qcs,iDocLine))
{
handleCommentBlock(qcs,TRUE);
}
- }
}