tweaks: exclude some suspension code from the tiny version
The SIGCONT handler needs to stay, so that also in the tiny version a 'fg' can properly resume from an external SIGTSTP.master
parent
93df6ab385
commit
d14d9069cd
11
src/global.c
11
src/global.c
|
@ -622,9 +622,9 @@ void shortcut_init(void)
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
const char *wordcount_gist =
|
const char *wordcount_gist =
|
||||||
N_("Count the number of words, lines, and characters");
|
N_("Count the number of words, lines, and characters");
|
||||||
|
const char *suspend_gist = N_("Suspend the editor (return to the shell)");
|
||||||
#endif
|
#endif
|
||||||
const char *refresh_gist = N_("Refresh (redraw) the current screen");
|
const char *refresh_gist = N_("Refresh (redraw) the current screen");
|
||||||
const char *suspend_gist = N_("Suspend the editor (return to the shell)");
|
|
||||||
#ifdef ENABLE_WORDCOMPLETION
|
#ifdef ENABLE_WORDCOMPLETION
|
||||||
const char *completion_gist = N_("Try and complete the current word");
|
const char *completion_gist = N_("Try and complete the current word");
|
||||||
#endif
|
#endif
|
||||||
|
@ -983,14 +983,15 @@ void shortcut_init(void)
|
||||||
add_to_funcs(do_verbatim_input, MMAIN,
|
add_to_funcs(do_verbatim_input, MMAIN,
|
||||||
N_("Verbatim"), WITHORSANS(verbatim_gist), BLANKAFTER, NOVIEW);
|
N_("Verbatim"), WITHORSANS(verbatim_gist), BLANKAFTER, NOVIEW);
|
||||||
|
|
||||||
|
#ifndef NANO_TINY
|
||||||
|
add_to_funcs(do_suspend, MMAIN,
|
||||||
|
N_("Suspend"), WITHORSANS(suspend_gist), TOGETHER, VIEW);
|
||||||
|
#endif
|
||||||
#ifdef ENABLE_HELP
|
#ifdef ENABLE_HELP
|
||||||
add_to_funcs(full_refresh, MMAIN,
|
add_to_funcs(full_refresh, MMAIN,
|
||||||
N_("Refresh"), WITHORSANS(refresh_gist), TOGETHER, VIEW);
|
N_("Refresh"), WITHORSANS(refresh_gist), BLANKAFTER, VIEW);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
add_to_funcs(do_suspend, MMAIN,
|
|
||||||
N_("Suspend"), WITHORSANS(suspend_gist), BLANKAFTER, VIEW);
|
|
||||||
|
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
add_to_funcs(do_indent, MMAIN,
|
add_to_funcs(do_indent, MMAIN,
|
||||||
N_("Indent"), WITHORSANS(indent_gist), TOGETHER, NOVIEW);
|
N_("Indent"), WITHORSANS(indent_gist), TOGETHER, NOVIEW);
|
||||||
|
|
10
src/nano.c
10
src/nano.c
|
@ -897,16 +897,16 @@ void signal_init(void)
|
||||||
/* Trap SIGWINCH because we want to handle window resizes. */
|
/* Trap SIGWINCH because we want to handle window resizes. */
|
||||||
deed.sa_handler = handle_sigwinch;
|
deed.sa_handler = handle_sigwinch;
|
||||||
sigaction(SIGWINCH, &deed, NULL);
|
sigaction(SIGWINCH, &deed, NULL);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* In the suspend and continue handlers, block all other signals.
|
|
||||||
* If we don't do this, other stuff interrupts them! */
|
|
||||||
sigfillset(&deed.sa_mask);
|
|
||||||
#ifdef SIGTSTP
|
#ifdef SIGTSTP
|
||||||
|
/* Prevent the suspend handler from getting interrupted. */
|
||||||
|
sigfillset(&deed.sa_mask);
|
||||||
deed.sa_handler = suspend_nano;
|
deed.sa_handler = suspend_nano;
|
||||||
sigaction(SIGTSTP, &deed, NULL);
|
sigaction(SIGTSTP, &deed, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
#endif /* !NANO_TINY */
|
||||||
#ifdef SIGCONT
|
#ifdef SIGCONT
|
||||||
|
sigfillset(&deed.sa_mask);
|
||||||
deed.sa_handler = continue_nano;
|
deed.sa_handler = continue_nano;
|
||||||
sigaction(SIGCONT, &deed, NULL);
|
sigaction(SIGCONT, &deed, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
@ -938,6 +938,7 @@ void handle_crash(int signal)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef NANO_TINY
|
||||||
/* Handler for SIGTSTP (suspend). */
|
/* Handler for SIGTSTP (suspend). */
|
||||||
void suspend_nano(int signal)
|
void suspend_nano(int signal)
|
||||||
{
|
{
|
||||||
|
@ -971,6 +972,7 @@ void do_suspend(void)
|
||||||
|
|
||||||
ran_a_tool = TRUE;
|
ran_a_tool = TRUE;
|
||||||
}
|
}
|
||||||
|
#endif /* !NANO_TINY */
|
||||||
|
|
||||||
/* Handler for SIGCONT (continue after suspend). */
|
/* Handler for SIGCONT (continue after suspend). */
|
||||||
void continue_nano(int signal)
|
void continue_nano(int signal)
|
||||||
|
|
Loading…
Reference in New Issue