]> git.lyx.org Git - lyx.git/blobdiff - src/lyx_main.C
do not create invalid .lyx files when importing \i{}, \j{}, \l{} or \L{}.
[lyx.git] / src / lyx_main.C
index fbb4bd71641c86a54d5e6c5f985133415aed7b9d..ca36f2c081c1e808128c08db1b7a632e9178e1d7 100644 (file)
@@ -426,7 +426,7 @@ void LyX::prepareExit()
                return;
        }
 
-       if (!destroyDir(package().temp_dir())) {
+       if (!destroyDir(FileName(package().temp_dir()))) {
                docstring const msg =
                        bformat(_("Unable to remove the temporary directory %1$s"),
                        from_utf8(package().temp_dir()));
@@ -479,11 +479,6 @@ int LyX::init(int & argc, char * argv[])
                return EXIT_FAILURE;
 
        for (int argi = argc - 1; argi >= 1; --argi) {
-               // check for any remaining extra arguments other than
-               // document file names. These will be passed out to the
-               // frontend.
-               if (argv[argi][0] == '-')
-                       continue;
                // get absolute path of file and add ".lyx" to
                // the filename if necessary
                pimpl_->files_to_load_.push_back(fileSearch(string(), os::internal_path(argv[argi]), "lyx"));
@@ -841,8 +836,9 @@ bool LyX::init()
        if (!lyxrc.path_prefix.empty())
                prependEnvPath("PATH", lyxrc.path_prefix);
 
-       if (fs::exists(lyxrc.document_path) &&
-           fs::is_directory(lyxrc.document_path))
+       FileName const document_path(lyxrc.document_path);
+       if (fs::exists(document_path.toFilesystemEncoding()) &&
+           fs::is_directory(document_path.toFilesystemEncoding()))
                package().document_dir() = lyxrc.document_path;
 
        package().temp_dir() = createLyXTmpDir(FileName(lyxrc.tempdir_path)).absFilename();
@@ -975,11 +971,19 @@ namespace {
 // return true if file does not exist or is older than configure.py.
 bool needsUpdate(string const & file)
 {
-       static string const configure_script =
-               addName(package().system_support(), "configure.py");
-       string const absfile =
-               addName(package().user_support(), file);
+       // We cannot initialize configure_script directly because the package
+       // is not initialized yet when  static objects are constructed.
+       static string configure_script;
+       static bool firstrun = true;
+       if (firstrun) {
+               configure_script = FileName(addName(
+                               package().system_support(),
+                               "configure.py")).toFilesystemEncoding();
+               firstrun = false;
+       }
 
+       string const absfile = FileName(addName(
+               package().user_support(), file)).toFilesystemEncoding();
        return (! fs::exists(absfile))
                || (fs::last_write_time(configure_script)
                    > fs::last_write_time(absfile));
@@ -991,8 +995,9 @@ bool needsUpdate(string const & file)
 bool LyX::queryUserLyXDir(bool explicit_userdir)
 {
        // Does user directory exist?
-       if (fs::exists(package().user_support()) &&
-           fs::is_directory(package().user_support())) {
+       string const user_support =
+               FileName(package().user_support()).toFilesystemEncoding();
+       if (fs::exists(user_support) && fs::is_directory(user_support)) {
                first_start = false;
 
                return needsUpdate("lyxrc.defaults")