GNU bug report logs -
#13152
24.2.90; [REGRESSION] dired-get-marked-files changed
Previous Next
Reported by: Leo <sdl.web <at> gmail.com>
Date: Wed, 12 Dec 2012 02:25:01 UTC
Severity: minor
Found in version 24.2.90
Done: Leo Liu <sdl.web <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On 2012-12-15 18:59 +0800, Juri Linkov wrote:
> I agree it shouldn't matter in which buffer FUNCTION is called.
> The problem is caused by the flawed design of dired-x where
> `dired-guess-default' doesn't propagate the value of `files'
> to the evaluated expressions in `dired-guess-shell-alist-default'.
Ideally, yes. But not common in elisp where stateful is the norm. We
just have to use the least surprise principle.
> Also note how `dired-guess-shell-alist-default' is forced to use the
> dynamically bound variable `file'.
>
> The proper fix would be to redesign `dired-guess-shell-alist-default'
> to funcall lambdas with one arg `files' instead of using `eval'.
>
> So instead of
>
> (setq dired-guess-shell-alist-user
> '(("." (let ((files (dired-get-marked-files t current-prefix-arg)))
> (let (dired-guess-shell-alist-user)
> (dired-guess-default files))))))
>
> Leo would be able to use
>
> (setq dired-guess-shell-alist-user
> '(("." (lambda (files)
> (let (dired-guess-shell-alist-user)
> (dired-guess-default files))))))
>
> This could help to move useful features from dired-x.el to dired-aux.el.
This seems like a good design. Cheers.
Leo
This bug report was last modified 12 years and 130 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.