]> git.lyx.org Git - lyx.git/blobdiff - src/lyx_cb.C
fix aspell encoding (confirmed on linux, cygwin and native windows,
[lyx.git] / src / lyx_cb.C
index 7debc6202c563578ceb309e665bb4d9af8d80ec6..30f53dee5ee4af07b7e22cf63fe71f9e3103a302 100644 (file)
@@ -103,7 +103,7 @@ bool quitting;      // flag, that we are quitting the program
 bool menuWrite(Buffer * buffer)
 {
        if (buffer->save()) {
-               LyX::ref().session().lastFiles().add(buffer->fileName());
+               LyX::ref().session().lastFiles().add(FileName(buffer->fileName()));
                return true;
        }
 
@@ -123,12 +123,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"),
@@ -159,9 +159,10 @@ bool writeAs(Buffer * buffer, string const & filename)
                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);
@@ -234,7 +235,7 @@ int AutoSaveBuffer::generateChild()
 
                FileName const tmp_ret(tempName(string(), "lyxauto"));
                if (!tmp_ret.empty()) {
-                       bv_.buffer()->writeFile(tmp_ret.absFilename());
+                       bv_.buffer()->writeFile(tmp_ret);
                        // assume successful write of tmp_ret
                        if (!rename(tmp_ret, fname_)) {
                                failed = true;
@@ -249,7 +250,7 @@ int AutoSaveBuffer::generateChild()
 
                if (failed) {
                        // failed to write/rename tmp_ret so try writing direct
-                       if (!bv_.buffer()->writeFile(fname_.absFilename())) {
+                       if (!bv_.buffer()->writeFile(fname_)) {
                                // It is dangerous to do this in the child,
                                // but safe in the parent, so...
                                if (pid == -1)
@@ -345,7 +346,7 @@ void insertAsciiFile(BufferView * bv, string const & f, bool asParagraph)
 // Insert ascii file (if filename is empty, prompt for one)
 string getContentsOfAsciiFile(BufferView * bv, string const & f, bool asParagraph)
 {
-       string fname = f;
+       FileName fname(f);
 
        if (fname.empty()) {
                FileDialog fileDlg(_("Select file to insert"),
@@ -358,25 +359,25 @@ string getContentsOfAsciiFile(BufferView * bv, string const & f, bool asParagrap
                if (result.first == FileDialog::Later)
                        return string();
 
-               fname = to_utf8(result.second);
+               fname = FileName(makeAbsPath(to_utf8(result.second)));
 
                if (fname.empty())
                        return string();
        }
 
-       if (!fs::is_readable(fname)) {
+       if (!fs::is_readable(fname.toFilesystemEncoding())) {
                docstring const error = from_ascii(strerror(errno));
-               docstring const file = makeDisplayPath(fname, 50);
+               docstring const file = makeDisplayPath(fname.absFilename(), 50);
                docstring const text = bformat(_("Could not read the specified document\n"
                                                           "%1$s\ndue to the error: %2$s"), file, error);
                Alert::error(_("Could not read file"), text);
                return string();
        }
 
-       ifstream ifs(fname.c_str());
+       ifstream ifs(fname.toFilesystemEncoding().c_str());
        if (!ifs) {
                docstring const error = from_ascii(strerror(errno));
-               docstring const file = makeDisplayPath(fname, 50);
+               docstring const file = makeDisplayPath(fname.absFilename(), 50);
                docstring const text = bformat(_("Could not open the specified document\n"
                                                           "%1$s\ndue to the error: %2$s"), file, error);
                Alert::error(_("Could not open file"), text);