]> git.lyx.org Git - lyx.git/blobdiff - src/output_xhtml.cpp
Initialize nextraw_. The first character of the outputted html file was represented...
[lyx.git] / src / output_xhtml.cpp
index 01d57218b2b3162c493b950a0be1edc555024547..376de29c25c0eac3e601f9e5a51d6e84e405daa1 100644 (file)
@@ -123,7 +123,7 @@ docstring CompTag::asTag() const
 ////////////////////////////////////////////////////////////////
 
 XHTMLStream::XHTMLStream(odocstream & os) 
-               :os_(os)
+               : os_(os), nextraw_(false)
 {}
 
 
@@ -187,7 +187,11 @@ void XHTMLStream::clearTagDeque()
 XHTMLStream & XHTMLStream::operator<<(docstring const & d)
 {
        clearTagDeque();
-       os_ << html::htmlize(d);
+       if (nextraw_) {
+               os_ << d;
+               nextraw_ = false;
+       } else
+               os_ << html::htmlize(d);
        return *this;
 }
 
@@ -195,7 +199,12 @@ XHTMLStream & XHTMLStream::operator<<(docstring const & d)
 XHTMLStream & XHTMLStream::operator<<(const char * s)
 {
        clearTagDeque();
-       os_ << html::htmlize(from_ascii(s));
+       docstring const d = from_ascii(s);
+       if (nextraw_) {
+               os_ << d;
+               nextraw_ = false;
+       } else
+               os_ << html::htmlize(d);
        return *this;
 }
 
@@ -203,7 +212,18 @@ XHTMLStream & XHTMLStream::operator<<(const char * s)
 XHTMLStream & XHTMLStream::operator<<(char_type c)
 {
        clearTagDeque();
-       os_ << html::escapeChar(c);
+       if (nextraw_) {
+               os_ << c;
+               nextraw_ = false;
+       } else
+               os_ << html::escapeChar(c);
+       return *this;
+}
+
+
+XHTMLStream & XHTMLStream::operator<<(NextRaw const &) 
+{ 
+       nextraw_ = true; 
        return *this;
 }
 
@@ -503,7 +523,7 @@ ParagraphList::const_iterator makeParagraphs(Buffer const & buf,
                        xs.cr();
                }
                if (!deferred.empty()) {
-                       xs << deferred;
+                       xs << XHTMLStream::NextRaw() << deferred;
                        xs.cr();
                }
        }