# HG changeset patch # User Glenn Morris # Date 1203652364 0 # Node ID 5c3cc900f8ffa9f25ee1b54ee35bd93377e7d277 # Parent b1ab510960885ac169a456131311eb19e004bde3 (copyright-update-year): Fix subexpression numbering for the case when years are split over lines, and for the replace case. diff -r b1ab51096088 -r 5c3cc900f8ff lisp/emacs-lisp/copyright.el --- a/lisp/emacs-lisp/copyright.el Fri Feb 22 03:50:20 2008 +0000 +++ b/lisp/emacs-lisp/copyright.el Fri Feb 22 03:52:44 2008 +0000 @@ -94,6 +94,8 @@ (defun copyright-update-year (replace noquery) (when (condition-case err + ;; (1) Need the extra \\( \\) around copyright-regexp because we + ;; goto (match-end 1) below. See note (2) below. (re-search-forward (concat "\\(" copyright-regexp "\\)\\([ \t]*\n\\)?.*\\(?:" copyright-names-regexp "\\)") @@ -104,7 +106,7 @@ ;; such an error is very inconvenient for the user. (error (message "Can't update copyright: %s" err) nil)) (goto-char (match-end 1)) - ;; If the years are continued onto multiple lined + ;; If the years are continued onto multiple lines ;; that are marked as comments, skip to the end of the years anyway. (while (save-excursion (and (eq (following-char) ?,) @@ -119,7 +121,9 @@ (looking-at copyright-years-regexp)))) (forward-line 1) (re-search-forward comment-start-skip) - (re-search-forward copyright-years-regexp)) + ;; (2) Need the extra \\( \\) so that the years are subexp 3, as + ;; they are at note (1) above. + (re-search-forward (format "\\(%s\\)" copyright-years-regexp))) ;; Note that `current-time-string' isn't locale-sensitive. (setq copyright-current-year (substring (current-time-string) -4)) @@ -132,7 +136,7 @@ (concat "Add " copyright-current-year " to copyright? ")))) (if replace - (replace-match copyright-current-year t t nil 2) + (replace-match copyright-current-year t t nil 3) (let ((size (save-excursion (skip-chars-backward "0-9")))) (if (and (eq (% (- (string-to-number copyright-current-year) (string-to-number (buffer-substring