]> git.wh0rd.org Git - nano.git/commitdiff
handle statusbar blanking in one place instead of many, so that it
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Sun, 21 May 2006 21:23:21 +0000 (21:23 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Sun, 21 May 2006 21:23:21 +0000 (21:23 +0000)
always works consistently, per Benno Schulenberg's patch (with a few
tweaks of mine); also, blank the statusbar after 26 keystrokes instead
of 25, for compatibility with Pico

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

ChangeLog
src/browser.c
src/cut.c
src/move.c
src/text.c
src/winio.c

index 8175f2d486e09d7a4469925bb992312fb99dc0de..3d5223e206c5ad27f5a084c8dc06f72b64cbc797 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -82,6 +82,14 @@ CVS code -
          resizes more consistent.  Changes to handle_sigwinch(),
          main(), get_kbinput(), parse_kbinput(), get_byte_kbinput(),
          and get_unicode_kbinput(); removal of reset_kbinput(). (DLR)
+       - Handle statusbar blanking in one place instead of many, so
+         that it always works consistently.  Changes to do_browser(),
+         do_cut_text(), do_uncut_text(), do_first_line(),
+         do_last_line(), do_page_up(), do_page_down(), do_para_begin(),
+         do_para_end(), do_para_end(), do_next_word(), do_prev_word(),
+         do_home(), do_end(), do_up(), do_scroll_up(), do_down(),
+         do_scroll_down(), do_left(), do_right(), do_indent_marked(),
+         and get_kbinput(). (Benno Schulenberg, minor tweaks by DLR)
 - browser.c:
   do_browser()
        - Reference NANO_GOTODIR_(ALT|F)?KEY instead of
@@ -259,6 +267,9 @@ CVS code -
        - Properly display double-column characters if they're past the
          first virtual page and their first column is covered by the
          "$" displayed at the beginning of the line. (DLR)
+  statusbar()
+       - Blank the statusbar after 26 keystrokes instead of 25, for
+         conpatibility with Pico. (DLR)
   edit_draw()
        - Properly ignore zero-length regexes in multi-line regexes as
          well as single-line ones.  This avoids a segfault when trying
index a3d5cc5547123e0c014cf0c3e2534a38ef98155b..d1b206f5d77d9d0237090fb75ce92a22a5d2acb6 100644 (file)
@@ -100,8 +100,6 @@ char *do_browser(char *path, DIR *dir)
        MEVENT mevent;
 #endif
 
-       check_statusblank();
-
        /* Compute the line number we're on now, so that we don't divide
         * by zero. */
        fileline = selected;
index ff3e399fae7d11e06870a4f8b26e28de992c2500..94c6f98cd1c02e80d363c5d84685a094efcd6e04 100644 (file)
--- a/src/cut.c
+++ b/src/cut.c
@@ -133,8 +133,6 @@ void do_cut_text(
 
     assert(openfile->current != NULL && openfile->current->data != NULL);
 
-    check_statusblank();
-
     /* If keep_cutbuffer is FALSE and the cutbuffer isn't empty, blow
      * away the text in the cutbuffer. */
     if (!keep_cutbuffer && cutbuffer != NULL) {
@@ -254,8 +252,6 @@ void do_uncut_text(void)
     wrap_reset();
 #endif
 
-    check_statusblank();
-
     /* If the cutbuffer is empty, get out. */
     if (cutbuffer == NULL)
        return;
index ae725a68f342c9ead38c6ab1c223b573e72e6552..da9aaa219caef24ace06bf523329725355989481 100644 (file)
@@ -32,8 +32,6 @@ void do_first_line(void)
     const filestruct *current_save = openfile->current;
     size_t pww_save = openfile->placewewant;
 
-    check_statusblank();
-
     openfile->current = openfile->fileage;
     openfile->current_x = 0;
     openfile->placewewant = 0;
@@ -47,8 +45,6 @@ void do_last_line(void)
     const filestruct *current_save = openfile->current;
     size_t pww_save = openfile->placewewant;
 
-    check_statusblank();
-
     openfile->current = openfile->filebot;
     openfile->current_x = strlen(openfile->filebot->data);
     openfile->placewewant = xplustabs();
@@ -62,8 +58,6 @@ void do_page_up(void)
 {
     int i;
 
-    check_statusblank();
-
 #ifndef DISABLE_WRAPPING
     wrap_reset();
 #endif
@@ -103,8 +97,6 @@ void do_page_down(void)
 {
     int i;
 
-    check_statusblank();
-
 #ifndef DISABLE_WRAPPING
     wrap_reset();
 #endif
@@ -149,8 +141,6 @@ void do_para_begin(bool allow_update)
     const filestruct *current_save = openfile->current;
     const size_t pww_save = openfile->placewewant;
 
-    check_statusblank();
-
     if (openfile->current != openfile->fileage) {
        do {
            openfile->current = openfile->current->prev;
@@ -183,8 +173,6 @@ void do_para_end(bool allow_update)
     const filestruct *const current_save = openfile->current;
     const size_t pww_save = openfile->placewewant;
 
-    check_statusblank();
-
     while (openfile->current != openfile->filebot &&
        !inpar(openfile->current))
        openfile->current = openfile->current->next;
@@ -233,8 +221,6 @@ bool do_next_word(bool allow_punct, bool allow_update)
 
     assert(openfile->current != NULL && openfile->current->data != NULL);
 
-    check_statusblank();
-
     char_mb = charalloc(mb_cur_max());
 
     /* Move forward until we find the character after the last letter of
@@ -331,8 +317,6 @@ bool do_prev_word(bool allow_punct, bool allow_update)
 
     assert(openfile->current != NULL && openfile->current->data != NULL);
 
-    check_statusblank();
-
     char_mb = charalloc(mb_cur_max());
 
     /* Move backward until we find the character before the first letter
@@ -460,8 +444,6 @@ void do_home(void)
 {
     size_t pww_save = openfile->placewewant;
 
-    check_statusblank();
-
 #ifndef NANO_TINY
     if (ISSET(SMART_HOME)) {
        size_t current_x_save = openfile->current_x;
@@ -490,8 +472,6 @@ void do_end(void)
 {
     size_t pww_save = openfile->placewewant;
 
-    check_statusblank();
-
     openfile->current_x = strlen(openfile->current->data);
     openfile->placewewant = xplustabs();
 
@@ -502,8 +482,6 @@ void do_end(void)
 /* Move up one line. */
 void do_up(void)
 {
-    check_statusblank();
-
 #ifndef DISABLE_WRAPPING
     wrap_reset();
 #endif
@@ -542,8 +520,6 @@ void do_up(void)
 /* Scroll up one line without scrolling the cursor. */
 void do_scroll_up(void)
 {
-    check_statusblank();
-
 #ifndef DISABLE_WRAPPING
     wrap_reset();
 #endif
@@ -567,8 +543,6 @@ void do_scroll_up(void)
 /* Move down one line. */
 void do_down(void)
 {
-    check_statusblank();
-
 #ifndef DISABLE_WRAPPING
     wrap_reset();
 #endif
@@ -607,8 +581,6 @@ void do_down(void)
 /* Scroll down one line without scrolling the cursor. */
 void do_scroll_down(void)
 {
-    check_statusblank();
-
 #ifndef DISABLE_WRAPPING
     wrap_reset();
 #endif
@@ -634,8 +606,6 @@ void do_left(void)
 {
     size_t pww_save = openfile->placewewant;
 
-    check_statusblank();
-
     if (openfile->current_x > 0)
        openfile->current_x = move_mbleft(openfile->current->data,
                openfile->current_x);
@@ -655,8 +625,6 @@ void do_right(void)
 {
     size_t pww_save = openfile->placewewant;
 
-    check_statusblank();
-
     assert(openfile->current_x <= strlen(openfile->current->data));
 
     if (openfile->current->data[openfile->current_x] != '\0')
index e8d986572b191c6c25fed5504822ccdab4caca01..6cad78050c7214ea45784d942a664b9378f4c415 100644 (file)
@@ -215,8 +215,6 @@ void do_indent_marked(ssize_t cols)
 
     assert(openfile->current != NULL && openfile->current->data != NULL);
 
-    check_statusblank();
-
     /* If the mark isn't on, indicate it on the statusbar and get
      * out. */
     if (!openfile->mark_set) {
index 412da23fad084f40ca092beb688d09e17f484431..2381b6f870fda5776fb8ef6550ca79207ebc5eac 100644 (file)
@@ -316,6 +316,11 @@ int get_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
      * we get a recognized value or sequence. */
     while ((kbinput = parse_kbinput(win, meta_key, func_key)) == ERR);
 
+    /* If we didn't read from the statusbar prompt, blank the statusbar
+     * if we need to. */
+    if (win != bottomwin)
+       check_statusblank();
+
     return kbinput;
 }
 
@@ -2153,13 +2158,13 @@ void statusbar(const char *msg, ...)
 
     /* If we're doing quick statusbar blanking, and constant cursor
      * position display is off, blank the statusbar after only one
-     * keystroke.  Otherwise, blank it after twenty-five keystrokes,
-     * as Pico does. */
+     * keystroke.  Otherwise, blank it after twenty-six keystrokes, as
+     * Pico does. */
     statusblank =
 #ifndef NANO_TINY
        ISSET(QUICK_BLANK) && !ISSET(CONST_UPDATE) ? 1 :
 #endif
-       25;
+       26;
 }
 
 /* Display the shortcut list in s on the last two rows of the bottom