From 6213c408be49685c6d9909b8ec09be5ae9680598 Mon Sep 17 00:00:00 2001 From: albert-github Date: Thu, 7 Jan 2021 18:20:17 +0100 Subject: issue #8308 Verbatim block followed by markdown header breaks verbatim block Skip block commands. --- src/markdown.cpp | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/markdown.cpp b/src/markdown.cpp index 93d143d..2bc8206 100644 --- a/src/markdown.cpp +++ b/src/markdown.cpp @@ -2399,7 +2399,41 @@ QCString Markdown::processBlocks(const QCString &s,int indent) QCString lang; blockIndent = indent; //printf("isHeaderLine(%s)=%d\n",QCString(data+i).left(size-i).data(),level); - if ((level=isHeaderline(data+i,size-i,TRUE))>0) + QCString endBlockName; + if (data[i]=='@' || data[i]=='\\') endBlockName = isBlockCommand(data+i,i,size-i); + if (!endBlockName.isEmpty()) + { + // handle previous line + if (isLinkRef(data+pi,i-pi,id,link,title)) + { + m_linkRefs.insert({id.lower().str(),LinkRef(link,title)}); + } + else + { + writeOneLineHeaderOrRuler(data+pi,i-pi); + } + m_out.addChar(data[i]); + i++; + int l = endBlockName.length(); + while (i0) { //printf("Found header at %d-%d\n",i,end); while (pi