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 613616 - PREPROCESS is broken with complex code.
PREPROCESS is broken with complex code.
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: general
1.6.3
Other Linux
: Normal normal
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2010-03-22 17:52 UTC by Kirby Zhou
Modified: 2010-06-15 11:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
The demo files (53.61 KB, application/x-compressed-tar)
2010-03-22 17:52 UTC, Kirby Zhou
Details
A more simple demo (118.00 KB, application/x-gzip-compressed)
2010-03-23 13:36 UTC, Kirby Zhou
Details
remove rubbish file (2.84 KB, application/x-gzip-compressed)
2010-03-23 14:06 UTC, Kirby Zhou
Details

Description Kirby Zhou 2010-03-22 17:52:10 UTC
Created attachment 156777 [details]
The demo files

With the attached demo code.

tar xzvf demo.tgz
doxygen etc/ace.doxygen
# something bad

The "ace_wchar.h File Reference" shows only some macro definitions without the class 'ACE_Wide_To_Ascii' and class 'ACE_Ascii_To_Wide'. The 2 classes needs ACE_HAS_WCHAR to be defined, and it actually defined in 'config-doxygen.h'. The including chain is:
ace_wchar.cpp -> ace_wchar.h -> config-macros.h -> config.h -> config-doxygen.h

If I commnents out the line '#if defined ACE_HAS_WCHAR', all things become OK.

vim ace/ace_wchar.h
......
doxygen etc/ace.doxygen
# all thing ok

If I do 'rm ace/ace_wchar.cpp', all things go well too. Look sharp! I do remove the '.cpp' file, not the header file itself.

rm ace/ace_wchar.cpp
doxygen etc/ace.doxygen
# all thing ok
Comment 1 Kirby Zhou 2010-03-22 17:55:52 UTC
==============The bad result:

Defines 
#define  ACE_USES_L_PREFIX   1 
#define  ACE_TEXT_WIDE_I(STRING)   STRING 
#define  ACE_TEXT_WIDE(STRING)   ACE_TEXT_WIDE_I (STRING) 
#define  ACE_TEXT(STRING)   STRING 
#define  ACE_LIB_TEXT(STRING)   STRING 
#define  ACE_TEXT_ALWAYS_CHAR(STRING)   STRING 
#define  ACE_TEXT_ALWAYS_WCHAR(STRING)   ACE_Ascii_To_Wide (STRING).wchar_rep () 
#define  ACE_TEXT_CHAR_TO_TCHAR(STRING)   STRING 
#define  ACE_TEXT_WCHAR_TO_TCHAR(STRING)   ACE_Wide_To_Ascii (STRING).char_rep () 
#define  ACE_TEXT_ANTI_TO_TCHAR(STRING)   ACE_Wide_To_Ascii (STRING).char_rep () 
Typedefs 
typedef char  ACE_TCHAR 
typedef wchar_t  ACE_ANTI_TCHAR 


==============The good result:
Classes 
class   ACE_Wide_To_Ascii 
  A lightweight wchar* to char* string conversion class. More...
 
class   ACE_Ascii_To_Wide 
  A lightweight char* to wchar* string conversion class. More...
 
Defines 
#define  ACE_WSTRING_HAS_USHORT_SUPPORT 
#define  ACE_USES_L_PREFIX   1 
#define  ACE_TEXT_WIDE_I(STRING)   L##STRING 
#define  ACE_TEXT_WIDE(STRING)   ACE_TEXT_WIDE_I (STRING) 
#define  ACE_TEXT(STRING)   STRING 
#define  ACE_LIB_TEXT(STRING)   STRING 
#define  ACE_TEXT_ALWAYS_CHAR(STRING)   STRING 
#define  ACE_TEXT_ALWAYS_WCHAR(STRING)   ACE_Ascii_To_Wide (STRING).wchar_rep () 
#define  ACE_TEXT_CHAR_TO_TCHAR(STRING)   STRING 
#define  ACE_TEXT_WCHAR_TO_TCHAR(STRING)   ACE_Wide_To_Ascii (STRING).char_rep () 
#define  ACE_TEXT_ANTI_TO_TCHAR(STRING)   ACE_Wide_To_Ascii (STRING).char_rep () 
#define  ACE_TEXT_SERVICE_TABLE_ENTRY   SERVICE_TABLE_ENTRYA 
#define  ACE_TEXT_STARTUPINFO   STARTUPINFOA 
#define  ACE_TEXT_WIN32_FIND_DATA   WIN32_FIND_DATAA 
#define  ACE_TEXT_OSVERSIONINFO   OSVERSIONINFOA 
#define  ACE_TEXT_EXPLICIT_ACCESS   EXPLICIT_ACCESS_A 
#define  ACE_TEXT_CreateEvent   ::CreateEventA 
#define  ACE_TEXT_CreateFile   ::CreateFileA 
#define  ACE_TEXT_CreateFileMapping   ::CreateFileMappingA 
#define  ACE_TEXT_CreateMutex   ::CreateMutexA 
#define  ACE_TEXT_CreateProcess   ::CreateProcessA 
#define  ACE_TEXT_CreateSemaphore   ::CreateSemaphoreA 
#define  ACE_TEXT_CreateService   ::CreateServiceA 
#define  ACE_TEXT_ExpandEnvironmentStrings   ::ExpandEnvironmentStringsA 
#define  ACE_TEXT_FindFirstChangeNotification   ::FindFirstChangeNotificationA 
#define  ACE_TEXT_FindFirstFile   ::FindFirstFileA 
#define  ACE_TEXT_FindNextFile   ::FindNextFileA 
#define  ACE_TEXT_FormatMessage   ::FormatMessageA 
#define  ACE_TEXT_FreeEnvironmentStrings   ::FreeEnvironmentStringsA 
#define  ACE_TEXT_GetComputerName   ::GetComputerNameA 
#define  ACE_TEXT_GetEnvironmentStrings   ::GetEnvironmentStringsA 
#define  ACE_TEXT_GetFileAttributes   ::GetFileAttributesA 
#define  ACE_TEXT_GetModuleFileName   ::GetModuleFileNameA 
#define  ACE_TEXT_GetTempPath   ::GetTempPathA 
#define  ACE_TEXT_GetUserName   ::GetUserNameA 
#define  ACE_TEXT_GetUserNameEx   ::GetUserNameExA 
#define  ACE_TEXT_GetVersionEx   ::GetVersionExA 
#define  ACE_TEXT_LoadLibrary   ::LoadLibraryA 
#define  ACE_TEXT_MoveFileEx   ::MoveFileExA 
#define  ACE_TEXT_WaitNamedPipe   ::WaitNamedPipeA 
#define  ACE_TEXT_OpenFileMapping   ::OpenFileMappingA 
#define  ACE_TEXT_OpenSCManager   ::OpenSCManagerA 
#define  ACE_TEXT_OpenService   ::OpenServiceA 
#define  ACE_TEXT_OutputDebugString   ::OutputDebugStringA 
#define  ACE_TEXT_RegisterEventSource   ::RegisterEventSourceA 
#define  ACE_TEXT_RegisterServiceCtrlHandler   ::RegisterServiceCtrlHandlerA 
#define  ACE_TEXT_RegConnectRegistry   ::RegConnectRegistryA 
#define  ACE_TEXT_RegCreateKeyEx   ::RegCreateKeyExA 
#define  ACE_TEXT_RegDeleteKey   ::RegDeleteKeyA 
#define  ACE_TEXT_RegDeleteValue   ::RegDeleteValueA 
#define  ACE_TEXT_RegEnumKeyEx   ::RegEnumKeyExA 
#define  ACE_TEXT_RegEnumValue   ::RegEnumValueA 
#define  ACE_TEXT_RegCreateKey   ::RegCreateKeyA 
#define  ACE_TEXT_RegOpenKey   ::RegOpenKeyA 
#define  ACE_TEXT_RegOpenKeyEx   ::RegOpenKeyExA 
#define  ACE_TEXT_RegQueryValueEx   ::RegQueryValueExA 
#define  ACE_TEXT_RegSetValueEx   ::RegSetValueExA 
#define  ACE_TEXT_ReportEvent   ::ReportEventA 
#define  ACE_TEXT_SearchPath   ::SearchPathA 
#define  ACE_TEXT_StartService   ::StartServiceA 
#define  ACE_TEXT_StartServiceCtrlDispatcher   ::StartServiceCtrlDispatcherA 
#define  ACE_TEXT_SetFileSecurity   ::SetFileSecurityA 
#define  ACE_TEXT_SetEntriesInAcl   ::SetEntriesInAclA 
Typedefs 
typedef char  ACE_TCHAR 
typedef wchar_t  ACE_ANTI_TCHAR
Comment 2 Kirby Zhou 2010-03-23 13:36:18 UTC
Created attachment 156865 [details]
A more simple demo
Comment 3 Kirby Zhou 2010-03-23 14:06:11 UTC
Created attachment 156869 [details]
remove rubbish file
Comment 4 Dimitri van Heesch 2010-03-26 14:29:51 UTC
Should be fixed in the latest subversion snapshot already.
Comment 5 Dimitri van Heesch 2010-06-15 11:22:25 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.7.0. 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.