1
1

* editcmd.c (edit_save_file): Temporarily disable safe save

and backups on remote VFS because it doesn't work.  Use
mc_mkstemps() instead of tempnam().
Этот коммит содержится в:
Pavel Roskin 2001-08-01 21:54:59 +00:00
родитель 9377136375
Коммит 3b3357e070
2 изменённых файлов: 31 добавлений и 6 удалений

Просмотреть файл

@ -1,3 +1,9 @@
2001-08-01 Pavel Roskin <proski@gnu.org>
* editcmd.c (edit_save_file): Temporarily disable safe save
and backups on remote VFS because it doesn't work. Use
mc_mkstemps() instead of tempnam().
2001-07-29 Pavel Roskin <proski@gnu.org> 2001-07-29 Pavel Roskin <proski@gnu.org>
* syntax.c (syntax_text): Add support for S-Lang. * syntax.c (syntax_text): Add support for S-Lang.

Просмотреть файл

@ -261,15 +261,27 @@ int edit_save_file (WEdit * edit, const char *filename)
savename = (char *) strdup ((char *) filename); savename = (char *) strdup ((char *) filename);
if ((fd = open (savename, O_WRONLY)) == -1) { if (vfs_file_is_local (filename)) {
this_save_mode = 0; /* the file does not exists yet, so no safe save or backup necessary */ if ((fd = open (savename, O_WRONLY)) == -1) {
/*
* The file does not exists yet, so no safe save or
* backup are necessary.
*/
this_save_mode = 0;
} else {
close (fd);
this_save_mode = option_save_mode;
}
} else { } else {
close (fd); /*
this_save_mode = option_save_mode; * FIXME - rename is not impemented in VFS, so only
* quick save is possible.
*/
this_save_mode = 0;
} }
if (this_save_mode > 0) { if (this_save_mode > 0) {
char *savedir, *slashpos; char *savedir, *slashpos, *saveprefix;
savedir = (char *) strdup ("."); savedir = (char *) strdup (".");
slashpos = strrchr (filename, '/'); slashpos = strrchr (filename, '/');
if (slashpos) { if (slashpos) {
@ -279,10 +291,17 @@ int edit_save_file (WEdit * edit, const char *filename)
} }
if (savename) if (savename)
free (savename); free (savename);
savename = (char *) tempnam (savedir, "cooledit"); saveprefix = concat_dir_and_file (savedir, "cooledit");
fd = mc_mkstemps(&savename, saveprefix, NULL);
g_free (saveprefix);
free (savedir); free (savedir);
if (!savename) if (!savename)
return 0; return 0;
/*
* Close for now because it needs to be reopened by
* VFS-aware mc_open() and MY_O_TEXT should be used.
*/
close (fd);
} }
if ((fd = open (savename, O_CREAT | O_WRONLY | O_TRUNC | MY_O_TEXT, if ((fd = open (savename, O_CREAT | O_WRONLY | O_TRUNC | MY_O_TEXT,