Mercurial > emacs
annotate lisp/emacs-lisp/copyright.el @ 72863:526dc1f36b09
(produce_image_glyph): Automatically crop wide images at
right window edge so we can draw the cursor on the same row to
avoid confusing redisplay by placing the cursor outside the visible
window area.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Thu, 14 Sep 2006 09:37:44 +0000 |
parents | 067115a6e738 |
children | 7a3f13e2dd57 c5406394f567 |
rev | line source |
---|---|
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
1 ;;; copyright.el --- update the copyright notice in current buffer |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
611
diff
changeset
|
2 |
64751
5b1a238fcbb4
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64085
diff
changeset
|
3 ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1998, 2001, 2002, 2003, |
68648
067115a6e738
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64751
diff
changeset
|
4 ;; 2004, 2005, 2006 Free Software Foundation, Inc. |
841 | 5 |
23869 | 6 ;; Author: Daniel Pfeiffer <occitan@esperanto.org> |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
7 ;; Keywords: maint, tools |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
8 |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
9 ;; This file is part of GNU Emacs. |
773
9c89fd7ddd41
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
718
diff
changeset
|
10 |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
11 ;; GNU Emacs is free software; you can redistribute it and/or modify |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
12 ;; it under the terms of the GNU General Public License as published by |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
13 ;; the Free Software Foundation; either version 2, or (at your option) |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
14 ;; any later version. |
841 | 15 |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
16 ;; GNU Emacs is distributed in the hope that it will be useful, |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
19 ;; GNU General Public License for more details. |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
20 |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
21 ;; You should have received a copy of the GNU General Public License |
14169 | 22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
64085 | 23 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
24 ;; Boston, MA 02110-1301, USA. | |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
25 |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
26 ;;; Commentary: |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
27 |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
28 ;; Allows updating the copyright year and above mentioned GPL version manually |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
29 ;; or when saving a file. |
53504
f657faa17ea1
Fix comment to recommend
Simon Josefsson <jas@extundo.com>
parents:
53499
diff
changeset
|
30 ;; Do (add-hook 'before-save-hook 'copyright-update), or use |
f657faa17ea1
Fix comment to recommend
Simon Josefsson <jas@extundo.com>
parents:
53499
diff
changeset
|
31 ;; M-x customize-variable RET before-save-hook RET. |
288 | 32 |
773
9c89fd7ddd41
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
718
diff
changeset
|
33 ;;; Code: |
9c89fd7ddd41
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
718
diff
changeset
|
34 |
21328 | 35 (defgroup copyright nil |
36 "Update the copyright notice in current buffer." | |
37 :group 'tools) | |
38 | |
39 (defcustom copyright-limit 2000 | |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
40 "*Don't try to update copyright beyond this position unless interactive. |
42732
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
41 A value of nil means to search whole buffer." |
21328 | 42 :group 'copyright |
43 :type '(choice (integer :tag "Limit") | |
44 (const :tag "No limit"))) | |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
45 |
52286 | 46 ;; The character classes have the Latin-1 version and the Latin-9 |
47 ;; version, which is probably enough. | |
21328 | 48 (defcustom copyright-regexp |
43169
717543e790e1
(copyright-regexp): Delete the unibyte copyright symbol; it's redundant.
Richard M. Stallman <rms@gnu.org>
parents:
42892
diff
changeset
|
49 "\\([]\\|@copyright{}\\|[Cc]opyright\\s *:?\\s *\\(?:(C)\\)?\ |
717543e790e1
(copyright-regexp): Delete the unibyte copyright symbol; it's redundant.
Richard M. Stallman <rms@gnu.org>
parents:
42892
diff
changeset
|
50 \\|[Cc]opyright\\s *:?\\s *[]\\)\ |
53507 | 51 \\s *\\([1-9]\\([-0-9, ';/*%#\n\t]\\|\\s<\\|\\s>\\)*[0-9]+\\)" |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
52 "*What your copyright notice looks like. |
21328 | 53 The second \\( \\) construct must match the years." |
54 :group 'copyright | |
55 :type 'regexp) | |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
56 |
56685
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
57 (defcustom copyright-years-regexp |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
58 "\\(\\s *\\)\\([1-9]\\([-0-9, ';/*%#\n\t]\\|\\s<\\|\\s>\\)*[0-9]+\\)" |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
59 "*Match additional copyright notice years. |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
60 The second \\( \\) construct must match the years." |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
61 :group 'copyright |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
62 :type 'regexp) |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
63 |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
64 |
21328 | 65 (defcustom copyright-query 'function |
42732
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
66 "*If non-nil, ask user before changing copyright. |
21328 | 67 When this is `function', only ask when called non-interactively." |
68 :group 'copyright | |
69 :type '(choice (const :tag "Do not ask") | |
22580
a191ee97be00
(copyright-query): Use `other' widget
Andreas Schwab <schwab@suse.de>
parents:
21754
diff
changeset
|
70 (const :tag "Ask unless interactive" function) |
a191ee97be00
(copyright-query): Use `other' widget
Andreas Schwab <schwab@suse.de>
parents:
21754
diff
changeset
|
71 (other :tag "Ask" t))) |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
72 |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
73 |
14040 | 74 ;; when modifying this, also modify the comment generated by autoinsert.el |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
75 (defconst copyright-current-gpl-version "2" |
42732
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
76 "String representing the current version of the GPL or nil.") |
288 | 77 |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
78 (defvar copyright-update t) |
718 | 79 |
35129
9f38c893ea39
(copyright-current-year): Now a defvar.
Eli Zaretskii <eliz@gnu.org>
parents:
27329
diff
changeset
|
80 ;; This is a defvar rather than a defconst, because the year can |
9f38c893ea39
(copyright-current-year): Now a defvar.
Eli Zaretskii <eliz@gnu.org>
parents:
27329
diff
changeset
|
81 ;; change during the Emacs session. |
42732
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
82 (defvar copyright-current-year (substring (current-time-string) -4) |
35129
9f38c893ea39
(copyright-current-year): Now a defvar.
Eli Zaretskii <eliz@gnu.org>
parents:
27329
diff
changeset
|
83 "String representing the current year.") |
9f38c893ea39
(copyright-current-year): Now a defvar.
Eli Zaretskii <eliz@gnu.org>
parents:
27329
diff
changeset
|
84 |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
85 (defun copyright-update-year (replace noquery) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
86 (when (re-search-forward copyright-regexp (+ (point) copyright-limit) t) |
56685
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
87 ;; If the years are continued onto multiple lined |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
88 ;; that are marked as comments, skip to the end of the years anyway. |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
89 (while (save-excursion |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
90 (and (eq (following-char) ?,) |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
91 (progn (forward-char 1) t) |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
92 (progn (skip-chars-forward " \t") (eolp)) |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
93 comment-start-skip |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
94 (save-match-data |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
95 (forward-line 1) |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
96 (and (looking-at comment-start-skip) |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
97 (goto-char (match-end 0)))) |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
98 (save-match-data |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
99 (looking-at copyright-years-regexp)))) |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
100 (forward-line 1) |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
101 (re-search-forward comment-start-skip) |
22f1ac802ffd
(copyright-years-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
53507
diff
changeset
|
102 (re-search-forward copyright-years-regexp)) |
56706
15d087a81874
(copyright-update-year): Delete code that replaces 20xy with xy.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56685
diff
changeset
|
103 |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
104 ;; Note that `current-time-string' isn't locale-sensitive. |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
105 (setq copyright-current-year (substring (current-time-string) -4)) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
106 (unless (string= (buffer-substring (- (match-end 2) 2) (match-end 2)) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
107 (substring copyright-current-year -2)) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
108 (if (or noquery |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
109 (y-or-n-p (if replace |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
110 (concat "Replace copyright year(s) by " |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
111 copyright-current-year "? ") |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
112 (concat "Add " copyright-current-year |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
113 " to copyright? ")))) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
114 (if replace |
61330
f6862f0984bc
(copyright-update-year): Replace the right subexpression. Suggested
Lute Kamstra <lute@gnu.org>
parents:
60320
diff
changeset
|
115 (replace-match copyright-current-year t t nil 2) |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
116 (let ((size (save-excursion (skip-chars-backward "0-9")))) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
117 (if (and (eq (% (- (string-to-number copyright-current-year) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
118 (string-to-number (buffer-substring |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
119 (+ (point) size) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
120 (point)))) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
121 100) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
122 1) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
123 (or (eq (char-after (+ (point) size -1)) ?-) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
124 (eq (char-after (+ (point) size -2)) ?-))) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
125 ;; This is a range so just replace the end part. |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
126 (delete-char size) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
127 ;; Insert a comma with the preferred number of spaces. |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
128 (insert |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
129 (save-excursion |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
130 (if (re-search-backward "[0-9]\\( *, *\\)[0-9]" |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
131 (line-beginning-position) t) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
132 (match-string 1) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
133 ", "))) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
134 ;; If people use the '91 '92 '93 scheme, do that as well. |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
135 (if (eq (char-after (+ (point) size -3)) ?') |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
136 (insert ?'))) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
137 ;; Finally insert the new year. |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
138 (insert (substring copyright-current-year size)))))))) |
35129
9f38c893ea39
(copyright-current-year): Now a defvar.
Eli Zaretskii <eliz@gnu.org>
parents:
27329
diff
changeset
|
139 |
288 | 140 ;;;###autoload |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
141 (defun copyright-update (&optional arg interactivep) |
42732
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
142 "Update copyright notice at beginning of buffer to indicate the current year. |
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
143 With prefix ARG, replace the years in the notice rather than adding |
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
144 the current year after them. If necessary, and |
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
145 `copyright-current-gpl-version' is set, any copying permissions |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
146 following the copyright are updated as well. |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
147 If non-nil, INTERACTIVEP tells the function to behave as when it's called |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
148 interactively." |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
149 (interactive "*P\nd") |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
150 (when (or copyright-update interactivep) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
151 (let ((noquery (or (not copyright-query) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
152 (and (eq copyright-query 'function) interactivep)))) |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
153 (save-excursion |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
154 (save-restriction |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
155 (widen) |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
156 (goto-char (point-min)) |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
157 (copyright-update-year arg noquery) |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
158 (goto-char (point-min)) |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
159 (and copyright-current-gpl-version |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
160 ;; match the GPL version comment in .el files, including the |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
161 ;; bilingual Esperanto one in two-column, and in texinfo.tex |
42732
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
162 (re-search-forward "\\(the Free Software Foundation;\ |
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
163 either \\|; a\\^u eldono \\([0-9]+\\)a, ? a\\^u (la\\^u via \\)\ |
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
164 version \\([0-9]+\\), or (at" |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
165 (+ (point) copyright-limit) t) |
42732
7db08aae2e67
(copyright-regexp): Make (C) optional.
Richard M. Stallman <rms@gnu.org>
parents:
42533
diff
changeset
|
166 (not (string= (match-string 3) copyright-current-gpl-version)) |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
167 (or noquery |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
168 (y-or-n-p (concat "Replace GPL version by " |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
169 copyright-current-gpl-version "? "))) |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
170 (progn |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
171 (if (match-end 2) |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
172 ;; Esperanto bilingual comment in two-column.el |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
173 (replace-match copyright-current-gpl-version t t nil 2)) |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
174 (replace-match copyright-current-gpl-version t t nil 3)))) |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
175 (set (make-local-variable 'copyright-update) nil))) |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
176 ;; If a write-file-hook returns non-nil, the file is presumed to be written. |
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
177 nil)) |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
178 |
581 | 179 |
180 ;;;###autoload | |
60319
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
181 (defun copyright-fix-years () |
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
182 "Convert 2 digit years to 4 digit years. |
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
183 Uses heuristic: year >= 50 means 19xx, < 50 means 20xx." |
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
184 (interactive) |
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
185 (widen) |
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
186 (goto-char (point-min)) |
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
187 (if (re-search-forward copyright-regexp (+ (point) copyright-limit) t) |
62508
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
188 (let ((s (match-beginning 2)) |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
189 (e (copy-marker (1+ (match-end 2)))) |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
190 (p (make-marker)) |
60319
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
191 last) |
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
192 (goto-char s) |
62508
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
193 (while (re-search-forward "[0-9]+" e t) |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
194 (set-marker p (point)) |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
195 (goto-char (match-beginning 0)) |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
196 (let ((sep (char-before)) |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
197 (year (string-to-number (match-string 0)))) |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
198 (when (and sep |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
199 (/= (char-syntax sep) ?\s) |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
200 (/= sep ?-)) |
60319
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
201 (insert " ")) |
62508
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
202 (when (< year 100) |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
203 (insert (if (>= year 50) "19" "20")))) |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
204 (goto-char p) |
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
205 (setq last p)) |
60319
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
206 (when last |
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
207 (goto-char last) |
62375
6a8938e81aa7
(copyright-fix-years): Match properly if the first year is 2-digit.
Richard M. Stallman <rms@gnu.org>
parents:
61330
diff
changeset
|
208 ;; Don't mess up whitespace after the years. |
6a8938e81aa7
(copyright-fix-years): Match properly if the first year is 2-digit.
Richard M. Stallman <rms@gnu.org>
parents:
61330
diff
changeset
|
209 (skip-chars-backward " \t") |
6a8938e81aa7
(copyright-fix-years): Match properly if the first year is 2-digit.
Richard M. Stallman <rms@gnu.org>
parents:
61330
diff
changeset
|
210 (save-restriction |
6a8938e81aa7
(copyright-fix-years): Match properly if the first year is 2-digit.
Richard M. Stallman <rms@gnu.org>
parents:
61330
diff
changeset
|
211 (narrow-to-region (point-min) (point)) |
6a8938e81aa7
(copyright-fix-years): Match properly if the first year is 2-digit.
Richard M. Stallman <rms@gnu.org>
parents:
61330
diff
changeset
|
212 (let ((fill-prefix " ")) |
62508
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
213 (fill-region s last)))) |
60319
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
214 (set-marker e nil) |
62508
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
215 (set-marker p nil) |
60319
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
216 (copyright-update nil t)) |
62508
39dc00cd1f8a
(copyright-fix-years): Make sure all years are fixed. Don't insert a
Lute Kamstra <lute@gnu.org>
parents:
62375
diff
changeset
|
217 (message "No copyright message"))) |
60319
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
218 |
68fb18eab7a7
(copyright-fix-years): New command.
Kim F. Storm <storm@cua.dk>
parents:
56706
diff
changeset
|
219 ;;;###autoload |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
220 (define-skeleton copyright |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
221 "Insert a copyright by $ORGANIZATION notice at cursor." |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
222 "Company: " |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
223 comment-start |
35129
9f38c893ea39
(copyright-current-year): Now a defvar.
Eli Zaretskii <eliz@gnu.org>
parents:
27329
diff
changeset
|
224 "Copyright (C) " `(substring (current-time-string) -4) " by " |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
225 (or (getenv "ORGANIZATION") |
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
226 str) |
51564
09736ff1baa6
(copyright-update-year): New function extracted from copyright-update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43169
diff
changeset
|
227 '(if (> (point) (+ (point-min) copyright-limit)) |
12503
f77164f5bc6b
New name for generalized upd-copyr.el
Karl Heuer <kwzh@gnu.org>
parents:
10510
diff
changeset
|
228 (message "Copyright extends beyond `copyright-limit' and won't be updated automatically.")) |
39764
fb28cd06b2f6
(copyright): Add final \n.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
229 comment-end \n) |
288 | 230 |
18383 | 231 (provide 'copyright) |
232 | |
27229 | 233 ;; For the copyright sign: |
234 ;; Local Variables: | |
235 ;; coding: emacs-mule | |
236 ;; End: | |
237 | |
52401 | 238 ;;; arch-tag: b4991afb-b6b1-4590-bebe-e076d9d4aee8 |
38436
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
35129
diff
changeset
|
239 ;;; copyright.el ends here |