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
|