> From: npostavs@users.sourceforge.net > Cc: Dima Kogan , 21262@debbugs.gnu.org > Date: Mon, 21 Aug 2017 20:18:39 -0400 > > Looks like a reasonable fix to me (though I know only a little bit of > diff-mode). Here it is again ignoring whitespace, which I think makes > it easier to see what is happening: > > modified lisp/vc/diff-mode.el > @@ -874,6 +874,8 @@ diff-find-file-name > ;; Flush diff-remembered-files-alist if the default-directory is changed. > (set (make-local-variable 'diff-remembered-defdir) default-directory) > (set (make-local-variable 'diff-remembered-files-alist) nil)) > + (save-restriction > + (widen) > (save-excursion > (unless (looking-at diff-file-header-re) > (or (ignore-errors (diff-beginning-of-file)) > @@ -919,7 +921,7 @@ diff-find-file-name > (file-name-nondirectory file))) > (set (make-local-variable 'diff-remembered-files-alist) > (cons (cons fs file) diff-remembered-files-alist)) > - file)))))) > + file))))))) > > Perhaps we should swap the save-restriction and save-excursion around > though? The elisp manual says: > > If you use both `save-restriction' and `save-excursion' together, > `save-excursion' should come first (on the outside). Otherwise, > the old point value would be restored with temporary narrowing > still in effect. Good point, thank you. I'll apply the attached patch in a few days if there's no further discussion.