]> git.wh0rd.org Git - nano.git/commitdiff
fix color breakage; also, in main(), when opening files with
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Sat, 16 Jul 2005 07:06:36 +0000 (07:06 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Sat, 16 Jul 2005 07:06:36 +0000 (07:06 +0000)
"+LINE,COLUMN" arguments on the command line, don't update the screen
when moving to their specified lines and columns

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

ChangeLog
src/color.c
src/files.c
src/nano.c
src/proto.h
src/search.c

index 33f450b63778032f15718a1b6d8dc28497a8e56f..5dcf1744d9e5b428ad0fd5fd491eb752b3a8a040 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -84,6 +84,10 @@ CVS code -
   allow_pending_sigwinch()
        - Simplify by using the "?" operator instead of an if clause.
          (DLR)
+  main()
+       - When opening files with "+LINE,COLUMN" arguments on the
+         command line, don't update the screen when moving to their
+         specified lines and columns. (DLR)
 - nano.h:
        - Since we only use vsnprintf() now, remove the #ifdef block for
          HAVE_SNPRINTF. (DLR)
@@ -103,6 +107,9 @@ CVS code -
        - Blank out last_replace properly again just before displaying
          the "Replace" prompt. (DLR, found by Mike Frysinger)
        - Remove unnecessary renumber(). (DLR)
+  do_gotolinecolumn()
+       - Add parameter allow_update to control whether the screen is
+         updated after moving. (DLR)
 - winio.c:
   edit_scroll(), edit_redraw(), edit_refresh()
        - Clean up and simplify. (DLR)
index c54a7bf80c7408f7dfe49e87ec4e681f480aca79..b1085822802eb59d0e679f283ec80bead84fb073 100644 (file)
@@ -161,6 +161,8 @@ void color_update(void)
                REG_EXTENDED | (tmpcolor->icase ? REG_ICASE : 0));
        }
     }
+
+    color_init();
 }
 
 #endif /* ENABLE_COLOR */
index 94fb737742d399527bd03b23acd72829f40f338f..d4bba67fb2c8631c66b366863f8ae7e18c86e089 100644 (file)
@@ -1586,10 +1586,8 @@ int write_file(const char *name, FILE *f_open, bool tmp, int append,
                realname);
 #ifdef ENABLE_COLOR
            /* We might have changed the filename, so update the colors
-            * to account for it, and make sure we're using the updated
-            * colors, if applicable. */
+            * to account for it. */
            color_update();
-           color_init();
 
            /* If color syntaxes are available and turned on, we need to
             * call edit_refresh(). */
index 64f2ce181fa0c1247e383dbb365d5e83650ac1aa..4533524bc2696b71d52db742f4ac52af0757b934 100644 (file)
@@ -4676,7 +4676,8 @@ int main(int argc, char **argv)
                open_buffer(argv[i]);
 
                if (iline > 1 || icol > 1) {
-                   do_gotolinecolumn(iline, icol, FALSE, FALSE, FALSE);
+                   do_gotolinecolumn(iline, icol, FALSE, FALSE, FALSE,
+                       FALSE);
                    iline = 1;
                    icol = 1;
                }
@@ -4710,7 +4711,8 @@ int main(int argc, char **argv)
 #endif
 
     if (startline > 1 || startcol > 1)
-       do_gotolinecolumn(startline, startcol, FALSE, FALSE, FALSE);
+       do_gotolinecolumn(startline, startcol, FALSE, FALSE, FALSE,
+               FALSE);
 
     display_main_list();
 
index 8d8ad854f67f0d47ca3c5effecf3f7ba9edad80b..38a1de2ff98ab5b6003749844944b2995f986aad 100644 (file)
@@ -503,7 +503,7 @@ ssize_t do_replace_loop(const char *needle, const filestruct
        *canceled);
 void do_replace(void);
 void do_gotolinecolumn(ssize_t line, ssize_t column, bool use_answer,
-       bool interactive, bool save_pos);
+       bool interactive, bool save_pos, bool allow_update);
 void do_gotolinecolumn_void(void);
 #if defined(ENABLE_MULTIBUFFER) || !defined(DISABLE_SPELLER)
 void do_gotopos(ssize_t line, size_t pos_x, ssize_t pos_y, size_t
index 365a9f9bc7a8988a93bbb436a5fd96bfa49b5e38..f3e263acf8058fd2589b12ea2eda73e07d6f4734 100644 (file)
@@ -244,7 +244,8 @@ int search_init(bool replacing, bool use_answer)
                return -2;      /* Call the opposite search function. */
            case NANO_TOGOTOLINE_KEY:
                do_gotolinecolumn(openfile->current->lineno,
-                       openfile->placewewant + 1, TRUE, TRUE, FALSE);
+                       openfile->placewewant + 1, TRUE, TRUE, FALSE,
+                       TRUE);
                                /* Put answer up on the statusbar and
                                 * fall through. */
            default:
@@ -968,12 +969,15 @@ void do_replace(void)
 
 /* Go to the specified line and column, or ask for them if interactive
  * is TRUE.  Save the x-coordinate and y-coordinate if save_pos is TRUE.
- * Note that both the line and column numbers should be one-based. */
+ * Update the screen afterwards if allow_update is TRUE.  Note that both
+ * the line and column numbers should be one-based. */
 void do_gotolinecolumn(ssize_t line, ssize_t column, bool use_answer,
-       bool interactive, bool save_pos)
+       bool interactive, bool save_pos, bool allow_update)
 {
-    if (interactive) {         /* Ask for it. */
+    if (interactive) {
        char *ans = mallocstrcpy(NULL, answer);
+
+       /* Ask for it. */
        int i = statusq(FALSE, gotoline_list, use_answer ? ans : "",
 #ifndef NANO_SMALL
                NULL,
@@ -1022,9 +1026,10 @@ void do_gotolinecolumn(ssize_t line, ssize_t column, bool use_answer,
     openfile->current_x = actual_x(openfile->current->data, column - 1);
     openfile->placewewant = column - 1;
 
-    /* If save_pos is TRUE, don't change the cursor position when
-     * updating the edit window. */
-    edit_update(save_pos ? NONE : CENTER);
+    /* If allow_update is TRUE, update the edit window.  If save_pos is
+     * TRUE, don't change the cursor position when doing it. */
+    if (allow_update)
+       edit_update(save_pos ? NONE : CENTER);
 
     display_main_list();
 }
@@ -1032,7 +1037,7 @@ void do_gotolinecolumn(ssize_t line, ssize_t column, bool use_answer,
 void do_gotolinecolumn_void(void)
 {
     do_gotolinecolumn(openfile->current->lineno,
-       openfile->placewewant + 1, FALSE, TRUE, FALSE);
+       openfile->placewewant + 1, FALSE, TRUE, FALSE, TRUE);
 }
 
 #if defined(ENABLE_MULTIBUFFER) || !defined(DISABLE_SPELLER)
@@ -1042,7 +1047,7 @@ void do_gotopos(ssize_t line, size_t pos_x, ssize_t pos_y, size_t
     /* Since do_gotolinecolumn() resets the x-coordinate but not the
      * y-coordinate, set the coordinates up this way. */
     openfile->current_y = pos_y;
-    do_gotolinecolumn(line, pos_x + 1, FALSE, FALSE, TRUE);
+    do_gotolinecolumn(line, pos_x + 1, FALSE, FALSE, TRUE, TRUE);
 
     /* Set the rest of the coordinates up. */
     openfile->placewewant = pos_pww;