Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Still trouble with line numbers running out of sync (Origin: bugzilla #690250) #4993

Closed
doxygen opened this Issue Jul 2, 2018 · 0 comments

Comments

Projects
None yet
1 participant
@doxygen
Copy link
Owner

doxygen commented Jul 2, 2018

status RESOLVED severity normal in component general for ---
Reported in version 1.7.6.1 on platform Other
Assigned to: Dimitri van Heesch

On 2012-12-15 11:42:11 +0000, DTJF wrote:

First, thank you for this great piece of software!

I found similar bug reports like

https://bugzilla.gnome.org/show_bug.cgi?id=138652

and it seems that the problem isn't fixed in version 1.7.6.1, since the following code makes Doxygen run out of line sync:

/** \brief find the end of a Quote

This snippet is used to find the end of a quoted string. It checks
if the string uses escape sequences and evaluates '\"' . It stops at
the last double quote (if Buf[Po] isn't ASC(!"\"") then the end of
the buffer is reached).

/
#define SCAN_QUOTE(Buf,Po) /
(multi line FreeBasic #MACRO)
VAR esc = IIF(Buf[Po - 1] = ASC("!"), 1, 0), p = 0
DO
Po += 1
SELECT CASE AS CONST Buf[Po]
CASE 0 : EXIT DO
CASE ASC(!"\n") : EXIT DO
CASE ASC("") : IF esc THEN Po += 1
CASE ASC("""") : IF Buf[Po + 1] = ASC("""") THEN Po += 1 ELSE EXIT DO
END SELECT
LOOP
#ENDMACRO */

/** \brief find the end of a line end comment

This snippet is used to find the end of a line end comment. It
checks for a ASC(!"\n") and evaluates line concatenations ( _ ) on
the way. It stops at the line end (if Buf[Po] isn't ASC(!"\n") then
the end of the buffer is reached).

/
#define SCAN_SL_COMM(Buf,Po) /
(multi line FreeBasic #MACRO)
DO
Po += 1
SELECT CASE AS CONST Buf[Po]
CASE 0, ASC(!"\n") : EXIT DO
END SELECT
LOOP
#ENDMACRO */

/** \brief find the end of a multi line comment

This snippet is used to find the end of a multi line comment block.
It stops at the characters ' and / (if Buf[Po] isn't ASC("/") then the
end of the buffer is reached).

/
#define SCAN_ML_COMM() /
(multi line FreeBasic #MACRO)
Po += 2
DO
SELECT CASE AS CONST Buf[Po]
CASE 0 : EXIT DO
CASE ASC(!"\n") : InLines += 1
CASE ASC("'")
SELECT CASE AS CONST Buf[Po + 1]
CASE 0 : EXIT DO
CASE ASC("/") : Po += 1 : EXIT DO
END SELECT
END SELECT : Po += 1
LOOP
#ENDMACRO */

/** \brief find the end of a word

This snippet is used to find the end of a word in the input buffer.
Po is at the first non-word character when done.

/
#define SCAN_WORD() /
(multi line FreeBasic #MACRO)
*A = Po
Po += 1
DO
SELECT CASE AS CONST Buf[Po]
CASE ASC("0") TO ASC("9"), _
ASC("A") TO ASC("Z"), _
ASC("a") TO ASC("z"), ASC("_") : Po += 1
CASE ELSE : EXIT DO
END SELECT
LOOP
#ENDMACRO */

...

On 2012-12-17 10:27:34 +0000, Dimitri van Heesch wrote:

Confirmed. Should be fixed in the next subversion update.

On 2012-12-26 16:09:25 +0000, Dimitri van Heesch wrote:

This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.8.3. Please verify if this is indeed the case. Reopen the
bug if you think it is not fixed and please include any additional information
that you think can be relevant.

@doxygen doxygen closed this Jul 2, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.