From 422032f0ca216ecc279cf8e1733e1d661c8bfd78 Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Tue, 1 Mar 2005 10:14:48 +0000 Subject: [PATCH] (copyright-fix-years): New command. --- lisp/emacs-lisp/copyright.el | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el index 3d160f54606..dcb68188383 100644 --- a/lisp/emacs-lisp/copyright.el +++ b/lisp/emacs-lisp/copyright.el @@ -177,6 +177,41 @@ version \\([0-9]+\\), or (at" nil)) +;;;###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." -- 2.39.2