Skip to content

Commit e7d5417

Browse files
committed
Merge branch 'albert-github-feature/issue_11647'
2 parents 461c838 + 947d511 commit e7d5417

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

src/searchindex_js.cpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ static void writeJavascriptSearchData(const QCString &searchDirName)
558558
if (!sii.symbolMap.empty())
559559
{
560560
if (j>0) t << ",\n";
561-
t << " " << j << ": \"" << sii.name << "\"";
561+
t << " " << j << ": \"" << convertToJSString(sii.name,true,false) << "\"";
562562
j++;
563563
}
564564
}
@@ -572,7 +572,7 @@ static void writeJavascriptSearchData(const QCString &searchDirName)
572572
if (!sii.symbolMap.empty())
573573
{
574574
if (j>0) t << ",\n";
575-
t << " " << j << ": \"" << convertToXML(sii.getText()) << "\"";
575+
t << " " << j << ": \"" << convertToJSString(convertToXML(sii.getText()),true,false) << "\"";
576576
j++;
577577
}
578578
}
@@ -653,11 +653,11 @@ static void writeJavasScriptSearchDataPage(const QCString &baseName,const QCStri
653653
ti << " ['" << id << "_" << cnt++ << "',['";
654654
if (next==SearchTerm::LinkInfo() || it->word!=word) // unique result, show title
655655
{
656-
ti << convertToXML(term.title);
656+
ti << convertToJSString(convertToXML(term.title),true,true);
657657
}
658658
else // multiple results, show matching word only, expanded list will show title
659659
{
660-
ti << convertToXML(term.word);
660+
ti << convertToJSString(convertToXML(term.word),true,true);
661661
}
662662
ti << "',[";
663663
childCount=0;
@@ -671,12 +671,12 @@ static void writeJavasScriptSearchDataPage(const QCString &baseName,const QCStri
671671
QCString fn = d ? d->getOutputFileBase() : si ? si->fileName() : QCString();
672672
QCString ref = d ? d->getReference() : si ? si->ref() : QCString();
673673
addHtmlExtensionIfMissing(fn);
674-
ti << "'" << externalRef("../",ref,TRUE) << fn;
674+
QCString extRef = externalRef("../",ref,true)+fn;
675675
if (!anchor.isEmpty())
676676
{
677-
ti << "#" << anchor;
677+
extRef+="#"+anchor;
678678
}
679-
ti << "',";
679+
ti << "'" << convertToJSString(extRef,true,true) << "',";
680680

681681
bool extLinksInWindow = Config_getBool(EXT_LINKS_IN_WINDOW);
682682
if (!extLinksInWindow || ref.isEmpty())
@@ -692,15 +692,15 @@ static void writeJavasScriptSearchDataPage(const QCString &baseName,const QCStri
692692
{
693693
if (d && d->getOuterScope()!=Doxygen::globalScope)
694694
{
695-
ti << "'" << convertToXML(d->getOuterScope()->name()) << "'";
695+
ti << "'" << convertToJSString(convertToXML(d->getOuterScope()->name()),true,true) << "'";
696696
}
697697
else if (md)
698698
{
699699
const FileDef *fd = md->getBodyDef();
700700
if (fd==nullptr) fd = md->getFileDef();
701701
if (fd)
702702
{
703-
ti << "'" << convertToXML(fd->localName()) << "'";
703+
ti << "'" << convertToJSString(convertToXML(fd->localName()),true,true) << "'";
704704
}
705705
}
706706
else
@@ -753,7 +753,8 @@ static void writeJavasScriptSearchDataPage(const QCString &baseName,const QCStri
753753
// member in class or namespace scope
754754
{
755755
SrcLangExt lang = md->getLanguage();
756-
name = convertToXML(d->getOuterScope()->qualifiedName()) + getLanguageSpecificSeparator(lang) + prefix;
756+
QCString sep = getLanguageSpecificSeparator(lang);
757+
name = convertToXML(d->getOuterScope()->qualifiedName()) + sep + prefix;
757758
found = true;
758759
}
759760
else if (scope) // some thing else? -> show scope
@@ -775,7 +776,7 @@ static void writeJavasScriptSearchDataPage(const QCString &baseName,const QCStri
775776
name = prefix + "("+theTranslator->trGlobalNamespace()+")";
776777
}
777778

778-
ti << "'" << name << "'";
779+
ti << "'" << convertToJSString(name,true,true) << "'";
779780

780781
prevScope = scope;
781782
childCount++;

src/util.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4534,7 +4534,7 @@ QCString convertToHtml(const QCString &s,bool keepEntities)
45344534
return growBuf.get();
45354535
}
45364536

4537-
QCString convertToJSString(const QCString &s,bool keepEntities)
4537+
QCString convertToJSString(const QCString &s,bool keepEntities,bool singleQuotes)
45384538
{
45394539
if (s.isEmpty()) return s;
45404540
GrowBuf growBuf;
@@ -4544,8 +4544,11 @@ QCString convertToJSString(const QCString &s,bool keepEntities)
45444544
{
45454545
switch (c)
45464546
{
4547-
case '"': growBuf.addStr("\\\""); break;
4548-
case '\\': if (*p=='u' && *(p+1)=='{') growBuf.addStr("\\");
4547+
case '"': if (!singleQuotes) growBuf.addStr("\\\""); else growBuf.addChar(c);
4548+
break;
4549+
case '\'': if (singleQuotes) growBuf.addStr("\\\'"); else growBuf.addChar(c);
4550+
break;
4551+
case '\\': if (*p=='u' && *(p+1)=='{') growBuf.addStr("\\"); // keep \u{..} unicode escapes
45494552
else growBuf.addStr("\\\\");
45504553
break;
45514554
default: growBuf.addChar(c); break;

src/util.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ QCString convertToHtml(const QCString &s,bool keepEntities=true);
277277

278278
QCString convertToXML(const QCString &s, bool keepEntities=false);
279279

280-
QCString convertToJSString(const QCString &s,bool keepEntities=false);
280+
QCString convertToJSString(const QCString &s,bool keepEntities=false,bool singleQuotes=false);
281281

282282
QCString getOverloadDocs();
283283

0 commit comments

Comments
 (0)