emacs-diffs
[Top][All Lists]
Advanced

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

emacs-29 925724a4b54: Restore invisibility of symlink target on exiting


From: Stephen Berman
Subject: emacs-29 925724a4b54: Restore invisibility of symlink target on exiting wdired-mode
Date: Fri, 24 Feb 2023 10:43:54 -0500 (EST)

branch: emacs-29
commit 925724a4b54a6780bfa342bc3a6440a6ad0a6ecc
Author: Stephen Berman <stephen.berman@gmx.net>
Commit: Stephen Berman <stephen.berman@gmx.net>

    Restore invisibility of symlink target on exiting wdired-mode
    
    * lisp/wdired.el (wdired-change-to-dired-mode): Invoke
    dired-hide-details-update-invisibility-spec (bug#61510).
    
    * test/lisp/wdired-tests.el (wdired-test-bug61510): New test.
---
 lisp/wdired.el            |  1 +
 test/lisp/wdired-tests.el | 23 +++++++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/lisp/wdired.el b/lisp/wdired.el
index 771458508e6..5572dcb32f3 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -455,6 +455,7 @@ non-nil means return old filename."
   (setq major-mode 'dired-mode)
   (setq mode-name "Dired")
   (dired-advertise)
+  (dired-hide-details-update-invisibility-spec)
   (remove-hook 'kill-buffer-hook #'wdired-check-kill-buffer t)
   (remove-hook 'before-change-functions #'wdired--before-change-fn t)
   (remove-hook 'after-change-functions #'wdired--restore-properties t)
diff --git a/test/lisp/wdired-tests.el b/test/lisp/wdired-tests.el
index 74c2449076f..897c6cd69a8 100644
--- a/test/lisp/wdired-tests.el
+++ b/test/lisp/wdired-tests.el
@@ -189,5 +189,28 @@ wdired-get-filename before and after editing."
               (wdired-finish-edit))
           (if buf (kill-buffer buf)))))))
 
+(ert-deftest wdired-test-bug61510 ()
+  "Test visibility of symlink target on leaving wdired-mode.
+When dired-hide-details-mode is enabled and
+dired-hide-details-hide-symlink-targets is non-nil (the default),
+the link target becomes invisible.  When wdired-mode is enabled
+the target becomes visible, but on returning to dired-mode, it
+should be invisible again."
+  (ert-with-temp-directory test-dir
+    (let ((buf (find-file-noselect test-dir))
+          ;; Default value is t, but set it anyway, to be sure.
+          (dired-hide-details-hide-symlink-targets t))
+      (unwind-protect
+          (with-current-buffer buf
+            (make-symbolic-link "bar" "foo")
+            (dired-hide-details-mode)
+            (should (memq 'dired-hide-details-link buffer-invisibility-spec))
+            (dired-toggle-read-only)
+            (should-not (memq 'dired-hide-details-link
+                              buffer-invisibility-spec))
+            (wdired-finish-edit)
+            (should (memq 'dired-hide-details-link buffer-invisibility-spec)))
+        (if buf (kill-buffer buf))))))
+
 (provide 'wdired-tests)
 ;;; wdired-tests.el ends here



reply via email to

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