>From 92e9b67418d3157a00e5d6bced064976ad089456 Mon Sep 17 00:00:00 2001 From: Brand Huntsman Date: Tue, 13 Mar 2018 18:35:41 -0600 Subject: [PATCH] select arrow text once to avoid duplicate error-prone shortcuts Signed-off-by: Brand Huntsman --- src/global.c | 91 ++++++++++++++++++++++++++++++++---------------------------- src/nano.h | 7 +++++ 2 files changed, 56 insertions(+), 42 deletions(-) diff --git a/src/global.c b/src/global.c index 2d4d04f0..0f2b79fe 100644 --- a/src/global.c +++ b/src/global.c @@ -674,6 +674,41 @@ void shortcut_init(void) #define WITHORSANS(help) "" #endif + /* Select arrow text here to avoid duplicate shortcuts. */ + const char *arrow_Left, *arrow_Right, *arrow_Up, *arrow_Down; + const char *arrow_C_Left, *arrow_C_Right, *arrow_C_Up, *arrow_C_Down; + const char *arrow_M_Left, *arrow_M_Right, *arrow_M_Up, *arrow_M_Down; +#ifdef ENABLE_UTF8 + if (using_utf8()) { + arrow_Left = UTF8_ARROW_LEFT; + arrow_Right = UTF8_ARROW_RIGHT; + arrow_Up = UTF8_ARROW_UP; + arrow_Down = UTF8_ARROW_DOWN; + arrow_C_Left = "^"UTF8_ARROW_LEFT; + arrow_C_Right = "^"UTF8_ARROW_RIGHT; + arrow_C_Up = "^"UTF8_ARROW_UP; + arrow_C_Down = "^"UTF8_ARROW_DOWN; + arrow_M_Left = "M-"UTF8_ARROW_LEFT; + arrow_M_Right = "M-"UTF8_ARROW_RIGHT; + arrow_M_Up = "M-"UTF8_ARROW_UP; + arrow_M_Down = "M-"UTF8_ARROW_DOWN; + } else +#endif + { + arrow_Left = "Left"; + arrow_Right = "Right"; + arrow_Up = "Up"; + arrow_Down = "Down"; + arrow_C_Left = "^Left"; + arrow_C_Right = "^Right"; + arrow_C_Up = "^Up"; + arrow_C_Down = "^Down"; + arrow_M_Left = "M-Left"; + arrow_M_Right = "M-Right"; + arrow_M_Up = "M-Up"; + arrow_M_Down = "M-Down"; + } + /* Start populating the different menus with functions. */ add_to_funcs(do_help_void, MMOST & ~MFINDINHELP, @@ -1153,28 +1188,18 @@ void shortcut_init(void) #endif add_to_sclist(MMOST, "^B", 0, do_left, 0); add_to_sclist(MMOST, "^F", 0, do_right, 0); -#ifdef ENABLE_UTF8 - if (using_utf8()) { - add_to_sclist(MMOST, "\xE2\x97\x80", KEY_LEFT, do_left, 0); - add_to_sclist(MMOST, "\xE2\x96\xb6", KEY_RIGHT, do_right, 0); - add_to_sclist(MSOME, "^\xE2\x97\x80", CONTROL_LEFT, do_prev_word_void, 0); - add_to_sclist(MSOME, "^\xE2\x96\xb6", CONTROL_RIGHT, do_next_word_void, 0); + add_to_sclist(MMOST, arrow_Left, KEY_LEFT, do_left, 0); + add_to_sclist(MMOST, arrow_Right, KEY_RIGHT, do_right, 0); + add_to_sclist(MSOME, arrow_C_Left, CONTROL_LEFT, do_prev_word_void, 0); + add_to_sclist(MSOME, arrow_C_Right, CONTROL_RIGHT, do_next_word_void, 0); #ifdef ENABLE_MULTIBUFFER - add_to_sclist(MMAIN, "M-\xE2\x97\x80", ALT_LEFT, switch_to_prev_buffer, 0); - add_to_sclist(MMAIN, "M-\xE2\x96\xb6", ALT_RIGHT, switch_to_next_buffer, 0); + add_to_sclist(MMAIN, arrow_M_Left, ALT_LEFT, switch_to_prev_buffer, 0); + add_to_sclist(MMAIN, arrow_M_Right, ALT_RIGHT, switch_to_next_buffer, 0); #endif #ifndef NANO_TINY - add_to_sclist(MMAIN|MHELP|MBROWSER, "M-\xE2\x96\xb2", ALT_UP, do_findprevious, 0); - add_to_sclist(MMAIN|MHELP|MBROWSER, "M-\xE2\x96\xbc", ALT_DOWN, do_findnext, 0); + add_to_sclist(MMAIN|MHELP|MBROWSER, arrow_M_Up, ALT_UP, do_findprevious, 0); + add_to_sclist(MMAIN|MHELP|MBROWSER, arrow_M_Down, ALT_DOWN, do_findnext, 0); #endif - } else -#endif - { - add_to_sclist(MMOST, "Left", KEY_LEFT, do_left, 0); - add_to_sclist(MMOST, "Right", KEY_RIGHT, do_right, 0); - add_to_sclist(MSOME, "^Left", CONTROL_LEFT, do_prev_word_void, 0); - add_to_sclist(MSOME, "^Right", CONTROL_RIGHT, do_next_word_void, 0); - } add_to_sclist(MMOST, "M-Space", 0, do_prev_word_void, 0); add_to_sclist(MMOST, "^Space", 0, do_next_word_void, 0); add_to_sclist((MMOST & ~MBROWSER), "^A", 0, do_home, 0); @@ -1183,20 +1208,10 @@ void shortcut_init(void) add_to_sclist((MMOST & ~MBROWSER), "End", KEY_END, do_end, 0); add_to_sclist(MMAIN|MHELP|MBROWSER, "^P", 0, do_up_void, 0); add_to_sclist(MMAIN|MHELP|MBROWSER, "^N", 0, do_down_void, 0); -#ifdef ENABLE_UTF8 - if (using_utf8()) { - add_to_sclist(MMAIN|MHELP|MBROWSER, "\xE2\x96\xb2", KEY_UP, do_up_void, 0); - add_to_sclist(MMAIN|MHELP|MBROWSER, "\xE2\x96\xbc", KEY_DOWN, do_down_void, 0); - add_to_sclist(MMAIN|MBROWSER, "^\xE2\x96\xb2", CONTROL_UP, do_prev_block, 0); - add_to_sclist(MMAIN|MBROWSER, "^\xE2\x96\xbc", CONTROL_DOWN, do_next_block, 0); - } else -#endif - { - add_to_sclist(MMAIN|MHELP|MBROWSER, "Up", KEY_UP, do_up_void, 0); - add_to_sclist(MMAIN|MHELP|MBROWSER, "Down", KEY_DOWN, do_down_void, 0); - add_to_sclist(MMAIN|MBROWSER, "^Up", CONTROL_UP, do_prev_block, 0); - add_to_sclist(MMAIN|MBROWSER, "^Down", CONTROL_DOWN, do_next_block, 0); - } + add_to_sclist(MMAIN|MHELP|MBROWSER, arrow_Up, KEY_UP, do_up_void, 0); + add_to_sclist(MMAIN|MHELP|MBROWSER, arrow_Down, KEY_DOWN, do_down_void, 0); + add_to_sclist(MMAIN|MBROWSER, arrow_C_Up, CONTROL_UP, do_prev_block, 0); + add_to_sclist(MMAIN|MBROWSER, arrow_C_Down, CONTROL_DOWN, do_next_block, 0); add_to_sclist(MMAIN, "M-7", 0, do_prev_block, 0); add_to_sclist(MMAIN, "M-8", 0, do_next_block, 0); #ifdef ENABLE_JUSTIFY @@ -1280,16 +1295,8 @@ void shortcut_init(void) #ifdef ENABLE_HISTORIES add_to_sclist(MWHEREIS|MREPLACE|MREPLACEWITH|MWHEREISFILE|MFINDINHELP|MEXTCMD, "^P", 0, get_history_older_void, 0); add_to_sclist(MWHEREIS|MREPLACE|MREPLACEWITH|MWHEREISFILE|MFINDINHELP|MEXTCMD, "^N", 0, get_history_newer_void, 0); -#ifdef ENABLE_UTF8 - if (using_utf8()) { - add_to_sclist(MWHEREIS|MREPLACE|MREPLACEWITH|MWHEREISFILE|MFINDINHELP|MEXTCMD, "\xE2\x96\xb2", KEY_UP, get_history_older_void, 0); - add_to_sclist(MWHEREIS|MREPLACE|MREPLACEWITH|MWHEREISFILE|MFINDINHELP|MEXTCMD, "\xE2\x96\xbc", KEY_DOWN, get_history_newer_void, 0); - } else -#endif - { - add_to_sclist(MWHEREIS|MREPLACE|MREPLACEWITH|MWHEREISFILE|MFINDINHELP|MEXTCMD, "Up", KEY_UP, get_history_older_void, 0); - add_to_sclist(MWHEREIS|MREPLACE|MREPLACEWITH|MWHEREISFILE|MFINDINHELP|MEXTCMD, "Down", KEY_DOWN, get_history_newer_void, 0); - } + add_to_sclist(MWHEREIS|MREPLACE|MREPLACEWITH|MWHEREISFILE|MFINDINHELP|MEXTCMD, arrow_Up, KEY_UP, get_history_older_void, 0); + add_to_sclist(MWHEREIS|MREPLACE|MREPLACEWITH|MWHEREISFILE|MFINDINHELP|MEXTCMD, arrow_Down, KEY_DOWN, get_history_newer_void, 0); #endif #ifdef ENABLE_BROWSER add_to_sclist(MWHEREISFILE, "^Y", 0, to_first_file, 0); diff --git a/src/nano.h b/src/nano.h index d3f87860..9232d259 100644 --- a/src/nano.h +++ b/src/nano.h @@ -642,4 +642,11 @@ enum /* The largest size_t number that doesn't have the high bit set. */ #define HIGHEST_POSITIVE ((~(size_t)0) >> 1) +#ifdef ENABLE_UTF8 +#define UTF8_ARROW_LEFT "\xE2\x97\x80" +#define UTF8_ARROW_RIGHT "\xE2\x96\xb6" +#define UTF8_ARROW_UP "\xE2\x96\xb2" +#define UTF8_ARROW_DOWN "\xE2\x96\xbc" +#endif + #endif /* !NANO_H */ -- 2.16.1