diff --git a/ChangeLog b/ChangeLog index b4b6bba2..4d2646d0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,6 @@ 2016-01-20 Benno Schulenberg * src/files.c (open_buffer): Readjust the indentation and a comment. + * src/files.c (has_valid_path): Get rid of a global variable. 2016-01-20 Rishabh Dave * src/files.c (verify_path, open_buffer): When opening a new buffer, diff --git a/src/files.c b/src/files.c index 8a7a0812..cbf64341 100644 --- a/src/files.c +++ b/src/files.c @@ -33,27 +33,26 @@ #include #include -/* Determine whether the containing directory of the given filename exists. - * Pass the result back in the global variable valid_path. */ -void verify_path(const char *filename) +/* Verify that the containing directory of the given filename exists. */ +bool has_valid_path(const char *filename) { char *parentdir; struct stat parentinfo; + bool validity = TRUE; if (strrchr(filename, '/') == NULL) parentdir = mallocstrcpy(NULL, "."); else parentdir = dirname(mallocstrcpy(NULL, filename)); - if (stat(parentdir, &parentinfo) != -1 && S_ISDIR(parentinfo.st_mode)) - valid_path = TRUE; - else { + if (stat(parentdir, &parentinfo) == -1 || !S_ISDIR(parentinfo.st_mode)) { statusbar(_("Directory '%s' does not exist"), parentdir); - valid_path = FALSE; + validity = FALSE; beep(); } free(parentdir); + return validity; } /* Add an entry to the openfile openfilestruct. This should only be @@ -135,7 +134,7 @@ void set_modified(void) titlebar(NULL); #ifndef NANO_TINY - if (!ISSET(LOCKING) || openfile->filename[0] == '\0' || !valid_path) + if (!ISSET(LOCKING) || openfile->filename[0] == '\0') return; if (openfile->lock_filename == NULL) { @@ -404,10 +403,10 @@ bool open_buffer(const char *filename, bool undoable) if (new_buffer) { make_new_buffer(); - verify_path(filename); - + if (!has_valid_path(filename)) + quiet = TRUE; #ifndef NANO_TINY - if (valid_path) { + else { if (ISSET(LOCKING) && filename[0] != '\0') { int lockstatus = do_lockfile(filename); if (lockstatus < 0) { @@ -977,7 +976,7 @@ int open_file(const char *filename, bool newfie, bool quiet, FILE **f) } if (newfie) { - if (!quiet && valid_path) + if (!quiet) statusbar(_("New File")); return -2; } diff --git a/src/global.c b/src/global.c index b252f64a..829c19bf 100644 --- a/src/global.c +++ b/src/global.c @@ -40,8 +40,6 @@ bool func_key; /* Whether the current keystroke is an extended keypad value. */ bool focusing = FALSE; /* Whether an update of the edit window should center the cursor. */ -bool valid_path; - /* Whether the containing directory of a specified file exists. */ #ifndef NANO_TINY int controlleft = CONTROL_LEFT; diff --git a/src/proto.h b/src/proto.h index 1056b76d..cf33e778 100644 --- a/src/proto.h +++ b/src/proto.h @@ -34,7 +34,6 @@ extern volatile sig_atomic_t sigwinch_counter; extern bool meta_key; extern bool func_key; extern bool focusing; -extern bool valid_path; #ifndef NANO_TINY extern int controlleft;