GNU bug report logs -
#49774
27.1; if diff commands finds no differences then do not pop up a window
Previous Next
Reported by: ndame <laszlomail <at> protonmail.com>
Date: Thu, 29 Jul 2021 17:01:02 UTC
Severity: normal
Tags: wontfix
Found in version 27.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #53 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Friday, July 30th, 2021 at 8:28 PM, ndame <laszlomail <at> protonmail.com> wrote:
>> If there are no differences then emacs should just show this in a message instead of popping up a window with not useful content.
>
> Just a simple implementation with advices for the time being for those who prefer this:
>
> (advice-add 'diff :around 'my-diff)
>
> (defun my-diff (orig-fun &rest args)
> (flet ((display-buffer (buf) buf))
> (apply orig-fun args)))
>
> (advice-add 'diff-sentinel :after 'my-diff-sentinel)
>
> (defun my-diff-sentinel (code &rest args)
> (if (equal code 0)
> (message "No differences.")
> (display-buffer (current-buffer))))
The permanent sentinel advice affects non-interactive diffs too (diff-no-select), so a better solution is to add and remove that advice on demand:
(advice-add 'diff :around 'my-diff)
(defun my-diff (orig-fun &rest args)
(advice-add 'diff-sentinel :after 'my-diff-sentinel)
(flet ((display-buffer (buf) buf))
(apply orig-fun args)))
(defun my-diff-sentinel (code &rest args)
(advice-remove 'diff-sentinel 'my-diff-sentinel)
(if (equal code 0)
(message "No differences.")
(display-buffer (current-buffer))))
[Message part 2 (text/html, inline)]
This bug report was last modified 2 years and 273 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.