Ben Pfaff <[EMAIL PROTECTED]> writes: > Thomas Bushnell BSG <[EMAIL PROTECTED]> writes: > > [updating copyright years] > > I have a handy-dandy emacs lisp frob that will do this automagically > > for you if you like. > > I would like this.
;; When we save a file with a GPL copyright, prompt to suggest ;; modifying the notice to contain the most recent GPL version and ;; include the current year. (defconst current-year (substring (current-time-string) -4) "String representing the current year.") (defvar current-gpl-version "2" "String representing the current version of the GPL.") (defun update-copyright-with-queries () "My version of update-copyright." (save-excursion (save-restriction (widen) (goto-char (point-min)) (and (re-search-forward "[i]s free software" nil t) (not (eq major-mode 'rmail-mode)) (let ((limit (point))) (goto-char (point-min)) (re-search-forward "[Cc]opyright[^0-9]*\\(\\([-, \t]*\\([0-9]+\\)\\)\\)+" limit t)) (progn (forward-word -1) (not (looking-at current-year))) (progn (goto-char (point-min)) (sit-for 0) (y-or-n-p "Update copyright? ")) (let ((replace (y-or-n-p "Replace year? "))) (or (re-search-forward "[Cc]opyright[^0-9]*\\(\\([-, \t]*\\([0-9]+\\)\\)\\)+" nil t) (error "This buffer contains no copyright notice!")) (if replace (delete-region (match-beginning 1) (match-end 1)) (insert ", ")) (insert current-year) (message "Copyright updated to %s%s." (if replace "" "include ") current-year) (if (re-search-forward "; either version \\(.+\\), or (at your option)" nil t) (progn (goto-char (match-beginning 1)) (delete-region (point) (match-end 1)) (insert current-gpl-version)))))))) (setq write-file-hooks (cons 'update-copyright-with-queries write-file-hooks)) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]