[Doxygen-develop] Doxygen 1.5.5 breaks partial include paths
Brought to you by:
dimitri
From: Tim N. <nie...@kb...> - 2008-02-18 15:26:04
|
Hello Doxygen devs. We have a source tree which has another project inside. Within this project tree again includes of the form <extproject/dir/file.h> relative to this projects root. With doxygen 1.5.5 this breaks, astonishingly only for a few files and not all (which probably has something to do with the caching but I can't tell). What I can tell is that the problem is related to src/util.cpp line 4472. There fdStripPath is compared to pathStripped. Our strip paths are empty so nothing actually happens to the paths. But pathStripped contains the relative path very similar to the include mentioned above. For that include it would be "extproject/dir". But fdStripPath (is the absolute path, for example something like "/home/tim/project1/extproject/dir". The comparison now obviously fails and the file is not found. To fix this I modified line 4471 to read: QCString fdStripPath = stripFromIncludePath(fd->getPath().right(path.length())); ".right(...)" has been added to take only part of the path which has the same length as the path we compare against effectively using only the relative path. This is more similar to what it used to be in 1.5.4. Also I noticed that before the upgrade we could have in the .cpp: using namespace std; void myfunc(string foo) This will complain now that it should have been void myfunc(std::string foo) which is obviously superfluous here. Is that a regression or the path to proper namespace handling? Regards from Aachen, Tim -- Tim Niemueller KBSG - Knowledge-Based Systems Group ======================================================================== AllemaniACs RoboCup Team RWTH Aachen University http://robocup.rwth-aachen.de Ahornstrasse 55 http://www.kbsg.rwth-aachen.de D-52056 Aachen |