diff options
author | albert-github <albert.tests@gmail.com> | 2020-01-04 12:24:16 (GMT) |
---|---|---|
committer | albert-github <albert.tests@gmail.com> | 2020-01-04 12:24:16 (GMT) |
commit | 2f79c6938c6d969f3d4ebc9ed0f2648668434502 (patch) | |
tree | 378f05d9fdbcf8484d4bd78833e5fb7318759306 /src | |
parent | 0e874a5229554347254d5b346149e8540ba0f686 (diff) | |
download | Doxygen-2f79c6938c6d969f3d4ebc9ed0f2648668434502.zip Doxygen-2f79c6938c6d969f3d4ebc9ed0f2648668434502.tar.gz Doxygen-2f79c6938c6d969f3d4ebc9ed0f2648668434502.tar.bz2 |
issue #7477 Broken urls in the xml output
Made code analogous to HTML code.
Also the doxygen internal tests suffered from this problem.
Diffstat (limited to 'src')
-rw-r--r-- | src/xmldocvisitor.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp index 409c2fe..1e6becb 100644 --- a/src/xmldocvisitor.cpp +++ b/src/xmldocvisitor.cpp @@ -824,18 +824,22 @@ void XmlDocVisitor::visitPre(DocImage *img) { if (m_hide) return; - QCString baseName=img->name(); - int i; - if ((i=baseName.findRev('/'))!=-1 || (i=baseName.findRev('\\'))!=-1) + QCString url = img->url(); + QCString baseName; + if (url.isEmpty()) { - baseName=baseName.right(baseName.length()-i-1); + baseName = img->relPath()+img->name(); + } + else + { + baseName = correctURL(url,img->relPath()); } visitPreStart(m_t, "image", FALSE, this, img->children(), baseName, TRUE, img->type(), img->width(), img->height(), img ->isInlineImage()); // copy the image to the output dir FileDef *fd; bool ambig; - if ((fd=findFileDef(Doxygen::imageNameDict,img->name(),ambig))) + if (url.isEmpty() && (fd=findFileDef(Doxygen::imageNameDict,img->name(),ambig))) { QFile inImage(fd->absFilePath()); QFile outImage(Config_getString(XML_OUTPUT)+"/"+baseName.data()); |