-;;; Copyright (C) 1991, 1992 Free Software Foundation, Inc.
-;;; Written by Roland McGrath.
-;;;
-;;; This program is free software; you can redistribute it and/or modify
-;;; it under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 2, or (at your option)
-;;; any later version.
-;;;
-;;; This program is distributed in the hope that it will be useful,
-;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;; GNU General Public License for more details.
-;;;
-;;; A copy of the GNU General Public License can be obtained from this
-;;; program's author (send electronic mail to roland@ai.mit.edu) or from
-;;; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
-;;; 02139, USA.
-
-(defconst current-year (substring (current-time-string) -4)
+;;; copyright.el --- update the copyright notice in current buffer
+
+;; Copyright (C) 1991, 92, 93, 94, 95, 1998, 2001, 2003, 2004
+;; Free Software Foundation, Inc.
+
+;; Author: Daniel Pfeiffer <occitan@esperanto.org>
+;; Keywords: maint, tools
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; Allows updating the copyright year and above mentioned GPL version manually
+;; or when saving a file.
+;; Do (add-hook 'before-save-hook 'copyright-update), or use
+;; M-x customize-variable RET before-save-hook RET.
+
+;;; Code:
+
+(defgroup copyright nil
+ "Update the copyright notice in current buffer."
+ :group 'tools)
+
+(defcustom copyright-limit 2000
+ "*Don't try to update copyright beyond this position unless interactive.
+A value of nil means to search whole buffer."
+ :group 'copyright
+ :type '(choice (integer :tag "Limit")
+ (const :tag "No limit")))
+
+;; The character classes have the Latin-1 version and the Latin-9
+;; version, which is probably enough.
+(defcustom copyright-regexp
+ "\\([\81©\8e©]\\|@copyright{}\\|[Cc]opyright\\s *:?\\s *\\(?:(C)\\)?\
+\\|[Cc]opyright\\s *:?\\s *[\81©\8e©]\\)\
+\\s *\\([1-9]\\([-0-9, ';/*%#\n\t]\\|\\s<\\|\\s>\\)*[0-9]+\\)"
+ "*What your copyright notice looks like.
+The second \\( \\) construct must match the years."
+ :group 'copyright
+ :type 'regexp)
+
+(defcustom copyright-years-regexp
+ "\\(\\s *\\)\\([1-9]\\([-0-9, ';/*%#\n\t]\\|\\s<\\|\\s>\\)*[0-9]+\\)"
+ "*Match additional copyright notice years.
+The second \\( \\) construct must match the years."
+ :group 'copyright
+ :type 'regexp)
+
+
+(defcustom copyright-query 'function
+ "*If non-nil, ask user before changing copyright.
+When this is `function', only ask when called non-interactively."
+ :group 'copyright
+ :type '(choice (const :tag "Do not ask")
+ (const :tag "Ask unless interactive" function)
+ (other :tag "Ask" t)))
+
+
+;; when modifying this, also modify the comment generated by autoinsert.el
+(defconst copyright-current-gpl-version "2"
+ "String representing the current version of the GPL or nil.")
+
+(defvar copyright-update t)
+
+;; This is a defvar rather than a defconst, because the year can
+;; change during the Emacs session.
+(defvar copyright-current-year (substring (current-time-string) -4)