Making 'meta_key' and 'func_key' into global variables, instead of
having them declared everywhere and passing them around endlessly. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5039 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
eaf235f1e6
commit
7e5324d164
|
@ -3,6 +3,8 @@
|
|||
with --ignorercfiles, do not try to find one, because that would lead
|
||||
to the magic database being searched, which slows down startup a lot.
|
||||
* src/color.c (color_update): Move some variables to a better place.
|
||||
* src/*: Make 'meta_key' and 'func_key' into global variables, instead
|
||||
of having them declared everywhere and passing them around endlessly.
|
||||
|
||||
2014-06-29 Benno Schulenberg <bensberg@justemail.net>
|
||||
* src/rcfile.c: Fix compilation with --enable-tiny --enable-nanorc.
|
||||
|
|
|
@ -50,7 +50,7 @@ char *do_browser(char *path, DIR *dir)
|
|||
{
|
||||
char *retval = NULL;
|
||||
int kbinput;
|
||||
bool meta_key, func_key, old_const_update = ISSET(CONST_UPDATE);
|
||||
bool old_const_update = ISSET(CONST_UPDATE);
|
||||
char *prev_dir = NULL;
|
||||
/* The directory we were in, if any, before backing up via
|
||||
* browsing to "..". */
|
||||
|
@ -122,7 +122,7 @@ char *do_browser(char *path, DIR *dir)
|
|||
|
||||
old_selected = selected;
|
||||
|
||||
kbinput = get_kbinput(edit, &meta_key, &func_key);
|
||||
kbinput = get_kbinput(edit);
|
||||
|
||||
#ifndef DISABLE_MOUSE
|
||||
if (kbinput == KEY_MOUSE) {
|
||||
|
@ -158,8 +158,8 @@ char *do_browser(char *path, DIR *dir)
|
|||
}
|
||||
#endif /* !DISABLE_MOUSE */
|
||||
|
||||
parse_browser_input(&kbinput, &meta_key);
|
||||
s = get_shortcut(MBROWSER, &kbinput, &meta_key);
|
||||
parse_browser_input(&kbinput);
|
||||
s = get_shortcut(MBROWSER, &kbinput);
|
||||
if (!s)
|
||||
continue;
|
||||
f = sctofunc((sc *) s);
|
||||
|
@ -204,7 +204,6 @@ char *do_browser(char *path, DIR *dir)
|
|||
FALSE,
|
||||
#endif
|
||||
MGOTODIR, ans,
|
||||
&meta_key, &func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
NULL,
|
||||
#endif
|
||||
|
@ -529,9 +528,9 @@ void browser_init(const char *path, DIR *dir)
|
|||
|
||||
/* Convert certain non-shortcut keys into their corresponding shortcut
|
||||
* sequences, for compatibility with Pico. */
|
||||
void parse_browser_input(int *kbinput, bool *meta_key)
|
||||
void parse_browser_input(int *kbinput)
|
||||
{
|
||||
if (!*meta_key) {
|
||||
if (!meta_key) {
|
||||
switch (*kbinput) {
|
||||
case ' ':
|
||||
*kbinput = KEY_NPAGE;
|
||||
|
@ -741,7 +740,6 @@ int filesearch_init(void)
|
|||
{
|
||||
int i = 0;
|
||||
char *buf;
|
||||
bool meta_key, func_key;
|
||||
const sc *s;
|
||||
static char *backupstring = NULL;
|
||||
/* The search string we'll be using. */
|
||||
|
@ -775,7 +773,6 @@ int filesearch_init(void)
|
|||
TRUE,
|
||||
#endif
|
||||
MWHEREISFILE, backupstring,
|
||||
&meta_key, &func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
&search_history,
|
||||
#endif
|
||||
|
@ -805,7 +802,7 @@ int filesearch_init(void)
|
|||
statusbar(_("Cancelled"));
|
||||
return -1;
|
||||
} else {
|
||||
s = get_shortcut(MBROWSER, &i, &meta_key);
|
||||
s = get_shortcut(MBROWSER, &i);
|
||||
if (i == -2 || i == 0) {
|
||||
#ifdef HAVE_REGEX_H
|
||||
/* Use last_search if answer is an empty string, or
|
||||
|
|
10
src/files.c
10
src/files.c
|
@ -1009,7 +1009,7 @@ void do_insertfile(
|
|||
filestruct *edittop_save = openfile->edittop;
|
||||
size_t current_x_save = openfile->current_x;
|
||||
ssize_t current_y_save = openfile->current_y;
|
||||
bool edittop_inside = FALSE, meta_key = FALSE, func_key = FALSE;
|
||||
bool edittop_inside = FALSE;
|
||||
const sc *s;
|
||||
#ifndef NANO_TINY
|
||||
bool right_side_up = FALSE, single_line = FALSE;
|
||||
|
@ -1045,7 +1045,6 @@ void do_insertfile(
|
|||
execute ? MEXTCMD :
|
||||
#endif
|
||||
MINSERTFILE, ans,
|
||||
&meta_key, &func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
NULL,
|
||||
#endif
|
||||
|
@ -1072,7 +1071,7 @@ void do_insertfile(
|
|||
|
||||
ans = mallocstrcpy(ans, answer);
|
||||
|
||||
s = get_shortcut(currmenu, &i, &meta_key);
|
||||
s = get_shortcut(currmenu, &i);
|
||||
|
||||
#ifndef NANO_TINY
|
||||
#ifndef DISABLE_MULTIBUFFER
|
||||
|
@ -2218,7 +2217,7 @@ bool do_writeout(bool exiting)
|
|||
#ifndef DISABLE_EXTRA
|
||||
static bool did_credits = FALSE;
|
||||
#endif
|
||||
bool retval = FALSE, meta_key = FALSE, func_key = FALSE;
|
||||
bool retval = FALSE;
|
||||
const sc *s;
|
||||
|
||||
currmenu = MWRITEFILE;
|
||||
|
@ -2273,7 +2272,6 @@ bool do_writeout(bool exiting)
|
|||
TRUE,
|
||||
#endif
|
||||
MWRITEFILE, ans,
|
||||
&meta_key, &func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
NULL,
|
||||
#endif
|
||||
|
@ -2293,7 +2291,7 @@ bool do_writeout(bool exiting)
|
|||
break;
|
||||
} else {
|
||||
ans = mallocstrcpy(ans, answer);
|
||||
s = get_shortcut(currmenu, &i, &meta_key);
|
||||
s = get_shortcut(currmenu, &i);
|
||||
|
||||
#ifndef DISABLE_BROWSER
|
||||
if (s && s->scfunc == to_files_void) {
|
||||
|
|
|
@ -38,6 +38,11 @@ bool jump_buf_main = FALSE;
|
|||
* SIGWINCH? */
|
||||
#endif
|
||||
|
||||
bool meta_key;
|
||||
/* Whether the current keystroke is a Meta key. */
|
||||
bool func_key;
|
||||
/* Whether the current keystroke is an extended keypad value. */
|
||||
|
||||
#ifndef DISABLE_WRAPJUSTIFY
|
||||
ssize_t fill = 0;
|
||||
/* The column where we will wrap lines. */
|
||||
|
|
12
src/help.c
12
src/help.c
|
@ -37,7 +37,7 @@ static char *help_text = NULL;
|
|||
void do_help(void (*refresh_func)(void))
|
||||
{
|
||||
int kbinput = ERR;
|
||||
bool meta_key, func_key, old_no_help = ISSET(NO_HELP);
|
||||
bool old_no_help = ISSET(NO_HELP);
|
||||
size_t line = 0;
|
||||
/* The line number in help_text of the first displayed help
|
||||
* line. This variable is zero-based. */
|
||||
|
@ -123,7 +123,7 @@ void do_help(void (*refresh_func)(void))
|
|||
|
||||
old_line = line;
|
||||
|
||||
kbinput = get_kbinput(edit, &meta_key, &func_key);
|
||||
kbinput = get_kbinput(edit);
|
||||
|
||||
#ifndef DISABLE_MOUSE
|
||||
if (kbinput == KEY_MOUSE) {
|
||||
|
@ -133,8 +133,8 @@ void do_help(void (*refresh_func)(void))
|
|||
}
|
||||
#endif
|
||||
|
||||
parse_help_input(&kbinput, &meta_key);
|
||||
s = get_shortcut(MHELP, &kbinput, &meta_key);
|
||||
parse_help_input(&kbinput);
|
||||
s = get_shortcut(MHELP, &kbinput);
|
||||
if (!s)
|
||||
continue;
|
||||
f = sctofunc((sc *) s);
|
||||
|
@ -478,9 +478,9 @@ void help_init(void)
|
|||
|
||||
/* Convert certain non-shortcut keys into their corresponding shortcut
|
||||
* sequences. */
|
||||
void parse_help_input(int *kbinput, bool *meta_key)
|
||||
void parse_help_input(int *kbinput)
|
||||
{
|
||||
if (!*meta_key) {
|
||||
if (!meta_key) {
|
||||
switch (*kbinput) {
|
||||
/* For consistency with the file browser. */
|
||||
case ' ':
|
||||
|
|
23
src/nano.c
23
src/nano.c
|
@ -1583,11 +1583,10 @@ void terminal_init(void)
|
|||
}
|
||||
|
||||
/* Read in a character, interpret it as a shortcut or toggle if
|
||||
* necessary, and return it. Set meta_key to TRUE if the character is a
|
||||
* meta sequence, set func_key to TRUE if the character is a function key.
|
||||
* necessary, and return it.
|
||||
* If allow_funcs is FALSE, don't actually run any functions associated
|
||||
* with shortcut keys. */
|
||||
int do_input(bool *meta_key, bool *func_key, bool allow_funcs)
|
||||
int do_input(bool allow_funcs)
|
||||
{
|
||||
int input;
|
||||
/* The character we read in. */
|
||||
|
@ -1601,15 +1600,15 @@ int do_input(bool *meta_key, bool *func_key, bool allow_funcs)
|
|||
bool have_shortcut;
|
||||
|
||||
/* Read in a character. */
|
||||
input = get_kbinput(edit, meta_key, func_key);
|
||||
input = get_kbinput(edit);
|
||||
|
||||
#ifndef DISABLE_MOUSE
|
||||
if (*func_key && input == KEY_MOUSE) {
|
||||
if (func_key && input == KEY_MOUSE) {
|
||||
/* We received a mouse click. */
|
||||
if (do_mouse() == 1)
|
||||
/* The click was on a shortcut -- read in the character
|
||||
* that it was converted into. */
|
||||
input = get_kbinput(edit, meta_key, func_key);
|
||||
input = get_kbinput(edit);
|
||||
else
|
||||
/* The click was invalid or has been handled -- get out. */
|
||||
return ERR;
|
||||
|
@ -1617,7 +1616,7 @@ int do_input(bool *meta_key, bool *func_key, bool allow_funcs)
|
|||
#endif
|
||||
|
||||
/* Check for a shortcut in the main list. */
|
||||
s = get_shortcut(MMAIN, &input, meta_key);
|
||||
s = get_shortcut(MMAIN, &input);
|
||||
|
||||
/* If we got a shortcut from the main list, or a "universal"
|
||||
* edit window shortcut, set have_shortcut to TRUE. */
|
||||
|
@ -1626,11 +1625,11 @@ int do_input(bool *meta_key, bool *func_key, bool allow_funcs)
|
|||
/* If we got a non-high-bit control key, a meta key sequence, or a
|
||||
* function key, and it's not a shortcut or toggle, throw it out. */
|
||||
if (!have_shortcut) {
|
||||
if (is_ascii_cntrl_char(input) || *meta_key || *func_key) {
|
||||
if (is_ascii_cntrl_char(input) || meta_key || func_key) {
|
||||
statusbar(_("Unknown Command"));
|
||||
beep();
|
||||
*meta_key = FALSE;
|
||||
*func_key = FALSE;
|
||||
meta_key = FALSE;
|
||||
func_key = FALSE;
|
||||
input = ERR;
|
||||
}
|
||||
}
|
||||
|
@ -2791,8 +2790,6 @@ int main(int argc, char **argv)
|
|||
display_buffer();
|
||||
|
||||
while (TRUE) {
|
||||
bool meta_key, func_key;
|
||||
|
||||
/* Make sure the cursor is in the edit window. */
|
||||
reset_cursor();
|
||||
wnoutrefresh(edit);
|
||||
|
@ -2821,7 +2818,7 @@ int main(int argc, char **argv)
|
|||
currmenu = MMAIN;
|
||||
|
||||
/* Read in and interpret characters. */
|
||||
do_input(&meta_key, &func_key, TRUE);
|
||||
do_input(TRUE);
|
||||
}
|
||||
|
||||
/* We should never get here. */
|
||||
|
|
40
src/prompt.c
40
src/prompt.c
|
@ -42,14 +42,13 @@ static bool reset_statusbar_x = FALSE;
|
|||
* prompt? */
|
||||
|
||||
/* Read in a character, interpret it as a shortcut or toggle if
|
||||
* necessary, and return it. Set meta_key to TRUE if the character is a
|
||||
* meta sequence, set func_key to TRUE if the character is a function
|
||||
* key, set ran_func to TRUE if we ran a function associated with a
|
||||
* necessary, and return it.
|
||||
* Set ran_func to TRUE if we ran a function associated with a
|
||||
* shortcut key, and set finished to TRUE if we're done after running
|
||||
* or trying to run a function associated with a shortcut key.
|
||||
* refresh_func is the function we will call to refresh the edit window. */
|
||||
int do_statusbar_input(bool *meta_key, bool *func_key,
|
||||
bool *ran_func, bool *finished, void (*refresh_func)(void))
|
||||
int do_statusbar_input(bool *ran_func, bool *finished,
|
||||
void (*refresh_func)(void))
|
||||
{
|
||||
int input;
|
||||
/* The character we read in. */
|
||||
|
@ -65,24 +64,24 @@ int do_statusbar_input(bool *meta_key, bool *func_key,
|
|||
*finished = FALSE;
|
||||
|
||||
/* Read in a character. */
|
||||
input = get_kbinput(bottomwin, meta_key, func_key);
|
||||
input = get_kbinput(bottomwin);
|
||||
|
||||
#ifndef DISABLE_MOUSE
|
||||
/* If we got a mouse click and it was on a shortcut, read in the
|
||||
* shortcut character. */
|
||||
if (*func_key && input == KEY_MOUSE) {
|
||||
if (func_key && input == KEY_MOUSE) {
|
||||
if (do_statusbar_mouse() == 1)
|
||||
input = get_kbinput(bottomwin, meta_key, func_key);
|
||||
input = get_kbinput(bottomwin);
|
||||
else {
|
||||
*meta_key = FALSE;
|
||||
*func_key = FALSE;
|
||||
meta_key = FALSE;
|
||||
func_key = FALSE;
|
||||
input = ERR;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Check for a shortcut in the current list. */
|
||||
s = get_shortcut(currmenu, &input, meta_key);
|
||||
s = get_shortcut(currmenu, &input);
|
||||
|
||||
/* If we got a shortcut from the current list, or a "universal"
|
||||
* statusbar prompt shortcut, set have_shortcut to TRUE. */
|
||||
|
@ -91,10 +90,10 @@ int do_statusbar_input(bool *meta_key, bool *func_key,
|
|||
/* If we got a non-high-bit control key, a meta key sequence, or a
|
||||
* function key, and it's not a shortcut or toggle, throw it out. */
|
||||
if (!have_shortcut) {
|
||||
if (is_ascii_cntrl_char(input) || *meta_key || *func_key) {
|
||||
if (is_ascii_cntrl_char(input) || meta_key || func_key) {
|
||||
beep();
|
||||
*meta_key = FALSE;
|
||||
*func_key = FALSE;
|
||||
meta_key = FALSE;
|
||||
func_key = FALSE;
|
||||
input = ERR;
|
||||
}
|
||||
}
|
||||
|
@ -727,7 +726,6 @@ const sc *get_prompt_string(int *actual, bool allow_tabs,
|
|||
bool allow_files,
|
||||
#endif
|
||||
const char *curranswer,
|
||||
bool *meta_key, bool *func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
filestruct **history_list,
|
||||
#endif
|
||||
|
@ -800,11 +798,10 @@ fprintf(stderr, "get_prompt_string: answer = \"%s\", statusbar_x = %lu\n", answe
|
|||
* this case, disable all keys that would change the text if the
|
||||
* filename isn't blank and we're at the "Write File" prompt. */
|
||||
while (TRUE) {
|
||||
kbinput = do_statusbar_input(meta_key, func_key,
|
||||
&ran_func, &finished, refresh_func);
|
||||
kbinput = do_statusbar_input(&ran_func, &finished, refresh_func);
|
||||
assert(statusbar_x <= strlen(answer));
|
||||
|
||||
s = get_shortcut(currmenu, &kbinput, meta_key);
|
||||
s = get_shortcut(currmenu, &kbinput);
|
||||
|
||||
if (s)
|
||||
if (s->scfunc == do_cancel || s->scfunc == do_enter_void)
|
||||
|
@ -963,7 +960,6 @@ int do_prompt(bool allow_tabs,
|
|||
bool allow_files,
|
||||
#endif
|
||||
int menu, const char *curranswer,
|
||||
bool *meta_key, bool *func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
filestruct **history_list,
|
||||
#endif
|
||||
|
@ -995,7 +991,6 @@ int do_prompt(bool allow_tabs,
|
|||
allow_files,
|
||||
#endif
|
||||
curranswer,
|
||||
meta_key, func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
history_list,
|
||||
#endif
|
||||
|
@ -1119,14 +1114,13 @@ int do_yesno_prompt(bool all, const char *msg)
|
|||
|
||||
do {
|
||||
int kbinput;
|
||||
bool meta_key, func_key;
|
||||
#ifndef DISABLE_MOUSE
|
||||
int mouse_x, mouse_y;
|
||||
#endif
|
||||
|
||||
currmenu = MYESNO;
|
||||
kbinput = get_kbinput(bottomwin, &meta_key, &func_key);
|
||||
s = get_shortcut(currmenu, &kbinput, &meta_key);
|
||||
kbinput = get_kbinput(bottomwin);
|
||||
s = get_shortcut(currmenu, &kbinput);
|
||||
|
||||
if (s && s->scfunc == do_cancel)
|
||||
ok = -1;
|
||||
|
|
23
src/proto.h
23
src/proto.h
|
@ -32,6 +32,9 @@ extern sigjmp_buf jump_buf;
|
|||
extern bool jump_buf_main;
|
||||
#endif
|
||||
|
||||
extern bool meta_key;
|
||||
extern bool func_key;
|
||||
|
||||
#ifndef DISABLE_WRAPJUSTIFY
|
||||
extern ssize_t fill;
|
||||
extern ssize_t wrap_at;
|
||||
|
@ -141,7 +144,7 @@ extern char *homedir;
|
|||
char *do_browser(char *path, DIR *dir);
|
||||
char *do_browse_from(const char *inpath);
|
||||
void browser_init(const char *path, DIR *dir);
|
||||
void parse_browser_input(int *kbinput, bool *meta_key);
|
||||
void parse_browser_input(int *kbinput);
|
||||
void browser_refresh(void);
|
||||
bool browser_select_filename(const char *needle);
|
||||
int filesearch_init(void);
|
||||
|
@ -369,7 +372,7 @@ void thanks_for_all_the_fish(void);
|
|||
#ifndef DISABLE_HELP
|
||||
void do_help(void (*refresh_func)(void));
|
||||
void help_init(void);
|
||||
void parse_help_input(int *kbinput, bool *meta_key);
|
||||
void parse_help_input(int *kbinput);
|
||||
size_t help_line_len(const char *ptr);
|
||||
#endif
|
||||
void do_help_void(void);
|
||||
|
@ -487,15 +490,15 @@ void enable_signals(void);
|
|||
void disable_flow_control(void);
|
||||
void enable_flow_control(void);
|
||||
void terminal_init(void);
|
||||
int do_input(bool *meta_key, bool *func_key, bool allow_funcs);
|
||||
int do_input(bool allow_funcs);
|
||||
#ifndef DISABLE_MOUSE
|
||||
int do_mouse(void);
|
||||
#endif
|
||||
void do_output(char *output, size_t output_len, bool allow_cntrls);
|
||||
|
||||
/* All functions in prompt.c. */
|
||||
int do_statusbar_input(bool *meta_key, bool *func_key,
|
||||
bool *ran_func, bool *finished, void (*refresh_func)(void));
|
||||
int do_statusbar_input(bool *ran_func, bool *finished,
|
||||
void (*refresh_func)(void));
|
||||
#ifndef DISABLE_MOUSE
|
||||
int do_statusbar_mouse(void);
|
||||
#endif
|
||||
|
@ -524,7 +527,6 @@ const sc *get_prompt_string(int *value, bool allow_tabs,
|
|||
bool allow_files,
|
||||
#endif
|
||||
const char *curranswer,
|
||||
bool *meta_key, bool *func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
filestruct **history_list,
|
||||
#endif
|
||||
|
@ -538,7 +540,6 @@ int do_prompt(bool allow_tabs,
|
|||
bool allow_files,
|
||||
#endif
|
||||
int menu, const char *curranswer,
|
||||
bool *meta_key, bool *func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
filestruct **history_list,
|
||||
#endif
|
||||
|
@ -750,10 +751,10 @@ void dump_filestruct_reverse(void);
|
|||
void get_key_buffer(WINDOW *win);
|
||||
size_t get_key_buffer_len(void);
|
||||
void unget_input(int *input, size_t input_len);
|
||||
void unget_kbinput(int kbinput, bool meta_key, bool func_key);
|
||||
void unget_kbinput(int kbinput, bool metakey, bool funckey);
|
||||
int *get_input(WINDOW *win, size_t input_len);
|
||||
int get_kbinput(WINDOW *win, bool *meta_key, bool *func_key);
|
||||
int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key);
|
||||
int get_kbinput(WINDOW *win);
|
||||
int parse_kbinput(WINDOW *win);
|
||||
int get_escape_seq_kbinput(const int *seq, size_t seq_len);
|
||||
int get_escape_seq_abcd(int kbinput);
|
||||
int parse_escape_seq_kbinput(WINDOW *win, int kbinput);
|
||||
|
@ -769,7 +770,7 @@ int *parse_verbatim_kbinput(WINDOW *win, size_t *kbinput_len);
|
|||
#ifndef DISABLE_MOUSE
|
||||
int get_mouseinput(int *mouse_x, int *mouse_y, bool allow_shortcuts);
|
||||
#endif
|
||||
const sc *get_shortcut(int menu, int *kbinput, bool *meta_key);
|
||||
const sc *get_shortcut(int menu, int *kbinput);
|
||||
void blank_line(WINDOW *win, int y, int x, int n);
|
||||
void blank_titlebar(void);
|
||||
void blank_topbar(void);
|
||||
|
|
|
@ -138,7 +138,6 @@ int search_init(bool replacing, bool use_answer)
|
|||
int i = 0;
|
||||
char *buf;
|
||||
sc *s;
|
||||
bool meta_key = FALSE, func_key = FALSE;
|
||||
static char *backupstring = NULL;
|
||||
/* The search string we'll be using. */
|
||||
|
||||
|
@ -177,7 +176,6 @@ int search_init(bool replacing, bool use_answer)
|
|||
TRUE,
|
||||
#endif
|
||||
replacing ? MREPLACE : MWHEREIS, backupstring,
|
||||
&meta_key, &func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
&search_history,
|
||||
#endif
|
||||
|
@ -910,7 +908,6 @@ void do_replace(void)
|
|||
{
|
||||
filestruct *edittop_save, *begin;
|
||||
size_t begin_x, pww_save;
|
||||
bool meta_key = FALSE, func_key = FALSE;
|
||||
ssize_t numreplaced;
|
||||
int i;
|
||||
|
||||
|
@ -953,7 +950,6 @@ void do_replace(void)
|
|||
TRUE,
|
||||
#endif
|
||||
MREPLACEWITH, last_replace,
|
||||
&meta_key, &func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
&replace_history,
|
||||
#endif
|
||||
|
@ -1027,7 +1023,6 @@ void goto_line_posx(ssize_t line, size_t pos_x)
|
|||
void do_gotolinecolumn(ssize_t line, ssize_t column, bool use_answer,
|
||||
bool interactive, bool save_pos, bool allow_update)
|
||||
{
|
||||
bool meta_key = FALSE, func_key = FALSE;
|
||||
const sc *s;
|
||||
|
||||
if (interactive) {
|
||||
|
@ -1039,7 +1034,6 @@ void do_gotolinecolumn(ssize_t line, ssize_t column, bool use_answer,
|
|||
TRUE,
|
||||
#endif
|
||||
MGOTOLINE, use_answer ? ans : "",
|
||||
&meta_key, &func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
NULL,
|
||||
#endif
|
||||
|
@ -1055,7 +1049,7 @@ void do_gotolinecolumn(ssize_t line, ssize_t column, bool use_answer,
|
|||
return;
|
||||
}
|
||||
|
||||
s = get_shortcut(currmenu, &i, &meta_key);
|
||||
s = get_shortcut(currmenu, &i);
|
||||
|
||||
if (s && s->scfunc == gototext_void) {
|
||||
/* Keep answer up on the statusbar. */
|
||||
|
|
12
src/text.c
12
src/text.c
|
@ -1874,7 +1874,6 @@ void do_justify(bool full_justify)
|
|||
bool modified_save = openfile->modified;
|
||||
|
||||
int kbinput;
|
||||
bool meta_key, func_key;
|
||||
const sc *s;
|
||||
|
||||
/* Move to the beginning of the current line, so that justifying at
|
||||
|
@ -2193,8 +2192,8 @@ void do_justify(bool full_justify)
|
|||
|
||||
/* Now get a keystroke and see if it's unjustify. If not, put back
|
||||
* the keystroke and return. */
|
||||
kbinput = do_input(&meta_key, &func_key, FALSE);
|
||||
s = get_shortcut(MMAIN, &kbinput, &meta_key);
|
||||
kbinput = do_input(FALSE);
|
||||
s = get_shortcut(MMAIN, &kbinput);
|
||||
|
||||
if (s && s->scfunc == do_uncut_text) {
|
||||
/* Splice the justify buffer back into the file, but only if we
|
||||
|
@ -2286,7 +2285,6 @@ bool do_int_spell_fix(const char *word)
|
|||
char *save_search, *save_replace;
|
||||
size_t match_len, current_x_save = openfile->current_x;
|
||||
size_t pww_save = openfile->placewewant;
|
||||
bool meta_key = FALSE, func_key = FALSE;
|
||||
filestruct *edittop_save = openfile->edittop;
|
||||
filestruct *current_save = openfile->current;
|
||||
/* Save where we are. */
|
||||
|
@ -2374,7 +2372,6 @@ bool do_int_spell_fix(const char *word)
|
|||
TRUE,
|
||||
#endif
|
||||
MSPELL, word,
|
||||
&meta_key, &func_key,
|
||||
#ifndef DISABLE_HISTORIES
|
||||
NULL,
|
||||
#endif
|
||||
|
@ -3117,7 +3114,6 @@ void do_linter(void)
|
|||
while (1) {
|
||||
ssize_t tmpcol = 1;
|
||||
int kbinput;
|
||||
bool meta_key, func_key;
|
||||
|
||||
if (curlint->colno > 0)
|
||||
tmpcol = curlint->colno;
|
||||
|
@ -3172,8 +3168,8 @@ void do_linter(void)
|
|||
bottombars(MLINTER);
|
||||
}
|
||||
|
||||
kbinput = get_kbinput(bottomwin, &meta_key, &func_key);
|
||||
s = get_shortcut(currmenu, &kbinput, &meta_key);
|
||||
kbinput = get_kbinput(bottomwin);
|
||||
s = get_shortcut(currmenu, &kbinput);
|
||||
tmplint = curlint;
|
||||
|
||||
if (!s)
|
||||
|
|
48
src/winio.c
48
src/winio.c
|
@ -224,17 +224,17 @@ void unget_input(int *input, size_t input_len)
|
|||
}
|
||||
|
||||
/* Put back the character stored in kbinput, putting it in byte range
|
||||
* beforehand. If meta_key is TRUE, put back the Escape character after
|
||||
* putting back kbinput. If func_key is TRUE, put back the function key
|
||||
* beforehand. If metakey is TRUE, put back the Escape character after
|
||||
* putting back kbinput. If funckey is TRUE, put back the function key
|
||||
* (a value outside byte range) without putting it in byte range. */
|
||||
void unget_kbinput(int kbinput, bool meta_key, bool func_key)
|
||||
void unget_kbinput(int kbinput, bool metakey, bool funckey)
|
||||
{
|
||||
if (!func_key)
|
||||
if (!funckey)
|
||||
kbinput = (char)kbinput;
|
||||
|
||||
unget_input(&kbinput, 1);
|
||||
|
||||
if (meta_key) {
|
||||
if (metakey) {
|
||||
kbinput = NANO_CONTROL_3;
|
||||
unget_input(&kbinput, 1);
|
||||
}
|
||||
|
@ -298,20 +298,19 @@ int *get_input(WINDOW *win, size_t input_len)
|
|||
|
||||
/* Read in a single character. If it's ignored, swallow it and go on.
|
||||
* Otherwise, try to translate it from ASCII, meta key sequences, escape
|
||||
* sequences, and/or extended keypad values. Set meta_key to TRUE when
|
||||
* we get a meta key sequence, and set func_key to TRUE when we get an
|
||||
* extended keypad value. Supported extended keypad values consist of
|
||||
* sequences, and/or extended keypad values. Supported extended keypad
|
||||
* values consist of
|
||||
* [arrow key], Ctrl-[arrow key], Shift-[arrow key], Enter, Backspace,
|
||||
* the editing keypad (Insert, Delete, Home, End, PageUp, and PageDown),
|
||||
* the function keypad (F1-F16), and the numeric keypad with NumLock
|
||||
* off. */
|
||||
int get_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
|
||||
int get_kbinput(WINDOW *win)
|
||||
{
|
||||
int kbinput;
|
||||
|
||||
/* Read in a character and interpret it. Continue doing this until
|
||||
* we get a recognized value or sequence. */
|
||||
while ((kbinput = parse_kbinput(win, meta_key, func_key)) == ERR)
|
||||
while ((kbinput = parse_kbinput(win)) == ERR)
|
||||
;
|
||||
|
||||
/* If we read from the edit window, blank the statusbar if we need
|
||||
|
@ -326,13 +325,13 @@ int get_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
|
|||
* sequences into their corresponding key values. Set meta_key to TRUE
|
||||
* when we get a meta key sequence, and set func_key to TRUE when we get
|
||||
* a function key. */
|
||||
int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
|
||||
int parse_kbinput(WINDOW *win)
|
||||
{
|
||||
static int escapes = 0, byte_digits = 0;
|
||||
int *kbinput, retval = ERR;
|
||||
|
||||
*meta_key = FALSE;
|
||||
*func_key = FALSE;
|
||||
meta_key = FALSE;
|
||||
func_key = FALSE;
|
||||
|
||||
/* Read in a character. */
|
||||
if (nodelay_mode) {
|
||||
|
@ -379,7 +378,7 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
|
|||
* meta key sequence mode. Set meta_key to
|
||||
* TRUE, and save the lowercase version of the
|
||||
* non-escape character as the result. */
|
||||
*meta_key = TRUE;
|
||||
meta_key = TRUE;
|
||||
retval = tolower(*kbinput);
|
||||
} else
|
||||
/* One escape followed by a non-escape, and
|
||||
|
@ -469,7 +468,7 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
|
|||
* escape counter, set meta_key to TRUE, and
|
||||
* interpret the escape sequence. */
|
||||
escapes = 0;
|
||||
*meta_key = TRUE;
|
||||
meta_key = TRUE;
|
||||
retval = parse_escape_seq_kbinput(win,
|
||||
*kbinput);
|
||||
}
|
||||
|
@ -649,11 +648,11 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
|
|||
/* If our result is an extended keypad value (i.e. a value
|
||||
* outside of byte range), set func_key to TRUE. */
|
||||
if (retval != ERR)
|
||||
*func_key = !is_byte(retval);
|
||||
func_key = !is_byte(retval);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "parse_kbinput(): kbinput = %d, meta_key = %s, func_key = %s, escapes = %d, byte_digits = %d, retval = %d\n", *kbinput, *meta_key ? "TRUE" : "FALSE", *func_key ? "TRUE" : "FALSE", escapes, byte_digits, retval);
|
||||
fprintf(stderr, "parse_kbinput(): kbinput = %d, meta_key = %s, func_key = %s, escapes = %d, byte_digits = %d, retval = %d\n", *kbinput, meta_key ? "TRUE" : "FALSE", func_key ? "TRUE" : "FALSE", escapes, byte_digits, retval);
|
||||
#endif
|
||||
|
||||
free(kbinput);
|
||||
|
@ -1791,26 +1790,26 @@ int get_mouseinput(int *mouse_x, int *mouse_y, bool allow_shortcuts)
|
|||
* key itself) and meta_key (whether the key is a meta sequence). The
|
||||
* returned shortcut will be the first in the list that corresponds to
|
||||
* the given sequence. */
|
||||
const sc *get_shortcut(int menu, int *kbinput, bool *meta_key)
|
||||
const sc *get_shortcut(int menu, int *kbinput)
|
||||
{
|
||||
sc *s;
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "get_shortcut(): kbinput = %d, meta_key = %s -- ", *kbinput, *meta_key ? "TRUE" : "FALSE");
|
||||
fprintf(stderr, "get_shortcut(): kbinput = %d, meta_key = %s -- ", *kbinput, meta_key ? "TRUE" : "FALSE");
|
||||
#endif
|
||||
|
||||
for (s = sclist; s != NULL; s = s->next) {
|
||||
if ((menu & s->menu) && *kbinput == s->seq
|
||||
&& *meta_key == (s->type == META)) {
|
||||
&& meta_key == (s->type == META)) {
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "matched seq \"%s\", and btw meta was %d (menu is %x from %x)\n",
|
||||
s->keystr, *meta_key, menu, s->menu);
|
||||
s->keystr, meta_key, menu, s->menu);
|
||||
#endif
|
||||
return s;
|
||||
}
|
||||
}
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "matched nothing, btw meta was %d\n", *meta_key);
|
||||
fprintf (stderr, "matched nothing, btw meta was %d\n", meta_key);
|
||||
#endif
|
||||
|
||||
return NULL;
|
||||
|
@ -1820,14 +1819,13 @@ const sc *get_shortcut(int menu, int *kbinput, bool *meta_key)
|
|||
const subnfunc *getfuncfromkey(WINDOW *win)
|
||||
{
|
||||
int kbinput;
|
||||
bool func_key = FALSE, meta_key = FALSE;
|
||||
const sc *s;
|
||||
|
||||
kbinput = parse_kbinput(win, &meta_key, &func_key);
|
||||
kbinput = parse_kbinput(win);
|
||||
if (kbinput == 0)
|
||||
return NULL;
|
||||
|
||||
s = get_shortcut(currmenu, &kbinput, &meta_key);
|
||||
s = get_shortcut(currmenu, &kbinput);
|
||||
if (!s)
|
||||
return NULL;
|
||||
|
||||
|
|
Loading…
Reference in New Issue