]> git.lyx.org Git - lyx.git/blobdiff - src/lyxtextclasslist.C
Fix 3188, update the labels at each Caption insertion.
[lyx.git] / src / lyxtextclasslist.C
index 17282854e39356f2944ace0320ffd62dbe85578e..39b0f2faba62c0e2b85e4c4754d82dda3e971c7e 100644 (file)
@@ -27,6 +27,7 @@
 namespace lyx {
 namespace fs = boost::filesystem;
 
+using support::FileName;
 using support::libFileSearch;
 using support::makeDisplayPath;
 
@@ -34,10 +35,6 @@ 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;
@@ -99,13 +96,14 @@ public:
 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  `" << to_utf8(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
@@ -123,7 +121,8 @@ bool LyXTextClassList::read()
 
        if (!lex.isOK()) {
                lyxerr << "LyXTextClassList::Read: unable to open "
-                       "textclass file  `" << to_utf8(makeDisplayPath(real_file, 1000))
+                         "textclass file  `"
+                      << to_utf8(makeDisplayPath(real_file.absFilename(), 1000))
                       << "'\nCheck your installation. LyX can't continue."
                       << endl;
                return false;
@@ -180,15 +179,15 @@ LyXTextClassList::addTextClass(std::string const & textclass, std::string const
 {
        // 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;