diff lisp/emacs-lisp/copyright.el @ 60319:68fb18eab7a7

(copyright-fix-years): New command.
author Kim F. Storm <storm@cua.dk>
date Tue, 01 Mar 2005 10:14:48 +0000
parents 15d087a81874
children c0317237105a
line wrap: on
line diff
--- a/lisp/emacs-lisp/copyright.el	Tue Mar 01 10:14:18 2005 +0000
+++ b/lisp/emacs-lisp/copyright.el	Tue Mar 01 10:14:48 2005 +0000
@@ -178,6 +178,41 @@
 
 
 ;;;###autoload
+(defun copyright-fix-years ()
+  "Convert 2 digit years to 4 digit years.
+Uses heuristic: year >= 50 means 19xx, < 50 means 20xx."
+  (interactive)
+  (widen)
+  (goto-char (point-min))
+  (if (re-search-forward copyright-regexp (+ (point) copyright-limit) t)
+      (let ((s (match-beginning 2)) (e (make-marker))
+	    last)
+	(set-marker e (1+ (match-end 2)))
+	(goto-char s)
+	(while (and (< (point) (marker-position e))
+		    (re-search-forward "\\([^0-9]\\)\\([0-9]+\\)[^0-9]"
+				       (marker-position e) t))
+	  (let ((p (point))
+		(sep (match-string 1))
+		(year (string-to-number (match-string 2))))
+	    (goto-char (1+ (match-beginning 0)))
+	    (unless (= (char-syntax (string-to-char sep)) ?\s)
+	      (insert " "))
+	    (if (< year 100)
+		(insert (if (>= year 50) "19" "20")))
+	    (goto-char p)
+	    (setq last p)))
+	(when last
+	  (goto-char last)
+	  (let ((fill-prefix "     "))
+	    (fill-region s last))
+	  )
+	(set-marker e nil)
+	(copyright-update nil t))
+    (message "No copyright message")
+    (goto-char (point-min))))
+
+;;;###autoload
 (define-skeleton copyright
   "Insert a copyright by $ORGANIZATION notice at cursor."
   "Company: "