- * diff-mode.el (diff-auto-refine): New var.
- (diff-hunk): Use it.
- (diff-ignore-whitespace-hunk): Rename diff-refine-ignore-spaces-hunk.
- (diff-refine-change): Rename from diff-fine-change. Change it.
- (diff-refine-preproc): Rename from diff-fine-highlight-preproc.
- (diff-refine-hunk): Rename from diff-fine-highlight.
-
-2007-10-20 John Paul Wallington <jpw@pobox.com>
-
- * help-fns.el (describe-variable-custom-version-info): New function
- to return variable's version or package version note.
- (describe-variable): Use it, display result.
-
-2007-10-20 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * smerge-mode.el (smerge-auto-refine): New var.
- (smerge-next, smerge-prev): Use it.
- (smerge-batch-resolve): Ad-hoc trick for Arch's .rej files.
-
+ 2007-10-19 Juanma Barranquero <lekktu@gmail.com>
+
+ * bs.el (bs--track-window-changes): Don't refresh the whole list.
+ (bs-mode): Set mode-class property to special.
+
+ 2007-10-20 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
+ Add `body' arg. Cleanup the check-narrow-maybe/re-narrow-maybe mess.
+
+ * vc-bzr.el (vc-bzr-diff-tree):
+ * vc-git.el (vc-git-diff-tree):
+ * vc-hg.el (vc-hg-diff-tree):
+ * vc-mcvs.el (vc-mcvs-diff-tree):
+ * vc-mtn.el (vc-mtn-diff-tree):
+ * vc-svn.el (vc-svn-diff-tree): Remove.
+
+ * vc-mtn.el (vc-mtn-revision-completion-table):
+ * vc-cvs.el (vc-cvs-revision-completion-table):
+ * vc-arch.el (vc-arch-revision-completion-table):
+ * vc-hg.el (vc-hg-revision-completion-table, vc-hg-revision-table):
+ * vc-git.el (vc-git-revision-completion-table, vc-git-revision-table):
+ Make it work when the arg is a list of files.
+
+ 2007-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * vc.el: Remove `diff-tree' operation, now subsumed by `diff'.
+ Also `revision-completion-table' now takes a list of files.
+ (vc-deduce-fileset): Remove unused var `regexp'.
+ Only obey allow-directory-wildcard in dired buffers.
+ (vc-default-diff-tree): Remove.
+ (vc-diff-added-files): New var.
+ (vc-diff-internal): Use it. Remove arg `backend'. Update callers.
+ (vc-version-diff): Revert from `vc-history-diff' to the original name.
+ Remove the `backend' arg.
+ (vc-contains-version-controlled-file): Remove.
+ (vc-diff): Bring it closer to the version in Emacs-22.
+ (vc-revert): Fix typo in let-binding.
+ (vc-default-unregister): Remove.
+ (vc-dired-buffers-for-dir): Remove N^2 behavior.
+
+ 2007-10-19 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * textmodes/two-column.el (2C-split, 2C-merge):
+ * textmodes/bib-mode.el (bib-find-key, mark-bib):
+ * progmodes/idlw-shell.el (idlwave-shell-move-or-history):
+ * progmodes/etags.el (find-tag-in-order, etags-tags-apropos)
+ * progmodes/ada-xref.el (ada-get-all-references):
+ * obsolete/mlsupport.el (ml-next-line, ml-previous-line):
+ * emulation/vi.el (vi-previous-line-first-nonwhite)
+ (vi-effective-range, vi-put-before):
+ * emulation/edt.el (edt-next-line, edt-previous-line)
+ (edt-paragraph-forward): Use forward-line.
+
+ * progmodes/etags.el (tags-apropos): Require apropos at compile
+ time too.
+
+ * progmodes/prolog.el: Require comint when compiling.
+ (inferior-prolog-flavor): Move defvar before use.
+
+ 2007-10-19 Richard Stallman <rms@gnu.org>
+
+ * font-core.el (turn-on-font-lock-if-desired):
+ Rename from `turn-on-font-lock-if-enabled'.
+ Fully obey `font-lock-global-modes'.
+
+ 2007-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * diff-mode.el (diff-fine-highlight-preproc): Stick to minimal changes
+ which will not affect the behavior of things like forward-word.
+ (diff-fine-highlight): Preserve point.
+
+ * doc-view.el (doc-view-mode-map): Use remapping.
+ Don't rebind C-v, M-v to their default value.
+ Don't bind mouse-4 and mouse-5: it's mwheel.el's job.
+
+ * smerge-mode.el: Add word-granularity refinement.
+ (smerge-refine-forward-function, smerge-refine-ignore-whitespace)
+ (smerge-refine-weight-hack): New vars.
+ (smerge-refine-forward): New fun.
+ (smerge-refine-chopup-region, smerge-refine-highlight-change): Use them.
+ (smerge-refine-subst): Use them as well. Preserve point.
+
+ 2007-10-19 Juanma Barranquero <lekktu@gmail.com>
+
+ * follow.el (follow-unload-function): New function.
+
+ * loadhist.el (unload-function-features-list):
+ Rename from `unload-hook-features-list'.
+ (unload-hook-features-list): Add as obsolete alias.
+ (unload-feature): Use `unload-function-features-list'
+ and new FEATURE-unload-function.
+
+ 2007-10-19 Glenn Morris <rgm@gnu.org>
+
+ * bindings.el (mouse-minor-mode-menu)
+ (minor-mode-menu-from-indicator): Move to mouse.el.
+ * mouse.el (mouse-minor-mode-menu, minor-mode-menu-from-indicator):
+ Move here from bindings.el.
+
+ 2007-10-19 Richard Stallman <rms@gnu.org>
+
+ * help-fns.el (describe-function-1): Don't use the advice origname
+ if it has no function definition.
+
2007-10-18 Johan Bockg\e,Ae\e(Brd <bojohan@gnu.org>
* net/tramp.el (tramp-rfn-eshadow-update-overlay): Save excursion.
;;; Fine change highlighting.
-(defface diff-refine-change
- '((((class color) (min-colors 88) (background light))
- :background "grey90")
- (((class color) (min-colors 88) (background dark))
- :background "grey40")
- (((class color) (background light))
- :background "yellow")
- (((class color) (background dark))
- :background "green")
- (t :weight bold))
- "Face used for char-based changes shown by `diff-refine-hunk'."
+(defface diff-fine-change
+ '((t :background "yellow"))
+ "Face used for char-based changes shown by `diff-fine-highlight'."
:group 'diff-mode)
-(defun diff-refine-preproc ()
+(defun diff-fine-highlight-preproc ()
- (while (re-search-forward "^." nil t)
- ;; Replace the hunk's leading prefix (+, -, !, <, or >) on each line
- ;; with something constant, otherwise it'll be flagged as changes
- ;; (since it's typically "-" on one side and "+" on the other).
- ;; Note that we keep the same number of chars: we treat the prefix
- ;; as part of the texts-to-diff, so that finding the right char
- ;; afterwards will be easier. This only makes sense because we make
- ;; diffs at char-granularity.
- (replace-match " ")))
+ (while (re-search-forward "^[+>]" nil t)
+ ;; Remove spurious changes due to the fact that one side of the hunk is
+ ;; marked with leading + or > and the other with leading - or <.
+ ;; We used to replace all the prefix chars with " " but this only worked
+ ;; when we did char-based refinement (or when using
+ ;; smerge-refine-weight-hack) since otherwise, the `forward' motion done
+ ;; in chopup do not necessarily do the same as the ones in highlight
+ ;; since the "_" is not treated the same as " ".
+ (replace-match (cdr (assq (char-before) '((?+ . "-") (?> . "<"))))))
+ )
-(defun diff-refine-hunk ()
+(defun diff-fine-highlight ()
"Highlight changes of hunk at point at a finer granularity."
(interactive)
(require 'smerge-mode)
- (diff-beginning-of-hunk 'try-harder)
- (let* ((style (diff-hunk-style)) ;Skips the hunk header as well.
- (beg (point))
- (props '((diff-mode . fine) (face diff-fine-change)))
- (end (progn (diff-end-of-hunk) (point))))
-
- (remove-overlays beg end 'diff-mode 'fine)
-
- (goto-char beg)
- (case style
- (unified
- (while (re-search-forward "^\\(?:-.*\n\\)+\\(\\)\\(?:\\+.*\n\\)+" end t)
- (smerge-refine-subst (match-beginning 0) (match-end 1)
- (match-end 1) (match-end 0)
- props 'diff-fine-highlight-preproc)))
- (context
- (let* ((middle (save-excursion (re-search-forward "^---")))
- (other middle))
- (while (re-search-forward "^\\(?:!.*\n\\)+" middle t)
- (smerge-refine-subst (match-beginning 0) (match-end 0)
- (save-excursion
- (goto-char other)
- (re-search-forward "^\\(?:!.*\n\\)+" end)
- (setq other (match-end 0))
- (match-beginning 0))
- other
- props 'diff-fine-highlight-preproc))))
- (t ;; Normal diffs.
- (let ((beg1 (1+ (point))))
- (when (re-search-forward "^---.*\n" end t)
- ;; It's a combined add&remove, so there's something to do.
- (smerge-refine-subst beg1 (match-beginning 0)
- (match-end 0) end
- props 'diff-fine-highlight-preproc)))))))
+ (save-excursion
+ (diff-beginning-of-hunk 'try-harder)
+ (let* ((style (diff-hunk-style)) ;Skips the hunk header as well.
+ (beg (point))
- (props '((diff-mode . fine) (face diff-refine-change)))
++ (props '((diff-mode . fine) (face diff-fine-change)))
+ (end (progn (diff-end-of-hunk) (point))))
+
+ (remove-overlays beg end 'diff-mode 'fine)
+
+ (goto-char beg)
+ (case style
+ (unified
+ (while (re-search-forward "^\\(?:-.*\n\\)+\\(\\)\\(?:\\+.*\n\\)+"
+ end t)
+ (smerge-refine-subst (match-beginning 0) (match-end 1)
+ (match-end 1) (match-end 0)
- props 'diff-refine-preproc)))
++ props 'diff-fine-highlight-preproc)))
+ (context
+ (let* ((middle (save-excursion (re-search-forward "^---")))
+ (other middle))
+ (while (re-search-forward "^\\(?:!.*\n\\)+" middle t)
+ (smerge-refine-subst (match-beginning 0) (match-end 0)
+ (save-excursion
+ (goto-char other)
+ (re-search-forward "^\\(?:!.*\n\\)+" end)
+ (setq other (match-end 0))
+ (match-beginning 0))
+ other
- props 'diff-refine-preproc))))
++ props 'diff-fine-highlight-preproc))))
+ (t ;; Normal diffs.
+ (let ((beg1 (1+ (point))))
+ (when (re-search-forward "^---.*\n" end t)
+ ;; It's a combined add&remove, so there's something to do.
+ (smerge-refine-subst beg1 (match-beginning 0)
+ (match-end 0) end
- props 'diff-refine-preproc))))))))
++ props 'diff-fine-highlight-preproc))))))))
;; provide the package