nano

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

commit f70f67bd109980717c031454469bd06fa7809897
parent 299ab273635bc8603d1c7bd169d3160bd69f29cc
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date:   Sat,  3 Jun 2006 17:31:52 +0000

more miscellaneous minor fixes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3615 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

Diffstat:
MChangeLog | 8++++++++
Msrc/global.c | 4----
Msrc/nano.c | 6++++--
Msrc/proto.h | 1-
Msrc/utils.c | 16+++++++---------
Msrc/winio.c | 2+-
6 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -135,6 +135,9 @@ CVS code - doc/syntax/sh.nanorc, and doc/syntax/tex.nanorc; changes to configure.ac, nano.spec.in, doc/Makefile.am, and m4/Makefile.am; removal of doc/nanorc.sample. (DLR) + - Replace usage of the bool curses_ended with the isendwin() + function, and remove curses_ended. Changes to do_suspend(). + (DLR) - browser.c: do_browser() - Reference NANO_GOTODIR_(ALT|F)?KEY instead of @@ -249,6 +252,8 @@ CVS code - (DLR, found by Benno Schulenberg) renumber() - Remove invalid assert. (DLR, found by Filipe Moreira) + do_suspend() + - Simplify the printing of "Use \"fg\" to return to nano". (DLR) do_input() - Remove redundant check for allow_funcs' being TRUE when we get KEY_MOUSE. (DLR) @@ -327,6 +332,9 @@ CVS code - statusbar message. (Benno Schulenberg) - Unconditionally blank the statusbar as soon as we're finished getting input. (DLR, suggested by Benno Schulenberg) +- utils.c: + nperror() + - Simplify. (DLR) - winio.c: parse_kbinput() - If we get NANO_CONTROL_8, properly handle it in all cases. diff --git a/src/global.c b/src/global.c @@ -208,10 +208,6 @@ regmatch_t regmatches[10]; int reverse_attr = A_REVERSE; /* The curses attribute we use for reverse video. */ -bool curses_ended = FALSE; - /* Whether endwin() has ended curses mode and statusbar() - * should hence write to stderr instead of displaying on the - * statusbar. */ char *homedir = NULL; /* The user's home directory, from $HOME or /etc/passwd. */ diff --git a/src/nano.c b/src/nano.c @@ -532,6 +532,7 @@ void finish(void) blank_statusbar(); wrefresh(bottomwin); + endwin(); /* Restore the old terminal settings. */ @@ -555,7 +556,6 @@ void die(const char *msg, ...) va_list ap; endwin(); - curses_ended = TRUE; /* Restore the old terminal settings. */ tcsetattr(0, TCSANOW, &oldterm); @@ -994,8 +994,10 @@ RETSIGTYPE handle_hupterm(int signal) /* Handler for SIGTSTP (suspend). */ RETSIGTYPE do_suspend(int signal) { + /* Temporarily leave curses mode. */ endwin(); - printf("\n\n\n\n\n%s\n", _("Use \"fg\" to return to nano")); + + printf(_("\n\n\n\n\nUse \"fg\" to return to nano\n")); fflush(stdout); /* Restore the old terminal settings. */ diff --git a/src/proto.h b/src/proto.h @@ -138,7 +138,6 @@ extern regmatch_t regmatches[10]; #endif extern int reverse_attr; -extern bool curses_ended; extern char *homedir; diff --git a/src/utils.c b/src/utils.c @@ -355,17 +355,15 @@ const char *strstrwrapper(const char *haystack, const char *needle, return mbstrcasestr(start, needle); } -/* This is a wrapper for the perror() function. The wrapper takes care - * of curses, calls perror() (which writes to stderr), and then - * refreshes the screen. Note that nperror() causes the window to - * flicker once. */ +/* This is a wrapper for the perror() function. The wrapper temporarily + * leaves curses mode, calls perror() (which writes to stderr), and then + * reenters curses mode, updating the screen in the process. Note that + * nperror() causes the window to flicker once. */ void nperror(const char *s) { - /* Leave curses mode and go to the terminal. */ - if (endwin() != ERR) { - perror(s); /* Print the error. */ - total_refresh(); /* Return to curses and refresh. */ - } + endwin(); + perror(s); + doupdate(); } /* This is a wrapper for the malloc() function that properly handles diff --git a/src/winio.c b/src/winio.c @@ -2119,7 +2119,7 @@ void statusbar(const char *msg, ...) /* Curses mode is turned off. If we use wmove() now, it will muck * up the terminal settings. So we just use vfprintf(). */ - if (curses_ended) { + if (isendwin()) { vfprintf(stderr, msg, ap); va_end(ap); return;