commit 9f3367e665f5a4048944401aef45d0e1e6d36260
Author: Richard Heck <[email protected]>
Date: Mon Feb 9 17:24:13 2015 -0500
Fix bug #9383. Writing directly to the output stream bypassed the
machinery that clears the tag stack.
(cherry picked from commit 5a78a112b6ac14a9cdb0fd5dc0c06aa89578eff5)
diff --git a/src/insets/InsetQuotes.cpp b/src/insets/InsetQuotes.cpp
index 70911fd..3ff490e 100644
--- a/src/insets/InsetQuotes.cpp
+++ b/src/insets/InsetQuotes.cpp
@@ -307,26 +307,30 @@ int InsetQuotes::plaintext(odocstringstream & os,
}
-int InsetQuotes::docbook(odocstream & os, OutputParams const &) const
-{
+docstring InsetQuotes::getQuoteEntity() const {
if (times_ == DoubleQuotes) {
if (side_ == LeftQuote)
- os << "“";
- else
- os << "”";
- } else {
- if (side_ == LeftQuote)
- os << "‘";
+ return from_ascii("“");
else
- os << "’";
+ return from_ascii("”");
}
+ if (side_ == LeftQuote)
+ return from_ascii("‘");
+ else
+ return from_ascii("’");
+}
+
+
+int InsetQuotes::docbook(odocstream & os, OutputParams const &) const
+{
+ os << getQuoteEntity();
return 0;
}
docstring InsetQuotes::xhtml(XHTMLStream & xs, OutputParams const & op) const
{
- docbook(xs.os(), op);
+ xs << XHTMLStream::ESCAPE_NONE << getQuoteEntity();
return docstring();
}
diff --git a/src/insets/InsetQuotes.h b/src/insets/InsetQuotes.h
index 743208f..068137e 100644
--- a/src/insets/InsetQuotes.h
+++ b/src/insets/InsetQuotes.h
@@ -109,6 +109,8 @@ private:
void parseString(std::string const &);
///
docstring displayString() const;
+ ///
+ docstring getQuoteEntity() const;
///
QuoteLanguage language_;