]> git.wh0rd.org Git - nano.git/commitdiff
in do_alt_speller(), move the code that replaces the text of the current
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Tue, 8 Nov 2005 19:15:58 +0000 (19:15 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Tue, 8 Nov 2005 19:15:58 +0000 (19:15 +0000)
file with the text of the spell-checked file into its own function,
replace_buffer()

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

ChangeLog
src/files.c
src/proto.h
src/text.c

index a41b98d2d4270156e74a3235290aaa0edb2567a2..12da530c03db7182ba66163f18f662cbfcab6f66 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -94,6 +94,11 @@ CVS code -
 - rcfile.c:
   do_rcfile()
        - Remove unneeded assert. (DLR)
+- text.c:
+  do_alt_speller()
+       - Move the code that replaces the text of the current file with
+         the text of the spell-checked file into its own function,
+         replace_buffer(). (DLR)
 - winio.c:
   nanoget_repaint()
        - Rename parameter inputbuf to buf, for consistency. (DLR)
index 09f665b259355cdcc73f4bc3af79635554761e6a..99f64e82eeb41e243d557e96fa1d7f805d34ba87 100644 (file)
@@ -168,6 +168,39 @@ void open_buffer(const char *filename)
 #endif
 }
 
+#ifndef DISABLE_SPELLER
+/* If it's not "", filename is a file to open.  We blow away the text of
+ * the current buffer, and then open and read the file, if
+ * applicable.  Note that we skip the operating directory test when
+ * doing this. */
+void replace_buffer(const char *filename)
+{
+    FILE *f;
+    int rc;
+       /* rc == -2 means that we have a new file.  -1 means that the
+        * open() failed.  0 means that the open() succeeded. */
+
+    assert(filename != NULL);
+
+    /* If the filename isn't blank, open the file.  Otherwise, treat it
+     * as a new file. */
+    rc = (filename[0] != '\0') ? open_file(filename, TRUE, &f) : -2;
+
+    /* Reinitialize the text of the current buffer. */
+    free_filestruct(openfile->fileage);
+    initialize_buffer_text();
+
+    /* If we have a non-new file, read it in. */
+    if (rc == 0)
+       read_file(f, filename);
+
+    /* Move back to the beginning of the first line of the buffer. */
+    openfile->current = openfile->fileage;
+    openfile->current_x = 0;
+    openfile->placewewant = 0;
+}
+#endif /* !DISABLE_SPELLER */
+
 /* Update the screen to account for the current buffer. */
 void display_buffer(void)
 {
index 7a4ff7db44d37100afd891895f1cd08d9bb859e5..9c3f36338e9b49574112e482229162bc0c85bb9f 100644 (file)
@@ -235,6 +235,9 @@ void make_new_buffer(void);
 void initialize_buffer(void);
 void initialize_buffer_text(void);
 void open_buffer(const char *filename);
+#ifndef DISABLE_SPELLER
+void replace_buffer(const char *filename);
+#endif
 void display_buffer(void);
 #ifdef ENABLE_MULTIBUFFER
 void switch_to_prevnext_buffer(bool next);
index 5cd4f77ed35a06fa2d7ce626b6def6a114acc561..429b07f534ae50551f0a817d9c475e36e8b3011f 100644 (file)
@@ -1836,7 +1836,6 @@ const char *do_alt_speller(char *tempfile_name)
     char *ptr;
     static int arglen = 3;
     static char **spellargs = NULL;
-    FILE *f;
 #ifndef NANO_SMALL
     bool old_mark_set = openfile->mark_set;
     bool added_magicline = FALSE;
@@ -1951,17 +1950,9 @@ const char *do_alt_speller(char *tempfile_name)
     }
 #endif
 
-    /* Reinitialize the text of the current buffer. */
-    free_filestruct(openfile->fileage);
-    initialize_buffer_text();
-
-    /* Reload the temp file.  Open it, read it into the current buffer,
-     * and move back to the beginning of the first line of the
-     * buffer. */
-    open_file(tempfile_name, FALSE, &f);
-    read_file(f, tempfile_name);
-    openfile->current = openfile->fileage;
-    openfile->current_x = 0;
+    /* Replace the text of the current buffer with the spell-checked
+     * text. */
+    replace_buffer(tempfile_name);
 
 #ifndef NANO_SMALL
     if (old_mark_set) {