diff options
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/copyright.el | 35 |
1 files changed, 35 insertions, 0 deletions
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 @@ -178,6 +178,41 @@ version \\([0-9]+\\), or (at" ;;;###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: " |