changeset 92083:5c3cc900f8ff

(copyright-update-year): Fix subexpression numbering for the case when years are split over lines, and for the replace case.
author Glenn Morris <rgm@gnu.org>
date Fri, 22 Feb 2008 03:52:44 +0000
parents b1ab51096088
children 0521c6a7dca0
files lisp/emacs-lisp/copyright.el
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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