]> git.lyx.org Git - lyx.git/blobdiff - src/lyx_cb.C
* InsetMathNest.C (handleFont): avoid crash on undo when
[lyx.git] / src / lyx_cb.C
index 5c307126bf0032f0f1b46b5f79c7a2c4774f9575..14cca99832573202556feb5aec5a02fb89949df6 100644 (file)
@@ -59,7 +59,6 @@
 
 namespace lyx {
 
-using support::addName;
 using support::bformat;
 using support::FileFilterList;
 using support::FileName;
@@ -123,12 +122,12 @@ bool menuWrite(Buffer * buffer)
 
 
 
-bool writeAs(Buffer * buffer, string const & filename)
+bool writeAs(Buffer * buffer, string const & newname)
 {
        string fname = buffer->fileName();
        string const oldname = fname;
 
-       if (filename.empty()) {
+       if (newname.empty()) {
 
                // FIXME UNICODE
                FileDialog fileDlg(_("Choose a filename to save document as"),
@@ -155,13 +154,14 @@ bool writeAs(Buffer * buffer, string const & filename)
                        return false;
 
                // Make sure the absolute filename ends with appropriate suffix
-               fname = makeAbsPath(fname);
+               fname = makeAbsPath(fname).absFilename();
                if (!isLyXFilename(fname))
                        fname += ".lyx";
        } else
-               fname = filename;
+               fname = newname;
 
-       if (fs::exists(fname)) {
+       FileName const filename(fname);
+       if (fs::exists(filename.toFilesystemEncoding())) {
                docstring const file = makeDisplayPath(fname, 30);
                docstring text = bformat(_("The document %1$s already exists.\n\n"
                                                     "Do you want to over-write that document?"), file);
@@ -232,7 +232,7 @@ int AutoSaveBuffer::generateChild()
                // anyway.
                bool failed = false;
 
-               FileName const tmp_ret(tempName(string(), "lyxauto"));
+               FileName const tmp_ret(tempName(FileName(), "lyxauto"));
                if (!tmp_ret.empty()) {
                        bv_.buffer()->writeFile(tmp_ret);
                        // assume successful write of tmp_ret
@@ -358,7 +358,7 @@ string getContentsOfAsciiFile(BufferView * bv, string const & f, bool asParagrap
                if (result.first == FileDialog::Later)
                        return string();
 
-               fname = FileName(makeAbsPath(to_utf8(result.second)));
+               fname = makeAbsPath(to_utf8(result.second));
 
                if (fname.empty())
                        return string();