nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit d8189703b1b45abac93893d32db28da59ffe6618
parent 52087408ef2a6ac6981cb8c5e4daaaca9cf78f4a
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date:   Sun, 22 Jan 2017 14:09:15 -0600

tweaks: prepare for improvements to do_home() and do_end()

These improvements will eventually make do_home() and do_end() take
parameters.  Since the global function lists can hold only functions
without parameters, preemptively add do_home_void() and do_end_void(),
and make the global function lists use them.

Diffstat:
Msrc/global.c | 16++++++++--------
Msrc/move.c | 10++++++++++
Msrc/prompt.c | 4++--
Msrc/proto.h | 2++
Msrc/rcfile.c | 2+-
5 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/src/global.c b/src/global.c @@ -831,9 +831,9 @@ void shortcut_init(void) add_to_funcs(do_next_word_void, MMAIN, N_("Next Word"), IFSCHELP(nano_nextword_msg), TOGETHER, VIEW); - add_to_funcs(do_home, MMAIN, + add_to_funcs(do_home_void, MMAIN, N_("Home"), IFSCHELP(nano_home_msg), TOGETHER, VIEW); - add_to_funcs(do_end, MMAIN, + add_to_funcs(do_end_void, MMAIN, N_("End"), IFSCHELP(nano_end_msg), TOGETHER, VIEW); add_to_funcs(do_up_void, MMAIN|MBROWSER, @@ -1114,10 +1114,10 @@ void shortcut_init(void) } 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); - add_to_sclist((MMOST & ~MBROWSER), "Home", KEY_HOME, do_home, 0); - add_to_sclist((MMOST & ~MBROWSER), "^E", 0, do_end, 0); - add_to_sclist((MMOST & ~MBROWSER), "End", KEY_END, do_end, 0); + add_to_sclist((MMOST & ~MBROWSER), "^A", 0, do_home_void, 0); + add_to_sclist((MMOST & ~MBROWSER), "Home", KEY_HOME, do_home_void, 0); + add_to_sclist((MMOST & ~MBROWSER), "^E", 0, do_end_void, 0); + add_to_sclist((MMOST & ~MBROWSER), "End", KEY_END, do_end_void, 0); add_to_sclist(MMAIN|MHELP|MBROWSER, "^P", 0, do_up_void, 0); add_to_sclist(MMAIN|MHELP|MBROWSER, "Up", KEY_UP, do_up_void, 0); add_to_sclist(MMAIN|MHELP|MBROWSER, "^N", 0, do_down_void, 0); @@ -1489,9 +1489,9 @@ sc *strtosc(const char *input) !strcasecmp(input, "nextline")) s->scfunc = do_down_void; else if (!strcasecmp(input, "home")) - s->scfunc = do_home; + s->scfunc = do_home_void; else if (!strcasecmp(input, "end")) - s->scfunc = do_end; + s->scfunc = do_end_void; else if (!strcasecmp(input, "pageup") || !strcasecmp(input, "prevpage")) s->scfunc = do_page_up; diff --git a/src/move.c b/src/move.c @@ -373,6 +373,11 @@ void do_home(void) update_line(openfile->current, openfile->current_x); } +void do_home_void(void) +{ + do_home(); +} + /* Move to the end of the current line. */ void do_end(void) { @@ -387,6 +392,11 @@ void do_end(void) ensure_line_is_visible(); } +void do_end_void(void) +{ + do_end(); +} + /* If scroll_only is FALSE, move up one line. If scroll_only is TRUE, * scroll up one line without scrolling the cursor. */ void do_up(bool scroll_only) diff --git a/src/prompt.c b/src/prompt.c @@ -125,9 +125,9 @@ int do_statusbar_input(bool *ran_func, bool *finished) else if (s->scfunc == do_next_word_void) do_statusbar_next_word(); #endif - else if (s->scfunc == do_home) + else if (s->scfunc == do_home_void) do_statusbar_home(); - else if (s->scfunc == do_end) + else if (s->scfunc == do_end_void) do_statusbar_end(); /* When in restricted mode at the "Write File" prompt and the * filename isn't blank, disallow any input and deletion. */ diff --git a/src/proto.h b/src/proto.h @@ -386,7 +386,9 @@ bool do_next_word(bool allow_punct, bool allow_update); void do_next_word_void(void); void ensure_line_is_visible(void); void do_home(void); +void do_home_void(void); void do_end(void); +void do_end_void(void); void do_up(bool scroll_only); void do_up_void(void); void do_down(bool scroll_only); diff --git a/src/rcfile.c b/src/rcfile.c @@ -350,7 +350,7 @@ void parse_syntax(char *ptr) bool is_universal(void (*func)) { if (func == do_left || func == do_right || - func == do_home || func == do_end || + func == do_home_void || func == do_end_void || func == do_prev_word_void || func == do_next_word_void || func == do_verbatim_input || func == do_cut_text_void || func == do_delete || func == do_backspace ||