diff options
-rw-r--r-- | lisp/wdired.el | 1 | ||||
-rw-r--r-- | test/lisp/wdired-tests.el | 23 |
2 files changed, 24 insertions, 0 deletions
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 |