]> git.wh0rd.org Git - nano.git/commitdiff
Removed unneeded st2 var, don't open device files in open_file()
authorChris Allegretta <chrisa@asty.org>
Wed, 13 Dec 2000 15:01:29 +0000 (15:01 +0000)
committerChris Allegretta <chrisa@asty.org>
Wed, 13 Dec 2000 15:01:29 +0000 (15:01 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@407 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
files.c

index b3bca4819125859a71102af699299309abcee987..0dbd2356dd161fa1f57a1779a3d85332cf9dc072 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,6 +14,8 @@ General
        - Change open call flags, basically copy joe's way of doing it so
          a more recent version will actually be included in (un)stable.
        - Remove useless fstat call.
+  open_file()
+       - Added check for S_ISBLK and S_ISCHR, don't open device files!
 - nano.c:
   renumber()
        - Dont stupidly assign the value of prev->lineno if prev == NULL!
diff --git a/files.c b/files.c
index fedba8816d242b3e421b24e928a4a4e2bcfefce6..aa797e1467b634204f65cb973eb659727258ab59 100644 (file)
--- a/files.c
+++ b/files.c
@@ -229,8 +229,14 @@ int open_file(char *filename, int insert, int quiet)
            statusbar("%s: %s", strerror(errno), filename);
        return -1;
     } else {                   /* File is A-OK */
-       if (S_ISDIR(fileinfo.st_mode)) {
-           statusbar(_("File \"%s\" is a directory"), filename);
+       if (S_ISDIR(fileinfo.st_mode) || S_ISCHR(fileinfo.st_mode) || 
+               S_ISBLK(fileinfo.st_mode)) {
+           if (S_ISDIR(fileinfo.st_mode))
+               statusbar(_("File \"%s\" is a directory"), filename);
+           else
+               /* Don't open character or block files.  Sorry, /dev/sndstat! */
+               statusbar(_("File \"%s\" is a device file"), filename);
+
            if (!insert)
                new_file();
            return -1;
@@ -303,7 +309,7 @@ int write_file(char *name, int tmp)
     char buf[PATH_MAX + 1];
     filestruct *fileptr;
     int fd, mask = 0, realexists, anyexists;
-    struct stat st, lst, st2;
+    struct stat st, lst;
     static char *realname = NULL;
 
     if (!strcmp(name, "")) {