Skip to content

Commit ca77a2a

Browse files
committed
Handling of line numbers with e.g. \example command
Until now only in `code.l` and `lexcode.l` the disabling or enabling of the line numbers was implemented (could be seen when using the `\example` command) resulting in that for the non mentioned parsers the line numbers were shown.
1 parent b030c24 commit ca77a2a

File tree

5 files changed

+15
-5
lines changed

5 files changed

+15
-5
lines changed

src/fortrancode.l

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ struct fortrancodeYY_state
158158

159159
std::unique_ptr<FileDef> exampleFileDef;
160160
const FileDef * sourceFileDef = nullptr;
161+
bool lineNumbers = FALSE;
161162
const Definition * currentDefinition = nullptr;
162163
const MemberDef * currentMemberDef = nullptr;
163164
bool includeCodeFragment = false;
@@ -953,7 +954,7 @@ static void codeFolding(yyscan_t yyscanner,const Definition *d)
953954
static void startCodeLine(yyscan_t yyscanner)
954955
{
955956
struct yyguts_t *yyg = (struct yyguts_t*)yyscanner;
956-
if (yyextra->sourceFileDef)
957+
if (yyextra->sourceFileDef && yyextra->lineNumbers)
957958
{
958959
//QCString lineNumber,lineAnchor;
959960
//lineNumber.sprintf("%05d",yyextra->yyLineNr);
@@ -1509,6 +1510,7 @@ void FortranCodeParser::parseCode(OutputCodeList & codeOutIntf,
15091510
yyextra->exampleBlock = options.isExample();
15101511
yyextra->exampleName = options.exampleName();
15111512
yyextra->sourceFileDef = options.fileDef();
1513+
yyextra->lineNumbers = options.fileDef() && options.showLineNumbers();
15121514
yyextra->foldStack.clear();
15131515
yyextra->insideSpecialComment = false;
15141516
if (options.isExample() && options.fileDef()==nullptr)

src/pycode.l

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ struct pycodeYY_state
8585
int yyLineNr = 0; //!< current line number
8686
std::unique_ptr<FileDef> exampleFileDef;
8787
const FileDef * sourceFileDef = nullptr;
88+
bool lineNumbers = false;
8889
const Definition * currentDefinition = nullptr;
8990
const MemberDef * currentMemberDef = nullptr;
9091
bool includeCodeFragment = FALSE;
@@ -949,7 +950,7 @@ static void startCodeLine(yyscan_t yyscanner)
949950
{
950951
struct yyguts_t *yyg = (struct yyguts_t*)yyscanner;
951952
//if (yyextra->currentFontClass) { yyextra->code->endFontClass(yyscanner); }
952-
if (yyextra->sourceFileDef)
953+
if (yyextra->sourceFileDef && yyextra->lineNumbers)
953954
{
954955
//QCString lineNumber,lineAnchor;
955956
//lineNumber.sprintf("%05d",yyextra->yyLineNr);
@@ -1551,6 +1552,7 @@ void PythonCodeParser::parseCode(OutputCodeList &codeOutIntf,
15511552
yyextra->exampleBlock = options.isExample();
15521553
yyextra->exampleName = options.exampleName();
15531554
yyextra->sourceFileDef = options.fileDef();
1555+
yyextra->lineNumbers = options.fileDef() && options.showLineNumbers();
15541556
yyextra->symbolResolver.setFileScope(options.fileDef());
15551557
yyextra->foldStack.clear();
15561558
yyextra->insideSpecialComment = false;

src/sqlcode.l

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ struct sqlcodeYY_state
6767

6868
std::unique_ptr<FileDef> exampleFileDef;
6969
const FileDef *sourceFileDef = nullptr;
70+
bool lineNumbers = FALSE;
7071
const Definition *currentDefinition = nullptr;
7172
const MemberDef *currentMemberDef = nullptr;
7273
bool includeCodeFragment = false;
@@ -230,7 +231,7 @@ static void setCurrentDoc(yyscan_t yyscanner,const QCString &anchor)
230231
static void startCodeLine(yyscan_t yyscanner)
231232
{
232233
struct yyguts_t *yyg = (struct yyguts_t*)yyscanner;
233-
if (yyextra->sourceFileDef)
234+
if (yyextra->sourceFileDef && yyextra->lineNumbers)
234235
{
235236
const Definition *d = yyextra->sourceFileDef->getSourceDefinition(yyextra->yyLineNr);
236237
@@ -432,6 +433,7 @@ void SQLCodeParser::parseCode(OutputCodeList &codeOutIntf,
432433
yyextra->exampleBlock = options.isExample();
433434
yyextra->exampleName = options.exampleName();
434435
yyextra->sourceFileDef = options.fileDef();
436+
yyextra->lineNumbers = options.fileDef() && options.showLineNumbers();
435437
436438
if (options.isExample() && options.fileDef()==0)
437439
{

src/vhdlcode.l

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ struct vhdlcodeYY_state
104104

105105
std::unique_ptr<FileDef> exampleFileDef;
106106
const FileDef * sourceFileDef = nullptr;
107+
bool lineNumbers = FALSE;
107108
const Definition * currentDefinition = nullptr;
108109
const MemberDef * currentMemberDef = nullptr;
109110
bool includeCodeFragment = false;
@@ -1051,7 +1052,7 @@ static void startCodeLine(yyscan_t yyscanner)
10511052
{
10521053
struct yyguts_t *yyg = (struct yyguts_t*)yyscanner;
10531054
//if (yyextra->currentFontClass) { yyextra->code->endFontClass(); }
1054-
if (yyextra->sourceFileDef)
1055+
if (yyextra->sourceFileDef && yyextra->lineNumbers)
10551056
{
10561057
//QCString lineNumber,lineAnchor;
10571058
//lineNumber.sprintf("%05d",yyextra->yyLineNr);
@@ -1684,6 +1685,7 @@ void VHDLCodeParser::parseCode(OutputCodeList &od,
16841685
yyextra->exampleBlock = options.isExample();
16851686
yyextra->exampleName = options.exampleName();
16861687
yyextra->sourceFileDef = options.fileDef();
1688+
yyextra->lineNumbers = options.fileDef() && options.showLineNumbers();
16871689
if (options.isExample() && options.fileDef()==nullptr)
16881690
{
16891691
// create a dummy filedef for the example

src/xmlcode.l

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ struct xmlcodeYY_state
8282

8383
std::unique_ptr<FileDef> exampleFileDef;
8484
const FileDef * sourceFileDef = nullptr;
85+
bool lineNumbers = FALSE;
8586
const Definition * currentDefinition = nullptr;
8687
const MemberDef * currentMemberDef = nullptr;
8788
bool includeCodeFragment = false;
@@ -252,7 +253,7 @@ static void setCurrentDoc(yyscan_t yyscanner,const QCString &anchor)
252253
static void startCodeLine(yyscan_t yyscanner)
253254
{
254255
struct yyguts_t *yyg = (struct yyguts_t*)yyscanner;
255-
if (yyextra->sourceFileDef)
256+
if (yyextra->sourceFileDef && yyextra->lineNumbers)
256257
{
257258
const Definition *d = yyextra->sourceFileDef->getSourceDefinition(yyextra->yyLineNr);
258259
@@ -439,6 +440,7 @@ void XMLCodeParser::parseCode(OutputCodeList &codeOutIntf,
439440
yyextra->exampleBlock = options.isExample();
440441
yyextra->exampleName = options.exampleName();
441442
yyextra->sourceFileDef = options.fileDef();
443+
yyextra->lineNumbers = options.fileDef() && options.showLineNumbers();
442444
443445
if (options.isExample() && options.fileDef()==nullptr)
444446
{

0 commit comments

Comments
 (0)