#include <functional>
-using lyx::support::compare_ascii_no_case;
-using lyx::support::getFormatFromContents;
-using lyx::support::makeDisplayPath;
-using lyx::support::split;
-using lyx::support::subst;
+
+namespace lyx {
+
+using support::compare_ascii_no_case;
+using support::FileName;
+using support::getFormatFromContents;
+using support::makeDisplayPath;
+using support::split;
+using support::subst;
using std::endl;
using std::getline;
string const LyXLex::Pimpl::getString() const
{
- return string(buff.begin(), buff.end());
+ return buff;
}
-lyx::docstring const LyXLex::Pimpl::getDocString() const
+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;
+ return from_utf8(buff);
}
{
string const tmpmsg = subst(message, "$$Token", getString());
lyxerr << "LyX: " << tmpmsg << " [around line " << lineno
- << " of file " << makeDisplayPath(name) << ']' << endl;
+ << " of file " << to_utf8(makeDisplayPath(name)) << ']' << endl;
}
}
-bool LyXLex::Pimpl::setFile(string const & filename)
+bool LyXLex::Pimpl::setFile(FileName const & filename)
{
// Check the format of the file.
string const format = getFormatFromContents(filename);
lyxerr[Debug::LYXLEX] << "Error in LyXLex::setFile: "
"file or stream already set." << endl;
gz_.push(io::gzip_decompressor());
- gz_.push(io::file_source(filename));
+ gz_.push(io::file_source(filename.toFilesystemEncoding()));
is.rdbuf(&gz_);
- name = filename;
+ name = filename.absFilename();
lineno = 0;
return gz_.component<io::file_source>(1)->is_open() && is.good();
} else {
if (fb_.is_open() || istream::off_type(is.tellg()) > 0)
lyxerr[Debug::LYXLEX] << "Error in LyXLex::setFile: "
"file or stream already set." << endl;
- fb_.open(filename.c_str(), ios::in);
+ fb_.open(filename.toFilesystemEncoding().c_str(), ios::in);
is.rdbuf(&fb_);
- name = filename;
+ name = filename.absFilename();
lineno = 0;
return fb_.is_open() && is.good();
}
// we extract the first word and leaves the rest
// in pushTok. (Lgb)
if (pushTok.find(' ') != string::npos && pushTok[0] == '\\') {
- string tmp;
- pushTok = split(pushTok, tmp, ' ');
- buff.assign(tmp.begin(), tmp.end());
+ buff.clear();
+ pushTok = split(pushTok, buff, ' ');
return true;
} else {
- buff.assign(pushTok.begin(), pushTok.end());
- pushTok.erase();
+ buff = pushTok;
+ pushTok.clear();
return true;
}
}
++lineno;
}
- buff.pop_back();
+ buff.resize(buff.size()-1);
status = LEX_DATA;
break;
}
++lineno;
}
- buff.pop_back();
+ buff.resize(buff.size() -1);
status = LEX_DATA;
break;
}
if (c == '\n') {
++lineno;
- buff.pop_back();
+ buff.resize(buff.size() - 1);
status = LEX_DATA;
return true;
} else {
// we extract the first word and leaves the rest
// in pushTok. (Lgb)
if (pushTok.find(' ') != string::npos && pushTok[0] == '\\') {
- string tmp;
- pushTok = split(pushTok, tmp, ' ');
- buff.assign(tmp.begin(), tmp.end());
+ buff.clear();
+ pushTok = split(pushTok, buff, ' ');
return true;
} else {
- buff.assign(pushTok.begin(), pushTok.end());
- pushTok.erase();
+ buff = pushTok;
+ pushTok.clear();
return true;
}
}
{
pushTok = pt;
}
+
+
+} // namespace lyx