From bff6a905af77d4714650195374789544fa3b1bf1 Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Tue, 28 Jul 2015 19:39:34 +0000 Subject: [PATCH] Reenabling SIGWINCH-es also when invocation of the formatter fails, and correcting some comments. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5324 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 5 +++++ src/nano.c | 5 +++-- src/text.c | 14 +++++++------- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 327af02c..919bd71d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-07-28 Benno Schulenberg + * src/text.c (do_formatter), src/nano.c (allow_pending_sigwinch): + Reenable SIGWINCH-es also when invoking the formatter fails, and + correct some comments. + 2015-07-26 Benno Schulenberg * src/search.c (do_replace_loop): When doing regex replacements, find each zero-length match only once. This fixes Savannah bug #45626. diff --git a/src/nano.c b/src/nano.c index 84329905..2556c2af 100644 --- a/src/nano.c +++ b/src/nano.c @@ -1396,12 +1396,13 @@ void regenerate_screen(void) total_refresh(); } -/* If allow is TRUE, block any SIGWINCH signals that we get, so that we - * can deal with them later. If allow is FALSE, unblock any SIGWINCH +/* If allow is FALSE, block any SIGWINCH signals that we get, so that + * we can deal with them later. If allow is TRUE, unblock any SIGWINCH * signals that we have, so that we can deal with them now. */ void allow_pending_sigwinch(bool allow) { sigset_t winch; + sigemptyset(&winch); sigaddset(&winch, SIGWINCH); sigprocmask(allow ? SIG_UNBLOCK : SIG_BLOCK, &winch, NULL); diff --git a/src/text.c b/src/text.c index 0e410b50..3713cbc1 100644 --- a/src/text.c +++ b/src/text.c @@ -3292,8 +3292,8 @@ void do_formatter(void) } #ifndef NANO_TINY - /* Don't handle a pending SIGWINCH until the alternate format checker - * is finished and we've loaded the format-checked file back in. */ + /* Don't handle any SIGWINCHes until the formatter has finished and + * we've loaded the reformatted file back in. */ allow_pending_sigwinch(FALSE); #endif @@ -3323,17 +3323,17 @@ void do_formatter(void) do_gotopos(lineno_save, current_x_save, current_y_save, pww_save); set_modified(); -#ifndef NANO_TINY - /* Handle a pending SIGWINCH again. */ - allow_pending_sigwinch(TRUE); -#endif - finalstatus = _("Finished formatting"); } unlink(temp); free(temp); +#ifndef NANO_TINY + /* Handle SIGWINCHes again. */ + allow_pending_sigwinch(TRUE); +#endif + /* If the formatter printed any error messages onscreen, make * sure that they're cleared off. */ total_refresh(); -- 2.39.5