GNU bug report logs - #27435
patch for dired-mouse-find-file-other-window

Previous Next

Package: emacs;

Reported by: Tak Kunihiro <tkk <at> misasa.okayama-u.ac.jp>

Date: Wed, 21 Jun 2017 02:04:02 UTC

Severity: wishlist

Tags: patch

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Tak Kunihiro <tkk <at> misasa.okayama-u.ac.jp>
To: eliz <at> gnu.org
Cc: 27435 <at> debbugs.gnu.org, tkk <at> misasa.okayama-u.ac.jp, drew.adams <at> oracle.com
Subject: bug#27435: patch for dired-mouse-find-file-other-window
Date: Sun, 03 Sep 2017 11:08:07 +0900 (JST)
Thank you for the response.

>> +(defun dired-mouse-find-file (event &optional find-file-func find-dir-func)
>> +  "In Dired, visit the file or directory name you click on.
>> +FIND-FILE-FUNC and FIND-DIR-FUNC specify functions to visit the file and directory, respectively."
> 
> This last line is too long, please break it into 2.  Also, the doc
> string should say explicitly these arguments are optional, and what
> they default to if omitted or nil.

I separated the line into two.  I revised the doc string to infer
option and default explicitly.  Please modify it if unclear.

>> +  (or find-file-func (setq find-file-func 'find-file))
>> +  (or find-dir-func (setq find-file-func 'find-alternate-file))
> 
> I'm not sure I understand why these particular defaults.  Can you
> explain?  In particular, find-alternate-file sounds strange to me.

I think `dired-mouse-find-file' should behave similar to <RET>
`dired-find-file'.  For visiting a file in this window, the most
similar function to `dired-find-file' with similar argument to
`find-file-other-window' is `find-file'.  For visiting a directory in
this window, the most similar function to `dired-find-file' with
similar argument to `dired-other-window' is `dired'.  Also there was a
typo.  On summary, current defaults are shown below.

    (or find-file-func (setq find-file-func 'find-file))
    (or find-dir-func (setq find-dir-func 'dired))

>   . please always provide a log message for the changes
>   . your patch doesn't apply cleanly, presumably due to some
>     difference in whitespace vs the Git repository; please make sure
>     your diffs are always against the latest Git version

I attach Change Log and a patch relative to the latest Git version.

I hope this meets your comments!


# Change log

2017-09-03  Tak Kunihiro  <tkk <at> misasa.okayama-u.ac.jp>

	Let mouse-2 on Dired visit a file or directory in this window, other window, and other frame

	* lisp/dired.el (dired-mouse-find-file): Visit a file or directory by this
	window.  User can specify functions to visit a file or directory, respectively.
	(dired-mouse-find-file-other-window): Visit a file or directory in other window.
	(dired-mouse-find-file-other-frame): Visit a file or directory in other frame.

# PATCH

diff --git a/dired.260.el b/dired.el
index ff62183..da5ad0e 100755
--- a/dired.260.el
+++ b/dired.el
@@ -2233,9 +2233,15 @@ directory in another window."
 ;; Don't override the setting from .emacs.
 ;;;###autoload (put 'dired-find-alternate-file 'disabled t)
 
-(defun dired-mouse-find-file-other-window (event)
-  "In Dired, visit the file or directory name you click on."
+(defun dired-mouse-find-file (event &optional find-file-func find-dir-func)
+  "In Dired, visit the file or directory name you click on.
+The optional arguments FIND-FILE-FUNC and FIND-DIR-FUNC specify
+functions to visit the file and directory, respectively.  By
+default, the file and directry are visited by `find-file' and
+`dired', respectively."
   (interactive "e")
+  (or find-file-func (setq find-file-func 'find-file))
+  (or find-dir-func (setq find-dir-func 'dired))
   (let (window pos file)
     (save-excursion
       (setq window (posn-window (event-end event))
@@ -2250,9 +2256,19 @@ directory in another window."
                  (dired-goto-subdir file))
             (progn
               (select-window window)
-	      (dired-other-window file)))
+              (funcall find-dir-func file)))
       (select-window window)
-      (find-file-other-window (file-name-sans-versions file t)))))
+      (funcall find-file-func (file-name-sans-versions file t)))))
+
+(defun dired-mouse-find-file-other-window (event)
+  "In Dired, visit the file or directory name you click on other window."
+  (interactive "e")
+  (dired-mouse-find-file event 'find-file-other-window 'dired-other-window))
+
+(defun dired-mouse-find-file-other-frame (event)
+  "In Dired, visit the file or directory name you click on other frame."
+  (interactive "e")
+  (dired-mouse-find-file event 'find-file-other-frame 'dired-other-frame))
 
 (defun dired-view-file ()
   "In Dired, examine a file in view mode, returning to Dired when done.




This bug report was last modified 7 years and 262 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.