DbgHelp: Fix for Includes with Relative Paths

Eric Pouech pouech-eric at wanadoo.fr
Mon Aug 23 15:01:35 CDT 2004


which means that:
- we create a new compilation unit (for example) on 2205 => this gives 
the source directory
- we start the main compilation unit on 2206 => 
/home/dm/wine/dlls/dbghelp/elf_module.c
- in this CU, we start a new include file (on xxxx), => 
/home/dm/wine/dlls/dbghelp/../../include/winbase.h
- ...
- we close the CU on 4978
Basically, as I wrote, you don't need two different beasts: currpath and 
srcpath. They refer to the same object, but the code is wrong.

We should:
- store the current directory on first SO (or the SO ended by a '/', 
which would be better)
- on a non NULL SO, not ended by a '/' create a new compilation unit by 
concatening curr dir and the file name (or if file name is absolute, use 
the filename)
- for each SOL, get the file name by concatening the curr dir with the 
file name (this operation is the same as above).
- nuke the curr dir when getting a NULL SO

current code is wrong as it creates two compilands for each compilation 
unit (one for each non NULL SO)

A+



More information about the wine-devel mailing list