emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 4467073 2/2: Simplify and speed up after-find-file


From: Paul Eggert
Subject: master 4467073 2/2: Simplify and speed up after-find-file
Date: Wed, 10 Feb 2021 13:58:47 -0500 (EST)

branch: master
commit 4467073c50d2c7fbbb30530d1a0a25f8272ff56f
Author: Paul Eggert <eggert@cs.ucla.edu>
Commit: Paul Eggert <eggert@cs.ucla.edu>

    Simplify and speed up after-find-file
    
    Use newer primitives like file-accessible-directory-p to simplify
    and speed up longstanding code in after-find-file.
    * lisp/files.el (after-find-file):
    Prefer file-exists-p + file-symlink-p to file-attributes +
    file-symlink-p + file-chase-links + file-exists-p.
    Prefer file-accessible-directory-p to directory-file-name +
    file-attributes.
    Prefer file-directory-p to file-name-directory + file-exists-p.
---
 lisp/files.el | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/lisp/files.el b/lisp/files.el
index dada69c..9ff8f31 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2530,13 +2530,11 @@ unless NOMODES is non-nil."
           (msg
            (cond
             ((not warn) nil)
-            ((and error (file-attributes buffer-file-name))
+            ((and error (file-exists-p buffer-file-name))
              (setq buffer-read-only t)
-             (if (and (file-symlink-p buffer-file-name)
-                      (not (file-exists-p
-                            (file-chase-links buffer-file-name))))
-                 "Symbolic link that points to nonexistent file"
-               "File exists, but cannot be read"))
+             "File exists, but cannot be read")
+            ((and error (file-symlink-p buffer-file-name))
+             "Symbolic link that points to nonexistent file")
             ((not buffer-read-only)
              (if (and warn
                       ;; No need to warn if buffer is auto-saved
@@ -2553,13 +2551,12 @@ unless NOMODES is non-nil."
             ((not error)
              (setq not-serious t)
              "Note: file is write protected")
-            ((file-attributes (directory-file-name default-directory))
+            ((file-accessible-directory-p default-directory)
              "File not found and directory write-protected")
-            ((file-exists-p (file-name-directory buffer-file-name))
-             (setq buffer-read-only nil))
             (t
              (setq buffer-read-only nil)
-             "Use M-x make-directory RET RET to create the directory and its 
parents"))))
+             (unless (file-directory-p default-directory)
+               "Use M-x make-directory RET RET to create the directory and its 
parents")))))
       (when msg
        (message "%s" msg)
        (or not-serious (sit-for 1 t))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]