Mercurial > emacs
annotate lisp/emacs-lisp/copyright.el @ 10219:d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
(sort-subr): Don't call autload for this--that's done in loaddefs.el.
(bibtex-mode): Add autoload cookie.
Changed keybinding for bibtex-print-help-message
(from \C-ch to \C-c?). Therefore, describe-mode is not longer on
\C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to
\C-c\C-r.
(bibtex-string-files): Changed documentation.
(bibtex-mode-map): Inscriptions of menu bar changed from "Entry
Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit".
(bibtex-string-files): Changed documentation.
(bibtex-mode): If environment variable BIBINPUTS isn't defined,
string files are searched in the current directory.
(bibtex-completion-candidates): Now buffer-local to allow
evaluation of different bibtex-string-files in different buffers.
(bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable
that determines, if the user is allowed to edit auto-generated
reference keys before they are used.
(bibtex-generate-autokey, bibtex-clean-entry): New function to
generate an autokey if necessary.
(bibtex-autokey-names, bibtex-autokey-name-change-strings,
bibtex-autokey-name-length, bibtex-autokey-name-separator,
bibtex-autokey-year-length, bibtex-autokey-titlewords,
bibtex-autokey-title-terminators,
bibtex-autokey-titlewords-stretch,
bibtex-autokey-titleword-first-ignore,
bibtex-autokey-titleword-abbrevs,
bibtex-autokey-titleword-change-strings,
bibtex-autokey-titleword-length,
bibtex-autokey-titleword-separator,
bibtex-autokey-name-year-separator,
bibtex-autokey-year-title-separator): New variables related to
bibtex-generate-autokey.
(bibtex-find-entry-location): Optional second parameter maybedup
to tell it that entering a duplicate entry isn't to report by an
error but by the return value of the function (necessary for
bibtex-clean-entry to find the correct position of an entry with
an autogenerated key without disturbing the user with unwanted
messages).
(bibtex-help-message): New variable to avoid printing of help
messages in the echo area.
(assoc-of-regexp): New function to match an alist of regexps.
(bibtex-string-files, bibtex-completion-candidates, bibtex-mode):
New variables to allow bibtex-complete-string to work on strings
initialized from a variable and from @String definitions in a list
of files, too.
(bibtex-predefined-strings, bibtex-entry-field-alist): Changed to
user options.
(bibtex-mode): Changed doc string.
(many functions and variables): Changed documentation strings of
variables and functions to hold a complete sentence in the first
line.
(bibtex-print-help-message): Now line dependent and reports if it
is called outside a BibTeX field.
(validate-bibtex-buffer): Completely rewritten to validate, if
buffer is syntactically correct.
(find-bibtex-duplicates): Moved into validate-bibtex-buffer.
(ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry,
bibtex-ispell-entry, beginning-of-bibtex-entry,
bibtex-beginning-of-entry, end-of-bibtex-entry,
bibtex-end-of-entry, hide-bibtex-entry-bodies,
bibtex-hide-entry-bodies, narrow-to-bibtex-entry,
bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries,
validate-bibtex-buffer, bibtex-validate-buffer,
find-bibtex-entry-location, bibtex-find-entry-location): All
interactive functions are renamed, so that any interface function
begins with "bibtex-". Mapping:
ispell-abstract --> bibtex-ispell-abstract
ispell-bibtex-entry --> bibtex-ispell-entry
beginning-of-bibtex-entry --> bibtex-beginning-of-entry
end-of-bibtex-entry --> bibtex-end-of-entry
hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies
narrow-to-bibtex-entry --> bibtex-narrow-to-entry
sort-bibtex-entries --> bibtex-sort-entries
validate-bibtex-buffer --> bibtex-validate-buffer
find-bibtex-entry-location --> bibtex-find-entry-location
(bibtex-maintain-sorted-entries,
bibtex-sort-ignore-string-entries): Default is now t.
(bibtex-complete-string): String list is built from additional
string list bibtex-predefined-string and current strings in file.
(string-equalp): Deleted and substituted by string-equal.
(assoc-string-equalp): Renamed to assoc-ignore-case.
(bibtex-entry): Reference key can be entered with completion. All
reference keys that are defined in buffer and all labels that
appear in crossreference entries are object to completion.
(Entry types): Changed order of entries in menu "entry types".
(bibtex-entry-field-alist): Changed order of entries slightly to
be more conform with standard BibTeX style layouts.
(bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often
used types on control keys, sometimes used types on normal keys,
rarely used types on shift keys, almost never used types on meta
keys).
(bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart
widen and function hide-bibtex-entry-bodies and counterpart
show-all bounded to appropriate local keys.
(bibtex-abbrev-table): Deleted
(bibtex-current-entry-label, put-string-on-kill-ring): Deleted
(AUCTeX provides all the functionality needed for citation
completion).
(bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next,
bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and
bibtex-pop-next were to slow for larger BibTeX files).
(bibtex-pop-previous, bibtex-pop-next): Delimiters from previous
or next entry are changed to actual delimters if necessary.
(bibtex-entry): Fixed bug (False entry wasn't reported in error
message if bibtex-entry was called with undefined reference name).
(bibtex-entry-field-alist, bibtex-entry, bibtex-make-field,
bibtex-next-field, bibtex-clean-entry): Every reference entry now
contains a comment in addition to the name of the reference. This
comment appears in the echo area if you start editing that field
(after calling bibtex-next-field).
(bibtex-include-OPTcrossref, bibtex-entry): Changed
bibtex-include-OPTcrossref from single boolean variable to hold a
list of reference names which should have a crossref field.
(bibtex-complete-word): New function, which completes word
fragment before point to the longest prefix of predefined strings
in the buffer in the same way that ispell-complete-word operates
for words found in the dictionary.
(bibtex-reference-head): Start of bibtex-reference-head changed
from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and
bibtex-pop-next didn't work, probably due to a bug in
re-search-forward).
(several functions): Added support for {} as field delimiters
(better than '"' for accented characters.
(bibtex-clean-entry): If optional field crossref is empty or
missing, former optional fields (if bibtex-include-OPTcrossref was
t) are necessary again. bibtex-clean-entry complains if they are
empty but not if they are missing, so you can intenionally omit
them, e. g. for a pseudo @Journal entry (needed for
crossreferences) made out of an @article with missing non-optional
fields.
Menu bar entries aren't centered anymore.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 23 Dec 1994 04:18:29 +0000 |
parents | 089ea68c1fdb |
children | 3070ab43f748 |
rev | line source |
---|---|
792
45d748a65f24
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
773
diff
changeset
|
1 ;;; upd-copyr.el --- update the copyright notice in a GNU Emacs Lisp file |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
611
diff
changeset
|
2 |
5603
f369023b3cc3
(update-copyright): Wrap final copyright-matching regexp in parens, so \1
Roland McGrath <roland@gnu.org>
parents:
4647
diff
changeset
|
3 ;;; Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. |
841 | 4 |
773
9c89fd7ddd41
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
718
diff
changeset
|
5 ;; Author: Roland McGrath <roland@gnu.ai.mit.edu> |
814
38b2499cb3e9
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
792
diff
changeset
|
6 ;; Keywords: maint |
773
9c89fd7ddd41
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
718
diff
changeset
|
7 |
841 | 8 ;;; This file is part of GNU Emacs. |
9 | |
288 | 10 ;;; This program is free software; you can redistribute it and/or modify |
11 ;;; it under the terms of the GNU General Public License as published by | |
12 ;;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;;; any later version. | |
14 ;;; | |
15 ;;; This program is distributed in the hope that it will be useful, | |
16 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;;; GNU General Public License for more details. | |
19 ;;; | |
20 ;;; A copy of the GNU General Public License can be obtained from this | |
21 ;;; program's author (send electronic mail to roland@ai.mit.edu) or from | |
22 ;;; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA | |
23 ;;; 02139, USA. | |
24 | |
773
9c89fd7ddd41
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
718
diff
changeset
|
25 ;;; Code: |
9c89fd7ddd41
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
718
diff
changeset
|
26 |
288 | 27 (defconst current-year (substring (current-time-string) -4) |
28 "String representing the current year.") | |
29 | |
30 (defvar current-gpl-version "2" | |
31 "String representing the current version of the GPL.") | |
32 | |
290 | 33 ;;;###autoload |
288 | 34 (defvar replace-copying-with nil |
35 "*If non-nil, replace copying notices with this file.") | |
36 | |
718 | 37 (defvar inhibit-update-copyright nil |
38 "If nil, ask the user whether or not to update the copyright notice. | |
39 If the user has said no, we set this to t locally.") | |
40 | |
288 | 41 ;;;###autoload |
581 | 42 (defun update-copyright (&optional replace ask-upd ask-year) |
288 | 43 "Update the copyright notice at the beginning of the buffer |
44 to indicate the current year. If optional arg REPLACE is given | |
45 \(interactively, with prefix arg\) replace the years in the notice | |
46 rather than adding the current year after them. | |
47 If `replace-copying-with' is set, the copying permissions following the | |
581 | 48 copyright are replaced as well. |
49 | |
50 If optional third argument ASK is non-nil, the user is prompted for whether | |
1754
71e65e9d4f86
(update-copyright): Doc fix.
Roland McGrath <roland@gnu.org>
parents:
841
diff
changeset
|
51 or not to update the copyright. If optional fourth argument ASK-YEAR is |
581 | 52 non-nil, the user is prompted for whether or not to replace the year rather |
53 than adding to it." | |
288 | 54 (interactive "*P") |
55 (save-excursion | |
56 (save-restriction | |
57 (widen) | |
58 (goto-char (point-min)) | |
4647
4becc54c89df
(update-copyright): Handle two-digit years with apostrophes.
Roland McGrath <roland@gnu.org>
parents:
1754
diff
changeset
|
59 ;; Handle abbreviated year lists like "1800, 01, 02, 03" |
4becc54c89df
(update-copyright): Handle two-digit years with apostrophes.
Roland McGrath <roland@gnu.org>
parents:
1754
diff
changeset
|
60 ;; or "1900, '01, '02, '03". |
4becc54c89df
(update-copyright): Handle two-digit years with apostrophes.
Roland McGrath <roland@gnu.org>
parents:
1754
diff
changeset
|
61 (if (re-search-forward (concat "\\(" (substring current-year 0 2) |
4becc54c89df
(update-copyright): Handle two-digit years with apostrophes.
Roland McGrath <roland@gnu.org>
parents:
1754
diff
changeset
|
62 "\\)?" |
4becc54c89df
(update-copyright): Handle two-digit years with apostrophes.
Roland McGrath <roland@gnu.org>
parents:
1754
diff
changeset
|
63 "\\([0-9][0-9]\\(,\\s \\)+\\)*'?" |
718 | 64 (substring current-year 2)) |
65 nil t) | |
581 | 66 (or ask-upd |
67 (message "Copyright notice already includes %s." current-year)) | |
288 | 68 (goto-char (point-min)) |
718 | 69 (if (and (not inhibit-update-copyright) |
70 (or (not ask-upd) | |
581 | 71 ;; If implicit, narrow it down to things that |
72 ;; look like GPL notices. | |
73 (prog1 | |
74 (search-forward "is free software" nil t) | |
75 (goto-char (point-min)))) | |
718 | 76 (re-search-forward |
5603
f369023b3cc3
(update-copyright): Wrap final copyright-matching regexp in parens, so \1
Roland McGrath <roland@gnu.org>
parents:
4647
diff
changeset
|
77 "[Cc]opyright[^0-9]*\\(\\(\\([-, \t]*\\([0-9]+\\)\\)\\)+\\)" |
581 | 78 nil t) |
79 (or (not ask-upd) | |
80 (save-window-excursion | |
81 (pop-to-buffer (current-buffer)) | |
82 (save-excursion | |
83 ;; Show the user the copyright. | |
84 (goto-char (point-min)) | |
85 (sit-for 0) | |
718 | 86 (or (y-or-n-p "Update copyright? ") |
87 (progn | |
88 (set (make-local-variable | |
89 'inhibit-update-copyright) t) | |
90 nil)))))) | |
581 | 91 (progn |
92 (setq replace | |
93 (or replace | |
94 (and ask-year | |
95 (save-window-excursion | |
96 (pop-to-buffer (current-buffer)) | |
97 (save-excursion | |
98 ;; Show the user the copyright. | |
99 (goto-char (point-min)) | |
100 (sit-for 0) | |
101 (y-or-n-p "Replace copyright year? ")))))) | |
102 (if replace | |
103 (delete-region (match-beginning 1) (match-end 1)) | |
104 (insert ", ")) | |
105 (insert current-year) | |
106 (message "Copyright updated to %s%s." | |
107 (if replace "" "include ") current-year) | |
611 | 108 (if replace-copying-with |
109 (let ((case-fold-search t) | |
110 beg) | |
111 (goto-char (point-min)) | |
112 ;; Find the beginning of the copyright. | |
113 (if (search-forward "copyright" nil t) | |
114 (progn | |
115 ;; Look for a blank line or a line | |
116 ;; containing only comment chars. | |
117 (if (re-search-forward "^\\(\\s \\s<\\|\\s>\\)*$" nil t) | |
118 (forward-line 1) | |
119 (with-output-to-temp-buffer "*Help*" | |
120 (princ (substitute-command-keys "\ | |
288 | 121 I don't know where the copying notice begins. |
122 Put point there and hit \\[exit-recursive-edit].")) | |
9844
089ea68c1fdb
(update-copyright): Set help-mode in *Help* buffer.
Karl Heuer <kwzh@gnu.org>
parents:
5603
diff
changeset
|
123 (save-excursion |
089ea68c1fdb
(update-copyright): Set help-mode in *Help* buffer.
Karl Heuer <kwzh@gnu.org>
parents:
5603
diff
changeset
|
124 (set-buffer standard-output) |
089ea68c1fdb
(update-copyright): Set help-mode in *Help* buffer.
Karl Heuer <kwzh@gnu.org>
parents:
5603
diff
changeset
|
125 (help-mode)) |
611 | 126 (recursive-edit))) |
127 (setq beg (point)) | |
128 (or (search-forward "02139, USA." nil t) | |
129 (with-output-to-temp-buffer "*Help*" | |
130 (princ (substitute-command-keys "\ | |
291 | 131 I don't know where the copying notice ends. |
288 | 132 Put point there and hit \\[exit-recursive-edit].")) |
9844
089ea68c1fdb
(update-copyright): Set help-mode in *Help* buffer.
Karl Heuer <kwzh@gnu.org>
parents:
5603
diff
changeset
|
133 (save-excursion |
089ea68c1fdb
(update-copyright): Set help-mode in *Help* buffer.
Karl Heuer <kwzh@gnu.org>
parents:
5603
diff
changeset
|
134 (set-buffer standard-output) |
089ea68c1fdb
(update-copyright): Set help-mode in *Help* buffer.
Karl Heuer <kwzh@gnu.org>
parents:
5603
diff
changeset
|
135 (help-mode)) |
611 | 136 (recursive-edit))) |
137 (delete-region beg (point)))) | |
138 (insert-file replace-copying-with)) | |
139 (if (re-search-forward | |
140 "; either version \\(.+\\), or (at your option)" | |
141 nil t) | |
142 (progn | |
143 (goto-char (match-beginning 1)) | |
144 (delete-region (point) (match-end 1)) | |
145 (insert current-gpl-version)))) | |
581 | 146 (or ask-upd |
611 | 147 (error "This buffer contains no copyright notice!")))))))) |
581 | 148 |
149 ;;;###autoload | |
150 (defun ask-to-update-copyright () | |
151 "If the current buffer contains a copyright notice that is out of date, | |
152 ask the user if it should be updated with `update-copyright' (which see). | |
153 Put this on write-file-hooks." | |
154 (update-copyright nil t t) | |
155 ;; Be sure return nil; if a write-file-hook return non-nil, | |
156 ;; the file is presumed to be already written. | |
157 nil) | |
288 | 158 |
159 (provide 'upd-copyr) | |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
611
diff
changeset
|
160 |
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
611
diff
changeset
|
161 ;;; upd-copyr.el ends here |