summaryrefslogtreecommitdiffstats
path: root/src/plantuml.cpp
diff options
context:
space:
mode:
authoralbert-github <albert.tests@gmail.com>2020-02-03 17:03:12 (GMT)
committeralbert-github <albert.tests@gmail.com>2020-02-03 17:03:12 (GMT)
commit6d3d15af681da52873f643f3952b6efcba40f1a8 (patch)
tree854b1b0306a6df1de37da6e21fd6eb48655b3813 /src/plantuml.cpp
parent93245ad926ce01720eb35b9cf000992a44ac85c0 (diff)
downloadDoxygen-6d3d15af681da52873f643f3952b6efcba40f1a8.zip
Doxygen-6d3d15af681da52873f643f3952b6efcba40f1a8.tar.gz
Doxygen-6d3d15af681da52873f643f3952b6efcba40f1a8.tar.bz2
issue #7558 PlantUML: Different behavior whether LATEX_OUTPUT has a final slash or not.
The problem is that full qualified paths in `*_OUTPUT` were not handled properly they were handled as it were relative paths. In the documentation it is stated for e.g. LATEX_OUTPUT: > The LATEX_OUTPUT tag is used to specify where the LATEX docs will be put. If a relative path is entered the value of OUTPUT_DIRECTORY will be put in front of it. So in case of a non relative path the given path should be used and this path can be unrelated to `OUTPUT_DIRECTORY`, so we have to store the designated output path as well.
Diffstat (limited to 'src/plantuml.cpp')
-rw-r--r--src/plantuml.cpp44
1 files changed, 20 insertions, 24 deletions
diff --git a/src/plantuml.cpp b/src/plantuml.cpp
index fa50f2d..7d60e32 100644
--- a/src/plantuml.cpp
+++ b/src/plantuml.cpp
@@ -76,7 +76,7 @@ QCString PlantumlManager::writePlantUMLSource(const QCString &outDir,const QCStr
uint pos = qcOutDir.findRev("/");
QCString generateType(qcOutDir.right(qcOutDir.length() - (pos + 1)) );
Debug::print(Debug::Plantuml,0,"*** %s generateType: %s\n","writePlantUMLSource",qPrint(generateType));
- PlantumlManager::instance()->insert(generateType,puName,format,text);
+ PlantumlManager::instance()->insert(generateType,puName,outDir,format,text);
Debug::print(Debug::Plantuml,0,"*** %s generateType: %s\n","writePlantUMLSource",qPrint(generateType));
return baseName;
@@ -178,7 +178,7 @@ PlantumlManager::~PlantumlManager()
}
static void runPlantumlContent(const QDict< QList <QCString> > &plantumlFiles,
- const QDict< QCString > &plantumlContent,
+ const QDict< PlantumlContent > &plantumlContent,
PlantumlManager::OutputFormat format)
{
/* example : running: java -Djava.awt.headless=true
@@ -244,25 +244,21 @@ static void runPlantumlContent(const QDict< QList <QCString> > &plantumlFiles,
}
{
- QDictIterator< QCString > it( plantumlContent); // See QDictIterator
- QCString *nb;
+ QDictIterator< PlantumlContent > it( plantumlContent); // See QDictIterator
+ PlantumlContent *nb;
for (it.toFirst();(nb=it.current());++it)
{
QCString pumlArguments(pumlArgs);
msg("Generating PlantUML %s Files in %s\n",qPrint(pumlType),qPrint(it.currentKey()));
pumlArguments+="-o \"";
- pumlArguments+=Config_getString(OUTPUT_DIRECTORY);
- pumlArguments+="/";
- pumlArguments+=it.currentKey();
+ pumlArguments+=nb->outDir.data();
pumlArguments+="\" ";
pumlArguments+="-charset UTF-8 -t";
pumlArguments+=pumlType;
pumlArguments+=" ";
QCString puFileName("");
- puFileName+=Config_getString(OUTPUT_DIRECTORY);
- puFileName+="/";
- puFileName+=it.currentKey();
+ puFileName+=nb->outDir.data();
puFileName+="/";
pumlOutDir=puFileName;
puFileName+="inline_umlgraph_";
@@ -279,7 +275,7 @@ static void runPlantumlContent(const QDict< QList <QCString> > &plantumlFiles,
{
err("Could not open file %s for writing\n",puFileName.data());
}
- file.writeBlock( *nb, nb->length() );
+ file.writeBlock( nb->content, nb->content.length() );
file.close();
Debug::print(Debug::Plantuml,0,"*** %s Running Plantuml arguments:%s\n","PlantumlManager::runPlantumlContent",qPrint(pumlArguments));
@@ -358,16 +354,16 @@ static void print(const QDict< QList <QCString> > &plantumlFiles)
}
}
-static void print(const QDict<QCString> &plantumlContent)
+static void print(const QDict<PlantumlContent> &plantumlContent)
{
if (Debug::isFlagSet(Debug::Plantuml))
{
- QDictIterator< QCString > it( plantumlContent); // See QDictIterator
- QCString *nb;
+ QDictIterator< PlantumlContent > it( plantumlContent); // See QDictIterator
+ PlantumlContent *nb;
for (it.toFirst();(nb=it.current());++it)
{
Debug::print(Debug::Plantuml,0,"*** %s PlantumlContent key:%s\n","PlantumlManager::print Content",qPrint(it.currentKey()));
- Debug::print(Debug::Plantuml,0,"*** %s Content :%s\n","PlantumlManager::print",qPrint(*nb));
+ Debug::print(Debug::Plantuml,0,"*** %s Content :%s\n","PlantumlManager::print",qPrint(nb->content));
}
}
}
@@ -384,22 +380,22 @@ static void addPlantumlFiles(QDict< QList<QCString> > &plantumlFiles,
list->append(new QCString(value));
}
-static void addPlantumlContent(QDict< QCString > &plantumlContent,
- const QCString &key, const QCString &puContent)
+static void addPlantumlContent(QDict< PlantumlContent > &plantumlContent,
+ const QCString &key, const QCString &outDir, const QCString &puContent)
{
- QCString* content = plantumlContent.find(key);
+ PlantumlContent* content = plantumlContent.find(key);
if (content == 0)
{
- content = new QCString("");
+ content = new PlantumlContent("",outDir);
plantumlContent.insert(key,content);
}
- (*content)+=puContent;
+ (content->content)+=puContent;
}
void PlantumlManager::insert(const QCString &key, const QCString &value,
- OutputFormat format,const QCString &puContent)
+ const QCString &outDir,OutputFormat format,const QCString &puContent)
{
int find;
@@ -419,19 +415,19 @@ void PlantumlManager::insert(const QCString &key, const QCString &value,
case PUML_BITMAP:
addPlantumlFiles(m_pngPlantumlFiles,key,value);
print(m_pngPlantumlFiles);
- addPlantumlContent(m_pngPlantumlContent,key,puContent);
+ addPlantumlContent(m_pngPlantumlContent,key,outDir,puContent);
print(m_pngPlantumlContent);
break;
case PUML_EPS:
addPlantumlFiles(m_epsPlantumlFiles,key,value);
print(m_epsPlantumlFiles);
- addPlantumlContent(m_epsPlantumlContent,key,puContent);
+ addPlantumlContent(m_epsPlantumlContent,key,outDir,puContent);
print(m_epsPlantumlContent);
break;
case PUML_SVG:
addPlantumlFiles(m_svgPlantumlFiles,key,value);
print(m_svgPlantumlFiles);
- addPlantumlContent(m_svgPlantumlContent,key,puContent);
+ addPlantumlContent(m_svgPlantumlContent,key,outDir,puContent);
print(m_svgPlantumlContent);
break;
}