After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 690250 - Still trouble with line numbers running out of sync
Still trouble with line numbers running out of sync
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: general
1.7.6.1
Other Linux
: Normal normal
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2012-12-15 11:42 UTC by DTJF
Modified: 2012-12-26 16:09 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description DTJF 2012-12-15 11:42:11 UTC
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 */ 

...
Comment 1 Dimitri van Heesch 2012-12-17 10:27:34 UTC
Confirmed. Should be fixed in the next subversion update.
Comment 2 Dimitri van Heesch 2012-12-26 16:09:25 UTC
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.