]> git.wh0rd.org Git - nano.git/commitdiff
revert erroneous change
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Tue, 11 Jul 2006 18:12:24 +0000 (18:12 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Tue, 11 Jul 2006 18:12:24 +0000 (18:12 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3776 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/browser.c
src/proto.h

index e1ec571e5d9067e3e7705c65f874df6dc3cf20a7..4531107b77985cb808cc529d96bf670f49b16607 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -34,8 +34,6 @@ CVS code -
        - After entering "..", select the directory we were in before
          instead of the first filename in the list, as Pico does. (DLR)
        - Simplify screen update handling and exiting. (DLR)
-       - Move the opening of path here from do_browse_from(), so that
-         we no longer need a DIR* parameter. (DLR)
   do_browse_from()
        - During the operating directory check, if path isn't NULL,
          don't bother freeing it before mallocstrcpy()ing operating_dir
index b8d59b20ecd717e23a021ba5d380c836ed65da38..f48e8c2472f922f119ce40c571ff47ab0e7d17fb 100644 (file)
@@ -46,7 +46,7 @@ static bool search_last_file = FALSE;
 
 /* Our main file browser function.  path is the tilde-expanded path to
  * start browsing from. */
-char *do_browser(char *path)
+char *do_browser(char *path, DIR *dir)
 {
     char *retval = NULL;
     int kbinput;
@@ -60,13 +60,6 @@ char *do_browser(char *path)
        /* The last answer the user typed on the statusbar. */
     size_t old_selected;
        /* The selected file we had before the current selected file. */
-    DIR *dir;
-
-    /* If we have no path, or we can't open it, get out. */
-    if (path == NULL || (dir = opendir(path)) == NULL) {
-       beep();
-       goto cleanup_browser;
-    }
 
     curs_set(0);
     blank_statusbar();
@@ -377,16 +370,12 @@ char *do_browser(char *path)
     if (old_const_update)
        SET(CONST_UPDATE);
 
-  cleanup_browser:
-    if (path != NULL)
-       free(path);
-    if (ans != NULL)
-       free(ans);
-    if (filelist != NULL) {
-       free_chararray(filelist, filelist_len);
-       filelist = NULL;
-       filelist_len = 0;
-    }
+    free(path);
+    free(ans);
+
+    free_chararray(filelist, filelist_len);
+    filelist = NULL;
+    filelist_len = 0;
 
     return retval;
 }
@@ -399,6 +388,7 @@ char *do_browse_from(const char *inpath)
     struct stat st;
     char *path;
        /* This holds the tilde-expanded version of inpath. */
+    DIR *dir = NULL;
 
     assert(inpath != NULL);
 
@@ -431,7 +421,17 @@ char *do_browse_from(const char *inpath)
        path = mallocstrcpy(path, operating_dir);
 #endif
 
-    return do_browser(path);
+    if (path != NULL)
+       dir = opendir(path);
+
+    /* If we can't open the path, get out. */
+    if (dir == NULL) {
+       free(path);
+       beep();
+       return NULL;
+    }
+
+    return do_browser(path, dir);
 }
 
 /* Set filelist to the list of files contained in the directory path,
index 4102bd3ed77ede744dc0f7b2f76f177c9f9fb615..b7242362cae87239660bcfc684da83f8f4dbced4 100644 (file)
@@ -143,7 +143,7 @@ extern char *homedir;
 
 /* Public functions in browser.c. */
 #ifndef DISABLE_BROWSER
-char *do_browser(char *path);
+char *do_browser(char *path, DIR *dir);
 char *do_browse_from(const char *inpath);
 void browser_init(const char *path, DIR *dir);
 void parse_browser_input(int *kbinput, bool *meta_key, bool *func_key);