Subject: 27.0.50; diff-auto-refine-mode a no-op

From: [email-masked] (Charles A. Roelli)
Date: Mon, 08 Oct 2018 20:30:42 +0200

> commit f8b1e40fb63b0a6bc6692cc0bc84e5f5e65c2644
> Author: Stefan Monnier <[email-masked]>
> Date:   Tue Jul 10 22:52:21 2018 -0400

>     * lisp/vc/diff-mode.el: Perform hunk refinement from font-lock
    
>     Remove redundant :group arguments.
>     (diff-font-lock-refine): New var.
>     (diff--refine-hunk): New function, extracted from diff-refine-hunk.
>     (diff-refine-hunk): Use it.
>     (diff--font-lock-refine--refresh): New function.
>     (diff--font-lock-refined): New function.
>     (diff-font-lock-keywords): Use it.

Looks like this commit makes diff-auto-refine-mode a no-op, since
hunks are now always refined.  Is that the intention?

Also, with automatic refinement always on, does the following part of
diff-mode.el still require refining the hunk?  It must be repeating
font lock's job (unless font lock is switched off, of course).

  (easy-mmode-define-navigation
   diff-hunk diff-hunk-header-re "hunk" diff-end-of-hunk diff-restrict-view
   (when diff-auto-refine-mode
     (unless (prog1 diff--auto-refine-data
	       (setq diff--auto-refine-data
		     (cons (current-buffer) (point-marker))))
       (run-at-time 0.0 nil
		    (lambda ()
		      (when diff--auto-refine-data
			(let ((buffer (car diff--auto-refine-data))
			      (point (cdr diff--auto-refine-data)))
			  (setq diff--auto-refine-data nil)
			  (with-local-quit
			    (when (buffer-live-p buffer)
			      (with-current-buffer buffer
				(save-excursion
				  (goto-char point)
				  (diff-refine-hunk))))))))))))