добрый день
хочу немного «подрихтовать поведение» mc под себя :о)
конкретно, диалог сохранения файла
1 этап
- во время сохранения только что созданного файла, в диалоге пустая строка
- вставить «кастомное имя», допустим text.txt (прописать жестко, в коде)
2. этап
- «кастомное имя файла» - сохраняемое в настройках mc
3. этап
- «кастомное имя файла» - в зов-ти от «типа-файла»/первой строки
'default' -> text.txt
#!/bin/sh -> shell.sh
#!/bin/bash -> shell.bash
#!/bin/perl -> shell.pl
etc...
ВНИМАНИЕ! нужна помошь, волшебный пендель в нужном направлении, ссылки, ваши мысли, идеи, ругань, просто треп, без матов :о)
может уже есть подобные патчи/наработки?!
!!! UPDATE !!!
первый этап (голимый костыль, но, вроде как, работает)
mc-4.8.23
--- src/editor/editcmd.c 2019-06-17 00:49:31.000000000 +0700
+++ src/editor/editcmd.c 2019-10-12 10:50:33.204729861 +0700
@@ -443,7 +443,7 @@ edit_get_save_file_as (WEdit * edit)
quick_widget_t quick_widgets[] = {
/* *INDENT-OFF* */
QUICK_LABELED_INPUT (N_("Enter file name:"), input_label_above,
- vfs_path_as_str (edit->filename_vpath), "save-as",
+ "text.txt", "save-as",
&filename_res, NULL, FALSE, FALSE, INPUT_COMPLETE_FILENAMES),
QUICK_SEPARATOR (TRUE),
QUICK_LABEL (N_("Change line breaks to:"), NULL),
есть одно но! при сохранение по F12 - Save as - вместо имени уже стоит text.txt (ну а че мы хотим, такой костыль :о) - и если уже существует до этого созданный файл text.txt - будет предложено его перезаписать (короч. лишние, неудобные телодвижения)
!!! UPDATE !!!
более правильный патч
--- src/editor/editcmd.c 2019-06-17 00:49:31.000000000 +0700
+++ src/editor/editcmd.c 2019-10-12 18:51:50.320368742 +0700
@@ -433,6 +433,14 @@ edit_get_save_file_as (WEdit * edit)
char *filename_res;
vfs_path_t *ret_vpath = NULL;
+ if(edit->filename_vpath == NULL)
+ {
+ filename_res = tilde_expand("text.txt");
+ // edit->filename_vpath = vfs_path_from_str(filename_res); -->
+ edit->filename_vpath = vfs_path_from_str_flags(filename_res, VPF_NONE);
+ g_free(filename_res);
+ }
+
const char *lb_names[LB_NAMES] = {
N_("&Do not change"),
N_("&Unix format (LF)"),
!!! UPDATE !!!
Первый этап - решен (еще чуть-чуть более правильный патч :о)
--- src/editor/editcmd.c 2019-06-17 00:49:31.000000000 +0700
+++ src/editor/editcmd.c 2019-10-12 20:43:16.784370042 +0700
@@ -433,6 +433,11 @@ edit_get_save_file_as (WEdit * edit)
char *filename_res;
vfs_path_t *ret_vpath = NULL;
+ if(edit->filename_vpath == NULL || !strcmp(edit->filename_vpath->str,""))
+ filename_res = "text.txt";
+ else
+ filename_res = vfs_path_as_str (edit->filename_vpath);
+
const char *lb_names[LB_NAMES] = {
N_("&Do not change"),
N_("&Unix format (LF)"),
@@ -443,7 +448,7 @@ edit_get_save_file_as (WEdit * edit)
quick_widget_t quick_widgets[] = {
/* *INDENT-OFF* */
QUICK_LABELED_INPUT (N_("Enter file name:"), input_label_above,
- vfs_path_as_str (edit->filename_vpath), "save-as",
+ filename_res, "save-as",
&filename_res, NULL, FALSE, FALSE, INPUT_COMPLETE_FILENAMES),
QUICK_SEPARATOR (TRUE),
QUICK_LABEL (N_("Change line breaks to:"), NULL),