summaryrefslogtreecommitdiffstats
path: root/src/pycode.l
diff options
context:
space:
mode:
authoralbert-github <albert.tests@gmail.com>2016-09-02 13:01:11 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2016-09-03 09:04:38 (GMT)
commit9ae1af9b8679a0f14cb568d1db3afcc6e3ba40a6 (patch)
treecd636c234fbe837dddfabbb0230aa016e01d6572 /src/pycode.l
parent445347566078a1cc64705f28932e1da5bf9f531f (diff)
downloadDoxygen-9ae1af9b8679a0f14cb568d1db3afcc6e3ba40a6.zip
Doxygen-9ae1af9b8679a0f14cb568d1db3afcc6e3ba40a6.tar.gz
Doxygen-9ae1af9b8679a0f14cb568d1db3afcc6e3ba40a6.tar.bz2
Bug 770660 - Code snippet always shows line numbers from 1
This patch makes the handling of the \snippet and other commands consistent between the different languages (no line numbers anymore with python) and also introduces analogous to \includelineno the command \snippetlineno. Some non relevant changes: - *code.l Calculation of the end line was incorrect, in case of a snippet the end line was the number of lines of the snippet and not reltive to the start line. - *code.l made consistent over the different laguages, enabling exBlock and inlineFragment - testing/indexpage.xml in test 14 the \snippet command was used with python and giving line numbers, linenumbers are now gone (consistency)
Diffstat (limited to 'src/pycode.l')
-rw-r--r--src/pycode.l17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/pycode.l b/src/pycode.l
index 3935107..a31a0ed 100644
--- a/src/pycode.l
+++ b/src/pycode.l
@@ -1534,8 +1534,8 @@ static void adjustScopesAndSuites(unsigned indentLength)
void parsePythonCode(CodeOutputInterface &od,const char * /*className*/,
const QCString &s,bool exBlock, const char *exName,
- FileDef *fd,int startLine,int endLine,bool /*inlineFragment*/,
- MemberDef *,bool,Definition *searchCtx,bool collectXRefs)
+ FileDef *fd,int startLine,int endLine,bool inlineFragment,
+ MemberDef *,bool,Definition *searchCtx,bool collectXRefs)
{
//printf("***parseCode()\n");
@@ -1551,22 +1551,22 @@ void parsePythonCode(CodeOutputInterface &od,const char * /*className*/,
g_needsTermination = FALSE;
g_searchCtx=searchCtx;
g_collectXRefs=collectXRefs;
- if (endLine!=-1)
- g_inputLines = endLine+1;
- else
- g_inputLines = countLines();
-
if (startLine!=-1)
g_yyLineNr = startLine;
else
g_yyLineNr = 1;
+ if (endLine!=-1)
+ g_inputLines = endLine+1;
+ else
+ g_inputLines = g_yyLineNr + countLines() - 1;
+
g_exampleBlock = exBlock;
g_exampleName = exName;
g_sourceFileDef = fd;
bool cleanupSourceDef = FALSE;
- if (fd==0)
+ if (exBlock && fd==0)
{
// create a dummy filedef for the example
g_sourceFileDef = new FileDef("",(exName?exName:"generated"));
@@ -1577,6 +1577,7 @@ void parsePythonCode(CodeOutputInterface &od,const char * /*className*/,
setCurrentDoc("l00001");
}
+ g_includeCodeFragment = inlineFragment;
// Starts line 1 on the output
startCodeLine();