(copyright-regexp): Make (C) optional.

(copyright-regexp): Add Latin-9 copyright sign.
Match comment delimiters in year lists.
(copyright-current-year): Initialize to load-time year.

Doc fixes.
This commit is contained in:
Richard M. Stallman 2002-01-13 20:17:46 +00:00
parent 9be6c49a5d
commit 9c05459cf6
2 changed files with 35 additions and 19 deletions

View file

@ -1,3 +1,14 @@
2002-01-13 Richard M. Stallman <rms@gnu.org>
* emacs-lisp/copyright.el (copyright-regexp): Make (C) optional.
2002-01-13 Dave Love <fx@gnu.org>
* emacs-lisp/copyright.el: Doc fixes.
(copyright-regexp): Add Latin-9 copyright sign.
Match comment delimiters in year lists.
(copyright-current-year): Initialize to load-time year.
2002-01-13 Andreas Schwab <schwab@suse.de>
* dired-aux.el (dired-do-shell-command): Doc fix.

View file

@ -1,6 +1,6 @@
;;; copyright.el --- update the copyright notice in current buffer
;; Copyright (C) 1991, 92, 93, 94, 95, 1998 Free Software Foundation, Inc.
;; Copyright (C) 1991, 92, 93, 94, 95, 98, 2001 Free Software Foundation, Inc.
;; Author: Daniel Pfeiffer <occitan@esperanto.org>
;; Keywords: maint, tools
@ -35,17 +35,20 @@
(defcustom copyright-limit 2000
"*Don't try to update copyright beyond this position unless interactive.
`nil' means to search whole buffer."
A value of nil means to search whole buffer."
:group 'copyright
:type '(choice (integer :tag "Limit")
(const :tag "No limit")))
;; Cleaner to specify Latin-1 coding for this file, and not use both
;; unibyte and multibyte copyright symbol characters?
;; Would it be cleaner to specify Latin-1 coding for this file,
;; and not use both unibyte and multibyte copyright symbol characters?
;; The character classes include the unibyte (C) sign,
;; the Latin-1 version, and the Latin-9 version.
(defcustom copyright-regexp
"\\([\251<EFBFBD>©]\\|@copyright{}\\|[Cc]opyright\\s *:?\\s *(C)\
\\|[Cc]opyright\\s *:?\\s *[\251<EFBFBD>©]\\)\
\\s *\\([1-9][-0-9, ';\n\t]*[0-9]+\\)"
"\\([\251<EFBFBD>©Ž©]\\|@copyright{}\\|[Cc]opyright\\s *:?\\s *\\((C)\\)?\
\\|[Cc]opyright\\s *:?\\s *[\251<EFBFBD>©Ž©]\\)\
\\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
@ -53,7 +56,7 @@ The second \\( \\) construct must match the years."
(defcustom copyright-query 'function
"*If non-`nil', ask user before changing copyright.
"*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")
@ -63,29 +66,30 @@ When this is `function', only ask when called non-interactively."
;; 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'.")
"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 "2001"
(defvar copyright-current-year (substring (current-time-string) -4)
"String representing the current year.")
;;;###autoload
(defun copyright-update (&optional arg)
"Update the copyright notice at the beginning of the buffer to indicate
the current year. If optional prefix ARG is given replace the years in the
notice rather than adding the current year after them. If necessary and
`copyright-current-gpl-version' is set, the copying permissions following the
copyright, if any, are updated as well."
"Update copyright notice at beginning of buffer to indicate the current year.
With prefix ARG, replace the years in the notice rather than adding
the current year after them. If necessary, and
`copyright-current-gpl-version' is set, any copying permissions
following the copyright are updated as well."
(interactive "*P")
(if copyright-update
(save-excursion
(save-restriction
(widen)
(goto-char (point-min))
;; Note that `current-time-string' isn't locale-sensitive.
(setq copyright-current-year (substring (current-time-string) -4))
(if (re-search-forward copyright-regexp copyright-limit t)
(if (string= (buffer-substring (- (match-end 2) 2) (match-end 2))
@ -98,7 +102,7 @@ copyright, if any, are updated as well."
(concat "Replace copyright year(s) by "
copyright-current-year "? ")
(concat "Add " copyright-current-year
" to copyright? "))))
" to copyright? "))))
(if arg
(progn
(delete-region (match-beginning 1) (match-end 1))
@ -122,10 +126,11 @@ copyright, if any, are updated as well."
(and copyright-current-gpl-version
;; match the GPL version comment in .el files, including the
;; bilingual Esperanto one in two-column, and in texinfo.tex
(re-search-forward "\\(the Free Software Foundation; either \\|; a\\^u eldono \\([0-9]+\\)a, ? a\\^u (la\\^u via \\)version \\([0-9]+\\), or (at"
(re-search-forward "\\(the Free Software Foundation;\
either \\|; a\\^u eldono \\([0-9]+\\)a, ? a\\^u (la\\^u via \\)\
version \\([0-9]+\\), or (at"
copyright-limit t)
(not (string= (buffer-substring (match-beginning 3) (match-end 3))
copyright-current-gpl-version))
(not (string= (match-string 3) copyright-current-gpl-version))
(or (not copyright-query)
(and (eq copyright-query 'function)
(eq this-command 'copyright-update))