#include <boost/regex.hpp>
#include <boost/filesystem/operations.hpp>
#include <fstream>
-namespace fs = boost::filesystem;
-using lyx::textclass_type;
-using lyx::support::libFileSearch;
-using lyx::support::makeDisplayPath;
+namespace lyx {
+namespace fs = boost::filesystem;
+
+using support::FileName;
+using support::libFileSearch;
+using support::makeDisplayPath;
using boost::bind;
using boost::regex;
using boost::smatch;
-#ifndef CXX_GLOBAL_CSTD
-using std::exit;
-#endif
-
using std::endl;
using std::equal_to;
using std::find_if;
bool LyXTextClassList::read()
{
LyXLex lex(0, 0);
- string real_file = libFileSearch("", "textclass.lst");
+ support::FileName const real_file = libFileSearch("", "textclass.lst");
lyxerr[Debug::TCLASS] << "Reading textclasses from `"
<< real_file << '\'' << endl;
if (real_file.empty()) {
lyxerr << "LyXTextClassList::Read: unable to find "
- "textclass file `" << makeDisplayPath(real_file, 1000)
+ "textclass file `"
+ << to_utf8(makeDisplayPath(real_file.absFilename(), 1000))
<< "'. Exiting." << endl;
return false;
// This causes LyX to end... Not a desirable behaviour. Lgb
if (!lex.isOK()) {
lyxerr << "LyXTextClassList::Read: unable to open "
- "textclass file `" << makeDisplayPath(real_file, 1000)
+ "textclass file `"
+ << to_utf8(makeDisplayPath(real_file.absFilename(), 1000))
<< "'\nCheck your installation. LyX can't continue."
<< endl;
return false;
}
-std::pair<bool, lyx::textclass_type> const
+std::pair<bool, textclass_type> const
LyXTextClassList::addTextClass(std::string const & textclass, std::string const & path)
{
// only check for textclass.layout file, .cls can be anywhere in $TEXINPUTS
// NOTE: latex class name is defined in textclass.layout, which can be different from textclass
- string layout_file = path + "/" + textclass + ".layout";
- if (fs::exists(layout_file)) {
+ FileName const layout_file(path + '/' + textclass + ".layout");
+ if (fs::exists(layout_file.toFilesystemEncoding())) {
lyxerr[Debug::TCLASS] << "Adding class " << textclass << " from directory " << path << endl;
// Read .layout file and get description, real latex classname etc
//
// This is a C++ version of function processLayoutFile in configure.py,
// which uses the following regex
// \Declare(LaTeX|DocBook)Class\s*(\[([^,]*)(,.*)*\])*\s*{(.*)}
- ifstream ifs(layout_file.c_str());
+ ifstream ifs(layout_file.toFilesystemEncoding().c_str());
static regex const reg("^#\\s*\\\\Declare(LaTeX|DocBook)Class\\s*"
"(?:\\[([^,]*)(?:,.*)*\\])*\\s*\\{(.*)\\}\\s*");
string line;
lyxerr[Debug::TCLASS] << "LyXSetStyle: configuration parsed." << endl;
return true;
}
+
+
+} // namespace lyx