#include "support/filetools.h"
#include "support/lyxalgo.h"
#include "support/lstrings.h"
+#include "support/types.h"
+#include "support/unicode.h"
#include <functional>
}
+lyx::docstring const LyXLex::Pimpl::getDocString() const
+{
+ std::vector<boost::uint32_t> res = utf8_to_ucs4(buff);
+ lyx::docstring dstr(res.begin(), res.end());
+ return dstr;
+}
+
+
void LyXLex::Pimpl::printError(string const & message) const
{
string const tmpmsg = subst(message, "$$Token", getString());
if (format == "gzip" || format == "zip" || format == "compress") {
lyxerr[Debug::LYXLEX] << "lyxlex: compressed" << endl;
-#ifdef USE_COMPRESSION
// The check only outputs a debug message, because it triggers
// a bug in compaq cxx 6.2, where is_open() returns 'true' for
// a fresh new filebuf. (JMarc)
- if (gz_.is_open() || istream::off_type(is.tellg()) > -1)
+ if (!gz_.empty() || istream::off_type(is.tellg()) > -1)
lyxerr[Debug::LYXLEX] << "Error in LyXLex::setFile: "
"file or stream already set." << endl;
- gz_.open(filename.c_str(), ios::in);
+ gz_.push(io::gzip_decompressor());
+ gz_.push(io::file_source(filename));
is.rdbuf(&gz_);
name = filename;
lineno = 0;
- return gz_.is_open() && is.good();
-#else
- return false;
-#endif
+ return gz_.component<io::file_source>(1)->is_open() && is.good();
} else {
lyxerr[Debug::LYXLEX] << "lyxlex: UNcompressed" << endl;