summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2019-10-09 16:54:50 (GMT)
committerGitHub <noreply@github.com>2019-10-09 16:54:50 (GMT)
commite27b808200d69d31eb18acf2ac1d949ddee2fc74 (patch)
tree30ada6e8b0dac656322218756ea5f1b41c214830
parentd2b8ae16cb99621827f5dd860222c27e629f5a7f (diff)
parentf23e59f2543f592bcbc2358c1d51825ab71f88bd (diff)
downloadDoxygen-e27b808200d69d31eb18acf2ac1d949ddee2fc74.zip
Doxygen-e27b808200d69d31eb18acf2ac1d949ddee2fc74.tar.gz
Doxygen-e27b808200d69d31eb18acf2ac1d949ddee2fc74.tar.bz2
Merge pull request #7305 from albert-github/feature/bug_ps
Problem with round brackets in PS output
-rw-r--r--src/diagram.cpp6
-rw-r--r--src/util.cpp20
-rw-r--r--src/util.h2
3 files changed, 25 insertions, 3 deletions
diff --git a/src/diagram.cpp b/src/diagram.cpp
index 08b49ca..2dadc12 100644
--- a/src/diagram.cpp
+++ b/src/diagram.cpp
@@ -247,7 +247,7 @@ static void writeVectorBox(FTextStream &t,DiagramItem *di,
float x,float y,bool children=FALSE)
{
if (di->virtualness()==Virtual) t << "dashed\n";
- t << " (" << di->label() << ") " << x << " " << y << " box\n";
+ t << " (" << convertToPSString(di->label()) << ") " << x << " " << y << " box\n";
if (children) t << x << " " << y << " mark\n";
if (di->virtualness()==Virtual) t << "solid\n";
}
@@ -1297,7 +1297,7 @@ void ClassDiagram::writeFigure(FTextStream &output,const char *path,
for (;(di=rit.current());++rit)
{
done=di->isInList();
- t << "(" << di->label() << ") cw\n";
+ t << "(" << convertToPSString(di->label()) << ") cw\n";
}
}
QListIterator<DiagramRow> sit(*super);
@@ -1310,7 +1310,7 @@ void ClassDiagram::writeFigure(FTextStream &output,const char *path,
for (;(di=rit.current());++rit)
{
done=di->isInList();
- t << "(" << di->label() << ") cw\n";
+ t << "(" << convertToPSString(di->label()) << ") cw\n";
}
}
diff --git a/src/util.cpp b/src/util.cpp
index 85536ca..e1e9fb5 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -6183,6 +6183,26 @@ QCString convertToJSString(const char *s, bool applyTextDir)
return convertCharEntitiesToUTF8(growBuf.get());
}
+QCString convertToPSString(const char *s)
+{
+ static GrowBuf growBuf;
+ growBuf.clear();
+ if (s==0) return "";
+ const char *p=s;
+ char c;
+ while ((c=*p++))
+ {
+ switch (c)
+ {
+ case '(': growBuf.addStr("\\("); break;
+ case ')': growBuf.addStr("\\)"); break;
+ default: growBuf.addChar(c); break;
+ }
+ }
+ growBuf.addChar(0);
+ return growBuf.get();
+}
+
QCString convertToLaTeX(const QCString &s,bool insideTabbing,bool keepSpaces)
{
QGString result;
diff --git a/src/util.h b/src/util.h
index 4e6f622..cb2b957 100644
--- a/src/util.h
+++ b/src/util.h
@@ -291,6 +291,8 @@ QCString convertToDocBook(const char *s);
QCString convertToJSString(const char *s, bool applyTextDir = true);
+QCString convertToPSString(const char *s);
+
QCString getOverloadDocs();
void addMembersToMemberGroup(/* in,out */ MemberList *ml,