mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-22 20:36:50 +03:00
Replaced the
editor_option_backup_ext_int hack with a string configuration variable, which allows the backup extension to have more than just four characters.
This commit is contained in:
parent
34d39bfd0b
commit
9be77996d6
@ -4,6 +4,11 @@
|
||||
the possibility of saving editor options except calling the
|
||||
"Save setup..." function from within the file manager.
|
||||
|
||||
* edit.c, edit.h, editcmd.c, editwidget.c: Replaced the
|
||||
editor_option_backup_ext_int hack with a string configuration
|
||||
variable, which allows the backup extension to have more than
|
||||
just four characters.
|
||||
|
||||
2005-09-05 Roland Illig <roland.illig@gmx.de>
|
||||
|
||||
* editcmd.c: Fixed some of the gcc warnings.
|
||||
|
@ -61,7 +61,6 @@ int option_backspace_through_tabs = 0;
|
||||
int option_fake_half_tabs = 1;
|
||||
int option_save_mode = EDIT_QUICK_SAVE;
|
||||
int option_save_position = 1;
|
||||
int option_backup_ext_int = -1;
|
||||
int option_max_undo = 32768;
|
||||
|
||||
int option_edit_right_extreme = 0;
|
||||
@ -70,7 +69,7 @@ int option_edit_top_extreme = 0;
|
||||
int option_edit_bottom_extreme = 0;
|
||||
|
||||
const char *option_whole_chars_search = "0123456789abcdefghijklmnopqrstuvwxyz_";
|
||||
char *option_backup_ext = "~";
|
||||
char *option_backup_ext = NULL;
|
||||
|
||||
/*-
|
||||
*
|
||||
|
@ -279,7 +279,6 @@ typedef enum {
|
||||
|
||||
extern int option_save_mode;
|
||||
extern int option_save_position;
|
||||
extern int option_backup_ext_int;
|
||||
extern int option_max_undo;
|
||||
extern int option_syntax_highlighting;
|
||||
extern int option_auto_syntax;
|
||||
|
@ -24,6 +24,8 @@
|
||||
/* #define PIPE_BLOCKS_SO_READ_BYTE_BY_BYTE */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include <stdio.h>
|
||||
@ -358,10 +360,14 @@ edit_save_file (WEdit *edit, const char *filename)
|
||||
|
||||
if (filelen != edit->last_byte)
|
||||
goto error_save;
|
||||
if (this_save_mode == EDIT_DO_BACKUP)
|
||||
if (mc_rename (filename, catstrs (filename, option_backup_ext, (char *) NULL))
|
||||
== -1)
|
||||
|
||||
if (this_save_mode == EDIT_DO_BACKUP) {
|
||||
assert (option_backup_ext != NULL);
|
||||
if (mc_rename (filename, catstrs (filename, option_backup_ext,
|
||||
(char *) NULL)) == -1)
|
||||
goto error_save;
|
||||
}
|
||||
|
||||
if (this_save_mode != EDIT_QUICK_SAVE)
|
||||
if (mc_rename (savename, filename) == -1)
|
||||
goto error_save;
|
||||
@ -376,11 +382,6 @@ edit_save_file (WEdit *edit, const char *filename)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
I changed this from Oleg's original routine so
|
||||
that option_backup_ext works with coolwidgets as well. This
|
||||
does mean there is a memory leak - paul.
|
||||
*/
|
||||
void menu_save_mode_cmd (void)
|
||||
{
|
||||
#define DLG_X 38
|
||||
@ -441,15 +442,16 @@ void menu_save_mode_cmd (void)
|
||||
widgets[i].x_divisions = dlg_x;
|
||||
}
|
||||
|
||||
assert (option_backup_ext != NULL);
|
||||
widgets[2].text = option_backup_ext;
|
||||
widgets[4].value = option_save_mode;
|
||||
if (quick_dialog (&dialog) != B_ENTER)
|
||||
return;
|
||||
option_save_mode = save_mode_new;
|
||||
option_backup_ext = str_result; /* this is a memory leak */
|
||||
option_backup_ext_int = 0;
|
||||
str_result[min (strlen (str_result), sizeof (int))] = '\0';
|
||||
memcpy (&option_backup_ext_int, str_result, strlen (option_backup_ext));
|
||||
|
||||
g_free (option_backup_ext);
|
||||
option_backup_ext = str_result;
|
||||
str_result = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -185,12 +185,6 @@ edit_file (const char *_file, int line)
|
||||
Dlg_head *edit_dlg;
|
||||
WButtonBar *edit_bar;
|
||||
|
||||
if (option_backup_ext_int != -1) {
|
||||
option_backup_ext = g_malloc (sizeof (int) + 1);
|
||||
option_backup_ext[sizeof (int)] = '\0';
|
||||
memcpy (option_backup_ext, (char *) &option_backup_ext_int,
|
||||
sizeof (int));
|
||||
}
|
||||
if (!made_directory) {
|
||||
char *dir = concat_dir_and_file (home_dir, EDIT_DIR);
|
||||
made_directory = (mkdir (dir, 0700) != -1 || errno == EEXIST);
|
||||
|
Loading…
Reference in New Issue
Block a user