- allow switching of trailing spaces/tab highlighting with crtl-v, patch
from Jan Engelhardt (#464738) - update the UTF-8 patch accordingly
This commit is contained in:
parent
8ece7b3dbe
commit
1fb37740bf
363
mc-cedit-configurable-highlight.patch
Normal file
363
mc-cedit-configurable-highlight.patch
Normal file
@ -0,0 +1,363 @@
|
||||
|
||||
Move syntax highlighting options into their own menu, and make TAB and
|
||||
Whitespace highlighting selectable.
|
||||
|
||||
Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
|
||||
|
||||
---
|
||||
edit/edit.c | 6 ++
|
||||
edit/edit.h | 7 ++
|
||||
edit/editcmddef.h | 1
|
||||
edit/editdraw.c | 4 +
|
||||
edit/editkeys.c | 1
|
||||
edit/editmenu.c | 6 ++
|
||||
edit/editoptions.c | 141 ++++++++++++++++++++++++++++++++++++++++-------------
|
||||
src/setup.c | 1
|
||||
8 files changed, 133 insertions(+), 34 deletions(-)
|
||||
|
||||
Index: mc/edit/edit.c
|
||||
===================================================================
|
||||
--- mc.orig/edit/edit.c
|
||||
+++ mc/edit/edit.c
|
||||
@@ -2487,6 +2487,12 @@ edit_execute_cmd (WEdit *edit, int comma
|
||||
edit->force |= REDRAW_PAGE;
|
||||
break;
|
||||
|
||||
+ case CK_Toggle_Syntax2:
|
||||
+ ++option_highlighting;
|
||||
+ option_highlighting %= 4;
|
||||
+ edit->force |= REDRAW_PAGE;
|
||||
+ break;
|
||||
+
|
||||
case CK_Find:
|
||||
edit_search_cmd (edit, 0);
|
||||
break;
|
||||
Index: mc/edit/edit.h
|
||||
===================================================================
|
||||
--- mc.orig/edit/edit.h
|
||||
+++ mc/edit/edit.h
|
||||
@@ -228,6 +228,7 @@ int line_is_blank (WEdit *edit, long lin
|
||||
int edit_indent_width (WEdit *edit, long p);
|
||||
void edit_insert_indent (WEdit *edit, int indent);
|
||||
void edit_options_dialog (void);
|
||||
+void edit_syntax_opt_dialog(void);
|
||||
void edit_syntax_dialog (void);
|
||||
void edit_mail_dialog (WEdit *edit);
|
||||
void format_paragraph (WEdit *edit, int force);
|
||||
@@ -279,10 +280,16 @@ typedef enum {
|
||||
EDIT_DO_BACKUP
|
||||
} edit_save_mode_t;
|
||||
|
||||
+enum {
|
||||
+ HL_WHITESPACE = 1 << 0,
|
||||
+ HL_TABS = 1 << 1,
|
||||
+};
|
||||
+
|
||||
extern int option_save_mode;
|
||||
extern int option_save_position;
|
||||
extern int option_max_undo;
|
||||
extern int option_syntax_highlighting;
|
||||
+extern unsigned int option_highlighting;
|
||||
extern int option_auto_syntax;
|
||||
extern char *option_syntax_type;
|
||||
extern int editor_option_check_nl_at_eof;
|
||||
Index: mc/edit/editcmddef.h
|
||||
===================================================================
|
||||
--- mc.orig/edit/editcmddef.h
|
||||
+++ mc/edit/editcmddef.h
|
||||
@@ -109,6 +109,7 @@
|
||||
#define CK_Maximize 458
|
||||
|
||||
#define CK_Toggle_Syntax 480
|
||||
+#define CK_Toggle_Syntax2 481
|
||||
|
||||
/* macro */
|
||||
#define CK_Begin_Record_Macro 501
|
||||
Index: mc/edit/editdraw.c
|
||||
===================================================================
|
||||
--- mc.orig/edit/editdraw.c
|
||||
+++ mc/edit/editdraw.c
|
||||
@@ -273,7 +273,9 @@ print_to_widget (WEdit *edit, long row,
|
||||
}
|
||||
}
|
||||
|
||||
-int visible_tabs = 1, visible_tws = 1;
|
||||
+unsigned int option_highlighting = HL_TABS | HL_WHITESPACE;
|
||||
+#define visible_tabs (option_highlighting & HL_TABS)
|
||||
+#define visible_tws (option_highlighting & HL_WHITESPACE)
|
||||
|
||||
/* b is a pointer to the beginning of the line */
|
||||
static void
|
||||
Index: mc/edit/editkeys.c
|
||||
===================================================================
|
||||
--- mc.orig/edit/editkeys.c
|
||||
+++ mc/edit/editkeys.c
|
||||
@@ -114,6 +114,7 @@ static const edit_key_map_type common_ke
|
||||
{ XCTRL ('l'), CK_Refresh },
|
||||
{ XCTRL ('o'), CK_Shell },
|
||||
{ XCTRL ('s'), CK_Toggle_Syntax },
|
||||
+ { XCTRL ('v'), CK_Toggle_Syntax2 },
|
||||
{ XCTRL ('u'), CK_Undo },
|
||||
{ XCTRL ('t'), CK_Select_Codepage },
|
||||
{ XCTRL ('q'), CK_Insert_Literal },
|
||||
Index: mc/edit/editmenu.c
|
||||
===================================================================
|
||||
--- mc.orig/edit/editmenu.c
|
||||
+++ mc/edit/editmenu.c
|
||||
@@ -283,6 +283,11 @@ menu_options (void)
|
||||
edit_options_dialog ();
|
||||
}
|
||||
|
||||
+static void menu_syntax_options(void)
|
||||
+{
|
||||
+ edit_syntax_opt_dialog();
|
||||
+}
|
||||
+
|
||||
static void
|
||||
menu_syntax (void)
|
||||
{
|
||||
@@ -410,6 +415,7 @@ static menu_entry CmdMenuEmacs[] =
|
||||
static menu_entry OptMenu[] =
|
||||
{
|
||||
{' ', N_("&General... "), 'G', menu_options},
|
||||
+ {' ', N_("Highlight options... "), ' ', menu_syntax_options},
|
||||
{' ', N_("&Save mode..."), 'S', menu_save_mode_cmd},
|
||||
{' ', N_("Learn &Keys..."), 'K', learn_keys},
|
||||
{' ', N_("Syntax &Highlighting..."), 'H', menu_syntax},
|
||||
Index: mc/edit/editoptions.c
|
||||
===================================================================
|
||||
--- mc.orig/edit/editoptions.c
|
||||
+++ mc/edit/editoptions.c
|
||||
@@ -43,9 +43,6 @@
|
||||
#include "../src/dialog.h" /* B_CANCEL */
|
||||
#include "../src/wtools.h" /* QuickDialog */
|
||||
|
||||
-#define OPT_DLG_H 17
|
||||
-#define OPT_DLG_W 72
|
||||
-
|
||||
#ifndef USE_INTERNAL_EDIT
|
||||
#define USE_INTERNAL_EDIT 1
|
||||
#endif
|
||||
@@ -65,12 +62,98 @@ i18n_translate_array (const char *array[
|
||||
}
|
||||
}
|
||||
|
||||
+#define OPT_DLG_H 12
|
||||
+#define OPT_DLG_W 40
|
||||
+void edit_syntax_opt_dialog(void)
|
||||
+{
|
||||
+ int f_syntax_hl = option_syntax_highlighting;
|
||||
+ int f_tab_hl = option_highlighting & HL_TABS;
|
||||
+ int f_ws_hl = option_highlighting & HL_WHITESPACE;
|
||||
+
|
||||
+ int old_syntax_hl = f_syntax_hl;
|
||||
+
|
||||
+ QuickWidget quick_widgets[] = {
|
||||
+ {
|
||||
+ .widget_type = quick_button,
|
||||
+ .relative_x = 6,
|
||||
+ .x_divisions = 10,
|
||||
+ .relative_y = OPT_DLG_H - 3,
|
||||
+ .y_divisions = OPT_DLG_H,
|
||||
+ .text = N_("&Cancel"),
|
||||
+ .value = B_CANCEL,
|
||||
+ },
|
||||
+ {
|
||||
+ .widget_type = quick_button,
|
||||
+ .relative_x = 2,
|
||||
+ .x_divisions = 10,
|
||||
+ .relative_y = OPT_DLG_H - 3,
|
||||
+ .y_divisions = OPT_DLG_H,
|
||||
+ .text = N_("&OK"),
|
||||
+ .value = B_ENTER,
|
||||
+ },
|
||||
+ {
|
||||
+ .widget_type = quick_checkbox,
|
||||
+ .relative_x = 6,
|
||||
+ .x_divisions = OPT_DLG_W,
|
||||
+ .relative_y = 6,
|
||||
+ .y_divisions = OPT_DLG_H,
|
||||
+ .text = N_("Whitespace highlighting"),
|
||||
+ .result = &f_ws_hl,
|
||||
+ },
|
||||
+ {
|
||||
+ .widget_type = quick_checkbox,
|
||||
+ .relative_x = 6,
|
||||
+ .x_divisions = OPT_DLG_W,
|
||||
+ .relative_y = 5,
|
||||
+ .y_divisions = OPT_DLG_H,
|
||||
+ .text = N_("Tab highlighting"),
|
||||
+ .result = &f_tab_hl,
|
||||
+ },
|
||||
+ {
|
||||
+ .widget_type = quick_checkbox,
|
||||
+ .relative_x = 6,
|
||||
+ .x_divisions = OPT_DLG_W,
|
||||
+ .relative_y = 4,
|
||||
+ .y_divisions = OPT_DLG_H,
|
||||
+ .text = N_("Syntax highlighting"),
|
||||
+ .result = &f_syntax_hl,
|
||||
+ },
|
||||
+ NULL_QuickWidget,
|
||||
+ };
|
||||
+ QuickDialog quick_options = {
|
||||
+ .xlen = OPT_DLG_W,
|
||||
+ .ylen = OPT_DLG_H,
|
||||
+ .xpos = -1,
|
||||
+ .ypos = 0,
|
||||
+ .title = N_(" Syntax options "),
|
||||
+ .help = "",
|
||||
+ .widgets = quick_widgets,
|
||||
+ };
|
||||
+
|
||||
+ if (quick_dialog(&quick_options) == B_CANCEL)
|
||||
+ return;
|
||||
+
|
||||
+ if (old_syntax_hl != f_syntax_hl)
|
||||
+ /* Load or unload syntax rules if the option has changed */
|
||||
+ edit_load_syntax(wedit, NULL, option_syntax_type);
|
||||
+
|
||||
+ option_syntax_highlighting = f_syntax_hl;
|
||||
+ option_highlighting = 0;
|
||||
+ if (f_tab_hl)
|
||||
+ option_highlighting |= HL_TABS;
|
||||
+ if (f_ws_hl)
|
||||
+ option_highlighting |= HL_WHITESPACE;
|
||||
+}
|
||||
+#undef OPT_DLG_H
|
||||
+#undef OPT_DLG_W
|
||||
+
|
||||
+#define OPT_DLG_H 17
|
||||
+#define OPT_DLG_W 72
|
||||
void
|
||||
edit_options_dialog (void)
|
||||
{
|
||||
char wrap_length[32], tab_spacing[32], *p, *q;
|
||||
int wrap_mode = 0;
|
||||
- int old_syntax_hl;
|
||||
int tedit_key_emulation = edit_key_emulation;
|
||||
int toption_fill_tabs_with_spaces = option_fill_tabs_with_spaces;
|
||||
int toption_save_position = option_save_position;
|
||||
@@ -102,37 +185,34 @@ edit_options_dialog (void)
|
||||
OPT_DLG_H, "", OPT_DLG_W / 2 - 4 - 24, 0, 0, 0,
|
||||
"edit-tab-spacing"},
|
||||
/* 6 */
|
||||
- {quick_checkbox, OPT_DLG_W / 2 + 1, OPT_DLG_W, OPT_DLG_H - 8,
|
||||
- OPT_DLG_H, N_("Synta&x highlighting"), 8, 0, 0, 0, NULL},
|
||||
- /* 7 */
|
||||
{quick_checkbox, OPT_DLG_W / 2 + 1, OPT_DLG_W, OPT_DLG_H - 9,
|
||||
OPT_DLG_H, N_("Save file &position"), 0, 0, 0, 0, NULL},
|
||||
- /* 8 */
|
||||
+ /* 7 */
|
||||
{quick_checkbox, OPT_DLG_W / 2 + 1, OPT_DLG_W, OPT_DLG_H - 10,
|
||||
OPT_DLG_H, N_("Confir&m before saving"), 6, 0, 0, 0, NULL},
|
||||
- /* 9 */
|
||||
+ /* 8 */
|
||||
{quick_checkbox, OPT_DLG_W / 2 + 1, OPT_DLG_W, OPT_DLG_H - 11,
|
||||
OPT_DLG_H, N_("Fill tabs with &spaces"), 0, 0, 0, 0, NULL},
|
||||
- /* 10 */
|
||||
+ /* 9 */
|
||||
{quick_checkbox, OPT_DLG_W / 2 + 1, OPT_DLG_W, OPT_DLG_H - 12,
|
||||
OPT_DLG_H, N_("&Return does autoindent"), 0, 0, 0, 0, NULL},
|
||||
- /* 11 */
|
||||
+ /* 10 */
|
||||
{quick_checkbox, OPT_DLG_W / 2 + 1, OPT_DLG_W, OPT_DLG_H - 13,
|
||||
OPT_DLG_H, N_("&Backspace through tabs"), 0, 0, 0, 0, NULL},
|
||||
- /* 12 */
|
||||
+ /* 11 */
|
||||
{quick_checkbox, OPT_DLG_W / 2 + 1, OPT_DLG_W, OPT_DLG_H - 14,
|
||||
OPT_DLG_H, N_("&Fake half tabs"), 0, 0, 0, 0, NULL},
|
||||
- /* 13 */
|
||||
+ /* 12 */
|
||||
{quick_radio, 5, OPT_DLG_W, OPT_DLG_H - 7, OPT_DLG_H, "", 3, 0, 0,
|
||||
const_cast(char **, wrap_str), "wrapm"},
|
||||
- /* 14 */
|
||||
+ /* 13 */
|
||||
{quick_label, 4, OPT_DLG_W, OPT_DLG_H - 8, OPT_DLG_H,
|
||||
N_("Wrap mode"), 0, 0,
|
||||
0, 0, NULL},
|
||||
- /* 15 */
|
||||
+ /* 14 */
|
||||
{quick_radio, 5, OPT_DLG_W, OPT_DLG_H - 13, OPT_DLG_H, "", 3, 0, 0,
|
||||
const_cast(char **, key_emu_str), "keyemu"},
|
||||
- /* 16 */
|
||||
+ /* 15 */
|
||||
{quick_label, 4, OPT_DLG_W, OPT_DLG_H - 14, OPT_DLG_H,
|
||||
N_("Key emulation"), 0, 0, 0, 0, NULL},
|
||||
NULL_QuickWidget
|
||||
@@ -156,13 +236,12 @@ edit_options_dialog (void)
|
||||
quick_widgets[3].str_result = &p;
|
||||
quick_widgets[5].text = tab_spacing;
|
||||
quick_widgets[5].str_result = &q;
|
||||
- quick_widgets[6].result = &tedit_syntax_highlighting;
|
||||
- quick_widgets[7].result = &toption_save_position;
|
||||
- quick_widgets[8].result = &tedit_confirm_save;
|
||||
- quick_widgets[9].result = &toption_fill_tabs_with_spaces;
|
||||
- quick_widgets[10].result = &toption_return_does_auto_indent;
|
||||
- quick_widgets[11].result = &toption_backspace_through_tabs;
|
||||
- quick_widgets[12].result = &toption_fake_half_tabs;
|
||||
+ quick_widgets[6].result = &toption_save_position;
|
||||
+ quick_widgets[7].result = &tedit_confirm_save;
|
||||
+ quick_widgets[8].result = &toption_fill_tabs_with_spaces;
|
||||
+ quick_widgets[9].result = &toption_return_does_auto_indent;
|
||||
+ quick_widgets[10].result = &toption_backspace_through_tabs;
|
||||
+ quick_widgets[11].result = &toption_fake_half_tabs;
|
||||
|
||||
if (option_auto_para_formatting)
|
||||
wrap_mode = 1;
|
||||
@@ -171,19 +250,17 @@ edit_options_dialog (void)
|
||||
else
|
||||
wrap_mode = 0;
|
||||
|
||||
- quick_widgets[13].result = &wrap_mode;
|
||||
- quick_widgets[13].value = wrap_mode;
|
||||
+ quick_widgets[12].result = &wrap_mode;
|
||||
+ quick_widgets[12].value = wrap_mode;
|
||||
|
||||
- quick_widgets[15].result = &tedit_key_emulation;
|
||||
- quick_widgets[15].value = tedit_key_emulation;
|
||||
+ quick_widgets[14].result = &tedit_key_emulation;
|
||||
+ quick_widgets[14].value = tedit_key_emulation;
|
||||
|
||||
Quick_options.widgets = quick_widgets;
|
||||
|
||||
if (quick_dialog (&Quick_options) == B_CANCEL)
|
||||
return;
|
||||
|
||||
- old_syntax_hl = option_syntax_highlighting;
|
||||
-
|
||||
if (p) {
|
||||
option_word_wrap_line_length = atoi (p);
|
||||
g_free (p);
|
||||
@@ -195,7 +272,6 @@ edit_options_dialog (void)
|
||||
g_free (q);
|
||||
}
|
||||
|
||||
- option_syntax_highlighting = tedit_syntax_highlighting;
|
||||
edit_confirm_save = tedit_confirm_save;
|
||||
option_save_position = toption_save_position;
|
||||
option_fill_tabs_with_spaces = toption_fill_tabs_with_spaces;
|
||||
@@ -220,9 +296,8 @@ edit_options_dialog (void)
|
||||
edit_reload_menu ();
|
||||
}
|
||||
|
||||
- /* Load or unload syntax rules if the option has changed */
|
||||
- if (option_syntax_highlighting != old_syntax_hl)
|
||||
- edit_load_syntax (wedit, NULL, option_syntax_type);
|
||||
/* Load usermap if it's needed */
|
||||
edit_load_user_map (wedit);
|
||||
}
|
||||
+#undef DLG_OPT_W
|
||||
+#undef DLG_OPT_H
|
||||
Index: mc/src/setup.c
|
||||
===================================================================
|
||||
--- mc.orig/src/setup.c
|
||||
+++ mc/src/setup.c
|
||||
@@ -216,6 +216,7 @@ static const struct {
|
||||
{ "editor_option_typewriter_wrap", &option_typewriter_wrap },
|
||||
{ "editor_edit_confirm_save", &edit_confirm_save },
|
||||
{ "editor_syntax_highlighting", &option_syntax_highlighting },
|
||||
+ { "editor_highlight", &option_highlighting },
|
||||
#endif /* USE_INTERNAL_EDIT */
|
||||
|
||||
{ "nice_rotating_dash", &nice_rotating_dash },
|
7769
mc-utf8.patch
7769
mc-utf8.patch
File diff suppressed because it is too large
Load Diff
9
mc.spec
9
mc.spec
@ -1,7 +1,7 @@
|
||||
Summary: User-friendly text console file manager and visual shell
|
||||
Name: mc
|
||||
Version: 4.6.2
|
||||
Release: 6.pre1%{?dist}
|
||||
Release: 7.pre1%{?dist}
|
||||
Epoch: 1
|
||||
License: GPLv2
|
||||
Group: System Environment/Shells
|
||||
@ -34,6 +34,7 @@ Patch19: mc-hintchk.patch
|
||||
Patch20: mc-7zip.patch
|
||||
Patch21: mc-oldrpmtags.patch
|
||||
Patch22: mc-shellcwd.patch
|
||||
Patch23: mc-cedit-configurable-highlight.patch
|
||||
|
||||
%description
|
||||
Midnight Commander is a visual shell much like a file manager, only
|
||||
@ -67,6 +68,7 @@ specific files.
|
||||
%patch20 -p1 -b .7zip
|
||||
%patch21 -p1 -b .oldrpmtags
|
||||
%patch22 -p1 -b .shellcwd
|
||||
%patch23 -p1 -b .cedit-configurable-highlight
|
||||
|
||||
# convert files in /lib to UTF-8
|
||||
pushd lib
|
||||
@ -204,6 +206,11 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%dir %{_libexecdir}/mc
|
||||
|
||||
%changelog
|
||||
* Thu Oct 23 2008 Jindrich Novy <jnovy@redhat.com> 4.6.2-7.pre1
|
||||
- allow switching of trailing spaces/tab highlighting with crtl-v,
|
||||
patch from Jan Engelhardt (#464738)
|
||||
- update the UTF-8 patch accordingly
|
||||
|
||||
* Tue Sep 2 2008 Jindrich Novy <jnovy@redhat.com> 4.6.2-6.pre1
|
||||
- do not change directory in panel to subshell directory
|
||||
when switched back from subshell (#460633)
|
||||
|
Loading…
Reference in New Issue
Block a user