‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Friday, July 30th, 2021 at 8:28 PM, ndame <laszlomail@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))))