authors.el 54 KB
Newer Older
1
;;; authors.el --- utility for maintaining Emacs's AUTHORS file -*-coding: utf-8 -*-
Gerd Moellmann's avatar
Gerd Moellmann committed
2

3
;; Copyright (C) 2000-2014 Free Software Foundation, Inc.
Gerd Moellmann's avatar
Gerd Moellmann committed
4

5
;; Author: Gerd Moellmann <gerd@gnu.org>
6
;; Maintainer: Kim F. Storm <storm@cua.dk>
7
;; Keywords: maint
8
;; Package: emacs
9

Gerd Moellmann's avatar
Gerd Moellmann committed
10 11
;; This file is part of GNU Emacs.

12
;; GNU Emacs is free software: you can redistribute it and/or modify
Gerd Moellmann's avatar
Gerd Moellmann committed
13
;; it under the terms of the GNU General Public License as published by
14 15
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
Gerd Moellmann's avatar
Gerd Moellmann committed
16 17 18 19 20 21 22

;; 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
23
;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
Gerd Moellmann's avatar
Gerd Moellmann committed
24 25 26 27

;;; Commentary:

;; Use M-x authors RET to create an *Authors* buffer that can used as
28
;; or merged with Emacs's AUTHORS file.
Gerd Moellmann's avatar
Gerd Moellmann committed
29 30 31

;;; Code:

32
(defvar authors-coding-system 'utf-8
33 34
  "Coding system used in the AUTHORS file.")

Gerd Moellmann's avatar
Gerd Moellmann committed
35 36
(defconst authors-many-files 20
  "Maximum number of files for which to print individual information.
37 38 39
If an author has modified more files, only the names of the most
frequently modified files are printed and a count of the additional
files.")
Gerd Moellmann's avatar
Gerd Moellmann committed
40 41

(defconst authors-aliases
42
  '(
43
    ("Aaron S. Hawley" "Aaron Hawley")
Glenn Morris's avatar
Glenn Morris committed
44
    ("Alexandru Harsanyi" "Alex Harsanyi")
45
    ("Andrew Csillag" "Drew Csillag")
46
    ("Anna M. Bigatti" "Anna Bigatti")
47 48
    ("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc."
     "Barry A. Warsaw, ITB" "Barry Warsaw")
Glenn Morris's avatar
Glenn Morris committed
49
    ("Bill Carpenter" "WJ Carpenter")
50 51
    ("Bill Mann" "William F. Mann")
    ("Bill Rozas" "Guillermo J. Rozas")
52
    ("Björn Torkelsson" "Bjorn Torkelsson")
53
    ("Brian Fox" "Brian J. Fox")
Glenn Morris's avatar
Glenn Morris committed
54
    ("Brian P Templeton" "BT Templeton")
Glenn Morris's avatar
Glenn Morris committed
55 56
    ("Brian Sniffen" "Brian T. Sniffen")
    ("David Abrahams" "Dave Abrahams")
57
    ("David J. Biesack" "David Biesack")
58
    ("David De La Harpe Golden" "David Golden")
59
    ("David Gillespie" "Dave Gillespie")
60
    ("David Kågedal" "David K..edal")
61
    ("David M. Koppelman" "David Koppelman")
62
    ("David M. Smith" "David Smith" "David M Smith")
63
    ("David O'Toole" "David T. O'Toole")
64
    ("Deepak Goel" "D. Goel")
65
    ("Ed L. Cashin" "Ed L Cashin")
66
    ("Edward M. Reingold" "Ed\\(ward\\( M\\)?\\)? Reingold" "Reingold Edward M")
Kim F. Storm's avatar
Kim F. Storm committed
67
    ("Emilio C. Lopes" "Emilio Lopes")
68 69
    ("Eric M. Ludlam" "Eric Ludlam")
    ("Eric S. Raymond" "Eric Raymond")
70
    ("Fabián Ezequiel Gallina" "Fabian Ezequiel Gallina" "Fabi.n E\\. Gallina")
71
    ("Francis J. Wright" "Dr Francis J. Wright" "Francis Wright")
72 73
    ("François Pinard" "Francois Pinard")
    ("Francesco Potortì" "Francesco Potorti" "Francesco Potorti`")
74
    ("Frederic Pierresteguy" "Fred Pierresteguy")
75
    ("Gerd Möllmann" "Gerd Moellmann")
76
    ("Hallvard B. Furuseth" "Hallvard B Furuseth" "Hallvard Furuseth")
77
    ("Hrvoje Nikšić" "Hrvoje Niksic")
Glenn Morris's avatar
Glenn Morris committed
78 79
    ;; lisp/org/ChangeLog 2010-11-11.
    (nil "aaa bbb")
80
    (nil "Code Extracted") ; lisp/newcomment.el's "Author:" header
81
    ("Jaeyoun Chung" "Jae-youn Chung" "Jae-you Chung" "Chung Jae-youn")
82
    ("Jan Djärv" "Jan D." "Jan Djarv")
83
    ("Jay K. Adams" "Jay Adams")
84
    ("Jérôme Marant" "Jérôme Marant" "Jerome Marant")
85
    ("Jens-Ulrik Holger Petersen" "Jens-Ulrik Petersen")
86
    ("Jeremy Bertram Maitin-Shepard" "Jeremy Maitin-Shepard")
87
    ("Johan Bockgård" "Johan Bockgard")
Glenn Morris's avatar
Glenn Morris committed
88
    ("John J Foerch" "John Foerch")
Kim F. Storm's avatar
Kim F. Storm committed
89
    ("John W. Eaton" "John Eaton")
90
    ("Jonathan I. Kamens" "Jonathan Kamens")
Glenn Morris's avatar
Glenn Morris committed
91
    ("Jorgen Schäfer" "Jorgen Schaefer")
92
    ("Joseph Arceneaux" "Joe Arceneaux")
93
    ("Joseph M. Kelsey" "Joe Kelsey")	; FIXME ?
94
    ("Juan León Lahoz García" "Juan-Leon Lahoz Garcia")
95
    ("Jürgen Hötzel" "Juergen Hoetzel")
96
    ("K. Shane Hartman" "Shane Hartman")
97
    ("Kai Großjohann" "Kai Grossjohann")
98
    ("Karl Berry" "K. Berry")
99
    ("Károly Lőrentey" "Károly Lőrentey" "Lőrentey Károly")
100
    ("Kazushi Marukawa" "Kazushi (Jam) Marukawa")
101
    ("Ken Manheimer" "Kenneth Manheimer")
102
    ("Kenichi Handa" "Ken'ichi Handa" "Kenichi HANDA" "K\\. Handa")
Kim F. Storm's avatar
Kim F. Storm committed
103
    ("Kevin Greiner" "Kevin J. Greiner")
104
    ("Kim F. Storm" "Kim Storm")
105
    ("Kyle Jones" "Kyle E. Jones")
Glenn Morris's avatar
Glenn Morris committed
106
    ("Lars Magne Ingebrigtsen" "Lars Ingebrigtsen")
107
    ("Marcus G. Daniels" "Marcus Daniels")
108
    ("Mark D. Baushke" "Mark D Baushke")
109
    ("Mark E. Shoulson" "Mark Shoulson")
110
    ("Marko Kohtala" "Kohtala Marko")
Glenn Morris's avatar
Glenn Morris committed
111
    ("Agustín Martín" "Agustin Martin" "Agustín Martín Domingo")
112 113
    ("Martin Lorentzon" "Martin Lorentzson")
    ("Matt Swift" "Matthew Swift")
114
    ("Maxime Edouard Robert Froumentin" "Max Froumentin")
Kim F. Storm's avatar
Kim F. Storm committed
115
    ("Michael R. Mauger" "Michael Mauger")
116
    ("Michael D. Ernst" "Michael Ernst")
117
    ("Michaël Cadilhac" "Michael Cadilhac")
118
    ("Michael I. Bushnell" "Michael I Bushnell" "Michael I. Bushnell, p/BSG")
119 120
    ("Michael R. Cook" "Michael Cook")
    ("Michael Sperber" "Michael Sperber \\[Mr. Preprocessor\\]")
Kim F. Storm's avatar
Kim F. Storm committed
121
    ("Mikio Nakajima" "Nakajima Mikio")
122
    ("Nelson Jose dos Santos Ferreira" "Nelson Ferreira")
Glenn Morris's avatar
Glenn Morris committed
123
    ("Noorul Islam" "Noorul Islam K M")
124
    ("Paul Eggert" "Paul R\\. Eggert")
125
    ("Pavel Janík" "Pavel Janík Ml." "Pavel Janik Ml." "Pavel Janik")
126
    ("Pavel Kobiakov" "Pavel Kobyakov")
127
    ("Per Abrahamsen" "Per Abhiddenware")
128
    ("Per Starbäck" "Per Starback")
Glenn Morris's avatar
Glenn Morris committed
129
    ("Peter J. Weisberg" "PJ Weisberg")
130
    ("Peter S. Galbraith" "Peter S Galbraith" "Peter Galbraith")
131
    ("Peter Runestig" "Peter 'luna' Runestig")
Glenn Morris's avatar
Glenn Morris committed
132 133
    ("Piotr Zieliński" "Piotr Zielinski")
    ("Rainer Schöpf" "Rainer Schoepf")
134 135 136
    ("Raja R. Harinath" "Raja R Harinath")
    ("Richard G. Bielawski" "Richard G Bielawski" "Richard Bielawski")
    ("Richard King" "Dick King")
137
    ("Richard M. Stallman" "Richard Stallman" "rms@gnu.org")
138
    ("Robert J. Chassell" "Bob Chassell")
139
    ("Roberto Huelga Díaz" "Roberto Huelga")
140
    ("Roland B. Roberts" "Roland B Roberts" "Roland Roberts")
141
    ("Rui-Tao Dong" "Rui-Tao Dong ~{6-HpLN~}")
Romain Francoise's avatar
Romain Francoise committed
142
    ("Sacha Chua" "Sandra Jean Chua")
143
    ("Sam Steingold" "Sam Shteingold")
144
    ("Satyaki Das" "Indexed search by Satyaki Das")
Glenn Morris's avatar
Glenn Morris committed
145
    ("Sébastien Vauban" "Sebastien Vauban")
146 147
    ;; There are other Stefans.
;;;    ("Stefan Monnier" "Stefan")
148
    ("Steven L. Baur" "SL Baur" "Steven L Baur")
149
    ("Stewart M. Clamen" "Stewart Clamen")
150
    ("Stuart D. Herring" "Stuart Herring" "Davis Herring")
Glenn Morris's avatar
Glenn Morris committed
151
    ("T.V. Raman" "T\\. V\\. Raman")
152
    ("Taichi Kawabata" "KAWABATA,? Taichi")
153
    ("Takaaki Ota" "Tak Ota")
Kim F. Storm's avatar
Kim F. Storm committed
154
    ("Takahashi Naoto" "Naoto Takahashi")
155
    ("Teodor Zlatanov" "Ted Zlatanov")
Glenn Morris's avatar
Glenn Morris committed
156
    ("Thomas Dye" "Tom Dye")
157 158
    ("Thomas Horsley" "Tom Horsley")	; FIXME ?
    ("Thomas Wurgler" "Tom Wurgler")
159
    ("Toby Cubitt" "Toby S\\. Cubitt")
160
    ("Tomohiko Morioka" "MORIOKA Tomohiko")
161 162
    ("Torbjörn Axelsson" "Torbjvrn Axelsson")
    ("Torbjörn Einarsson" "Torbj.*rn Einarsson")
163
    ("Toru Tomabechi" "Toru TOMABECHI")
164
    ("Tsugutomo Enami" "enami tsugutomo")
165
    ("Ulrich Müller" "Ulrich Mueller")
166
    ("Vincent Del Vecchio" "Vince Del Vecchio")
167
    ("William M. Perry" "Bill Perry")
168
    ("Wlodzimierz Bzyl" "W.*dek Bzyl")
169 170
    ("Yoni Rabkin" "Yoni Rabkin Katzenell")
    ("Yoshinori Koseki" "KOSEKI Yoshinori" "小関 吉則")
171
    ("Yutaka NIIBE" "NIIBE Yutaka")
172
    )
Gerd Moellmann's avatar
Gerd Moellmann committed
173 174
  "Alist of author aliases.

175
Each entry is of the form (REALNAME REGEXP...).  If an author's name
176
matches one of the REGEXPs, use REALNAME instead.
177
If REALNAME is nil, ignore that author.")
Gerd Moellmann's avatar
Gerd Moellmann committed
178

Glenn Morris's avatar
Glenn Morris committed
179
;; FIXME seems it would be less fragile to check for O', Mc, etc.
180
(defconst authors-fixed-case
Glenn Morris's avatar
Glenn Morris committed
181 182
  '("Brian van den Broek"
    "Bryan O'Sullivan"
183
    "Christian von Roques"
184
    "Christophe de Dinechin"
185 186 187 188
    "Craig McDaniel"
    "David J. MacKenzie"
    "David McCabe"
    "David O'Toole"
Glenn Morris's avatar
Glenn Morris committed
189
    "Devon Sean McCullough"
190 191 192 193 194 195
    "Dominique de Waleffe"
    "Edward O'Connor"
    "Exal de Jesus Garcia Carrillo"
    "Greg McGary"
    "Hans de Graaff"
    "James TD Smith"
Glenn Morris's avatar
Glenn Morris committed
196
    "Jay McCarthy"
197
    "Joel N. Weber II"
Glenn Morris's avatar
Glenn Morris committed
198
    "Matt McClure"
199 200
    "Michael McNamara"
    "Mike McEwan"
201
    "Nelson Jose dos Santos Ferreira"
202 203
    "Peter von der Ahe"
    "Peter O'Gorman"
Glenn Morris's avatar
Glenn Morris committed
204
    "Piet van Oostrum"
205
    "Roland McGrath"
Glenn Morris's avatar
Glenn Morris committed
206 207
    "Sean O'Halpin"
    "Sean O'Rourke"
Glenn Morris's avatar
Glenn Morris committed
208
    "Thomas DeWeese"
Glenn Morris's avatar
Glenn Morris committed
209
    "Tijs van Bakel")
210
  "List of authors whose names cannot be simply capitalized.")
Gerd Moellmann's avatar
Gerd Moellmann committed
211

212
(defvar authors-public-domain-files
213
  '("emerge\\.el"
214 215 216 217 218 219
    "vi\\.el"
    "feedmail\\.el"
    "mailpost\\.el"
    "hanoi\\.el"
    "meese\\.el"
    "studly\\.el"
220 221 222 223 224 225 226
    "modula2\\.el"
    "nnmaildir\\.el"
    "nnil\\.el"
    "b2m\\.c"
    "unexhp9k800\\.c"
    "emacsclient\\.1"
    "check-doc-strings")
227 228 229
  "List of regexps matching files for which the FSF doesn't need papers.")


230
(defvar authors-obsolete-files-regexps
231
  '(".*loaddefs.el$"			; not obsolete, but auto-generated
Glenn Morris's avatar
Glenn Morris committed
232 233
    "\\.\\(cvs\\|git\\)ignore$"		; obsolete or uninteresting
    "\\.arch-inventory$"
Glenn Morris's avatar
Glenn Morris committed
234
    ;; TODO lib/? Matches other things?
235
    "build-aux/" "m4/" "Emacs.xcodeproj" "mapfiles" "\\.map\\'"
Glenn Morris's avatar
Glenn Morris committed
236
    "preferences\\.\\(nib\\|gorm\\)"
237 238 239
    ;; Generated files that have since been removed.
    "\\(refcard\\(-de\\|-pl\\)?\\|calccard\\|dired-ref\\|orgcard\\|\
gnus-booklet\\|fr-drdref\\)\\.p\\(df\\|s\\)\\'")
240
  "List of regexps matching obsolete files.
Glenn Morris's avatar
Glenn Morris committed
241
Changes to files matching one of the regexps in this list are not listed.")
242

Kim F. Storm's avatar
Kim F. Storm committed
243 244 245 246
(defconst authors-ignored-files
  '("external-lisp"
    "lock" "share-lib" "local-lisp"
    "noleim-Makefile.in"
247 248 249 250 251 252
    "NEWS" "ORDERS" "PROBLEMS" "FAQ" "AUTHORS" "FOR-RELEASE" "TODO" "todo"
    "MACHINES" "SERVICE"
    "README.unicode" "README.multi-tty" "TUTORIAL.translators"
    "NEWS.unicode" "COPYING.DJ" "Makefile.old" "Makefile.am"
    "NEWS.1" "OOOOONEWS...OONEWS" "OOOONEWS" "etc/NEWS"
    "NEWS.1-17" "NEWS.18" "NEWS.19" "NEWS.20" "NEWS.21" "NEWS.22"
253
    "MAINTAINERS" "MH-E-NEWS"
254
    "install.sh" "install-sh" "missing" "mkinstalldirs"
255 256 257 258 259 260
    "termcap.dat" "termcap.src" "termcap.ucb" "termcap"
    "ChangeLog.nextstep" "Emacs.clr" "spec.txt"
    "gfdl.1"
    "texi/Makefile.in"
    "Imakefile" "icons/sink.ico" "aixcc.lex"
    "nxml/char-name/unicode"
261
    "spec.txt"
262
    "js2-mode.el"      ; only installed very briefly, replaced by js.el
263 264 265 266
    ;; In the old imported lisp/url ChangeLog, but never in Emacs.
    "mule-sysdp.el"
    ;; Only briefly present.
    "tests/gnustest-nntp.el" "tests/gnustest-registry.el"
Glenn Morris's avatar
Glenn Morris committed
267 268 269 270 271 272 273 274
    "cedet/tests/testtemplates.cpp"
    "cedet/tests/testusing.cpp"
    "cedet/tests/scopetest.cpp"
    "cedet/tests/scopetest.java"
    "cedet/tests/test.cpp"
    "cedet/tests/test.py"
    "cedet/tests/teststruct.cpp"
    "*.el"
275
    ;; Autogen:
276
    "cus-load.el" "finder-inf.el" "ldefs-boot.el" "loaddefs-boot.el"
Glenn Morris's avatar
Glenn Morris committed
277
    "compile" "config.guess" "config.sub" "depcomp"
278 279 280 281 282
    "autogen/compile" "autogen/config.guess" "autogen/config.in"
    "autogen/config.sub" "autogen/depcomp" "autogen/install-sh"
    "autogen/missing" "autogen"
    "autogen/copy_autogen" ; not generated, but trivial and now removed
    "dir_top"
Glenn Morris's avatar
Glenn Morris committed
283 284 285
    ;; Only existed briefly, then renamed:
    "images/icons/allout-widgets-dark-bg"
    "images/icons/allout-widgets-light-bg"
286
    ;; Never had any meaningful changes logged, now deleted:
287
    "lib/stdarg.in.h" "lib/stdbool.in.h"
Glenn Morris's avatar
Glenn Morris committed
288
    "unidata/bidimirror.awk" "unidata/biditype.awk"
289
    "split-man" "Xkeymap.txt" "ms-7bkermit" "ulimit.hack"
290
    "gnu-hp300" "refcard.bit" "ledit.l" "forms.README" "forms-d2.dat"
291 292
    "CXTERM-DIC/PY.tit" "CXTERM-DIC/ZIRANMA.tit"
    "CXTERM-DIC/CTLau.tit" "CXTERM-DIC/CTLauB.tit"
293 294
    "copying.paper" "celibacy.1" "condom.1" "echo.msg" "sex.6"
    "COOKIES" "INTERVIEW" "MAILINGLISTS" "MOTIVATION"
295 296 297
    "NICKLES.WORTH" "INTERVAL.IDEAS" "RCP"
    "3B-MAXMEM" "AIX.DUMP" "SUN-SUPPORT" "XENIX"
    "CODINGS" "CHARSETS"
Glenn Morris's avatar
Glenn Morris committed
298
    "calc/INSTALL" "calc/Makefile" "calc/README.prev"
Glenn Morris's avatar
Glenn Morris committed
299
    "vms-pp.trans" "_emacs" "batcomp.com" "notes/cpp" ; admin/
Glenn Morris's avatar
Glenn Morris committed
300
    "emacsver.texi.in"
Glenn Morris's avatar
Glenn Morris committed
301 302 303 304 305 306 307 308
    "vpath.sed"
    "Cocoa/Emacs.base/Contents/Info.plist"
    "Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings"
    "GNUstep/Emacs.base/Resources/Info-gnustep.plist"
    "GNUstep/Emacs.base/Resources/Emacs.desktop"
    "Cocoa/Emacs.base/Contents/Resources/English.lproj"
    ;; Only existed briefly, then deleted:
    "coccinelle/overlay.cocci" "coccinelle/symbol.cocci"
309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334
    ;; MH-E stuff not in Emacs:
    "import-emacs" "release-utils"
    ;; Erc stuff not in Emacs:
    "ChangeLog.2001" "ChangeLog.2002" "ChangeLog.2003" "ChangeLog.2004"
    "ChangeLog.2005"
    "README.extras" "dir-template" "mkChangeLog" "MkChangeLog" "erc-auto.in"
    "CREDITS" "HACKING"
    "debian/changelog"
    "debian/control"
    "debian/copyright"
    "debian/maint/conffiles"
    "debian/maint/conffiles.in"
    "debian/maint/postinst"
    "debian/maint/postinst.in"
    "debian/maint/prerm"
    "debian/maint/prerm.in"
    "debian/README.Debian"
    "debian/README.erc-speak"
    "debian/rules"
    "debian/scripts/install"
    "debian/scripts/install.in"
    "debian/scripts/remove"
    "debian/scripts/remove.in"
    "debian/scripts/startup"
    "debian/scripts/startup.erc"
    "debian/scripts/startup.erc-speak"
Glenn Morris's avatar
Glenn Morris committed
335 336
    ;; Used to be in admin, not very interesting.
    "emacs-pretesters" "make-announcement" "make-changelog-diff"
337 338 339 340
    ;; Textual comments that are not files.
    "All" "Version" "Everywhere" "Many" "Various" "files"
    ;; Directories.
    "vms" "mac" "url" "tree-widget"
341
    )
Kim F. Storm's avatar
Kim F. Storm committed
342 343
  "List of files and directories to ignore.
Changes to files in this list are not listed.")
344

Glenn Morris's avatar
Glenn Morris committed
345 346 347
;; List via: find . -name '*.el' | sed 's/.*\///g' | sort | uniq -d
;; FIXME It would be better to discover these dynamically.
(defconst authors-ambiguous-files
348 349 350 351
  '("Makefile.in"
    "makefile.w32-in"
    "chart.el"
    "cl-lib.el"
Glenn Morris's avatar
Glenn Morris committed
352 353 354 355
    "compile.el"
    "complete.el"
    "cpp.el"
    "ctxt.el"
Glenn Morris's avatar
Glenn Morris committed
356 357 358
    "custom.el"
    "cyrillic.el"
    "czech.el"
Glenn Morris's avatar
Glenn Morris committed
359 360 361
    "debug.el"
    "dired.el"
    "el.el"
Glenn Morris's avatar
Glenn Morris committed
362 363 364
    "eshell.el"
    "ethiopic.el"
    "f90.el"
Glenn Morris's avatar
Glenn Morris committed
365 366 367
    "files.el"
    "find.el"
    "format.el"
Glenn Morris's avatar
Glenn Morris committed
368 369
    "generic.el"
    "georgian.el"
370
    "grammar.el"
Glenn Morris's avatar
Glenn Morris committed
371
    "greek.el"
Glenn Morris's avatar
Glenn Morris committed
372
    "grep.el"
Glenn Morris's avatar
Glenn Morris committed
373
    "hebrew.el"
Glenn Morris's avatar
Glenn Morris committed
374
    "imenu.el"
Glenn Morris's avatar
Glenn Morris committed
375
    "indian.el"
376
    "info-xref.el"
Glenn Morris's avatar
Glenn Morris committed
377
    "japanese.el"
Glenn Morris's avatar
Glenn Morris committed
378
    "java.el"
Glenn Morris's avatar
Glenn Morris committed
379
    "lao.el"
Glenn Morris's avatar
Glenn Morris committed
380 381 382 383
    "linux.el"
    "locate.el"
    "make.el"
    "mode.el"
384
    "mule-util.el"
Glenn Morris's avatar
Glenn Morris committed
385
    "python.el"
Glenn Morris's avatar
Glenn Morris committed
386
    "rmailmm.el"
Glenn Morris's avatar
Glenn Morris committed
387 388 389
    "semantic.el"
    "shell.el"
    "simple.el"
Glenn Morris's avatar
Glenn Morris committed
390
    "slovak.el"
Glenn Morris's avatar
Glenn Morris committed
391 392 393 394 395
    "sort.el"
    "speedbar.el"
    "srecode.el"
    "table.el"
    "texi.el"
Glenn Morris's avatar
Glenn Morris committed
396
    "thai.el"
397
    "thingatpt.el"
Glenn Morris's avatar
Glenn Morris committed
398
    "tibetan.el"
Glenn Morris's avatar
Glenn Morris committed
399
    "util.el"
Glenn Morris's avatar
Glenn Morris committed
400
    "vc-bzr.el"
Glenn Morris's avatar
Glenn Morris committed
401 402 403
    "wisent.el")
  "List of basenames occurring more than once in the source.")

404 405 406
;; FIXME :cowrote entries here can be overwritten by :wrote entries
;; derived from a file's Author: header (eg mh-e).  This really means
;; the Author: header is erroneous.
407
(defconst authors-fixed-entries
408
  '(("Richard M. Stallman" :wrote "[The original GNU Emacs and numerous files]")
409
    ("Joseph Arceneaux" :wrote "xrdb.c")
410 411
    ;; This refers to the obsolete Willisson (qv) version.
;;;    ("Blitz Product Development Corporation" :wrote "ispell.el")
412 413
    ("Frank Bresz" :wrote "diff.el")
    ("David M. Brown" :wrote "array.el")
414 415
    ;; No longer distributed.
;;;    ("Gary Byers" :changed "xenix.h")
416 417 418
    ;; No longer distributed: freebsd.h
    ;; Only trivial pieces remain, merged into configure.ac.
    ("Shawn M. Carey" :wrote "[some early FreeBSD support]")
419
    ;; hp800.h renamed from hp9000s800.h, hpux.h merged into hpux10-20.h.
420 421
    ;; FIXME overwritten by Author:.
    ("Satyaki Das" :cowrote "mh-search.el")
422 423 424
    ;; No longer distributed: hp800.h, hpux10-20.h.
    ;; Only trivial pieces remain, merged into configure.ac.
    ("Eric Decker" :changed "sysdep.c (and other files for HP-UX support)")
425 426 427
    ("Lawrence R. Dodd" :cowrote "dired-x.el")
    ;; No longer distributed.
;;;    ("Viktor Dukhovni" :wrote "unexsunos4.c")
Glenn Morris's avatar
Glenn Morris committed
428
    ("Paul Eggert" :wrote "rcs2log") ; "vcdiff"
429
    ("Fred Fish" :changed "unexcoff.c")
430 431
    ;; No longer distributed.
;;;    ("Tim Fleehart" :wrote "makefile.nt")
432 433
    ("Keith Gabryelski" :wrote "hexl.c")
    ("Kevin Gallagher" :wrote "flow-ctrl.el")
434 435 436 437 438
    ;; Also wrote an earlier version of disp-table.el, since replaced
    ;; by Erik Naggum's version; also iso-syntax.el, later renamed to
    ;; latin-1.el, since deleted.
    ("Howard Gayle" :wrote "casetab.c")
    ;; :wrote mh-pick.el, since merged into mh-search.el.
439 440 441
    ;; Originally wrote mh-funcs.el, but it has been rewritten since.
    ("Stephen Gildea" :wrote "refcard.tex"
     :cowrote "mh-funcs.el" "mh-search.el")
442 443 444 445 446 447
    ;; cl.texinfo renamed to cl.texi.
    ("David Gillespie" :wrote "cl.texi")
    ;; No longer distributed: emacsserver.c.
    ("Hewlett-Packard" :changed "emacsclient.c" "server.el" "keyboard.c")
    ;; No longer distributed.
;;;    ("Thomas Horsley" :wrote "cxux.h" "cxux7.h")
448 449
    ("Indiana University Foundation" :changed "buffer.c" "buffer.h"
     "indent.c" "search.c" "xdisp.c" "region-cache.c" "region-cache.h")
450
    ;; ibmrt.h, ibmrt-aix.h no longer distributed.
451
    ("International Business Machines" :changed "emacs.c" "fileio.c"
452
     "process.c" "sysdep.c" "unexcoff.c")
453 454
    ;; No longer distributed.
;;;    ("Ishikawa Chiaki" :changed "aviion.h" "dgux.h")
455 456 457 458
    ;; No longer distributed: ymakefile, intel386.h, mem-limits.h, template.h,
    ;; linux.h (was renamed to lignux.h, then to gnu-linux.h, then removed)
    ("Michael K. Johnson" :changed "configure.ac" "emacs.c"
     "process.c" "sysdep.c" "syssignal.h" "systty.h" "unexcoff.c")
459 460
    ;; No longer distributed.
;;;    ("Kyle Jones" :wrote "mldrag.el")
Kim F. Storm's avatar
Kim F. Storm committed
461
    ("Henry Kautz" :wrote "bib-mode.el")
462 463 464
    ;; No longer distributed: vms-pwd.h, vmsfns.c, uaf.h,
    ;; dir.h (was renamed to vmsdir.h, then removed)
    ("Joseph M. Kelsey" :changed "fileio.c")
465
    ("Sam Kendall" :changed "etags.c" "etags.el")
466 467
    ;; ack.texi: "We're not using his backquote.el any more."
    ("Richard King" :wrote "userlock.el" "filelock.c")
468 469 470
    ("Sebastian Kremer" :changed "add-log.el")
    ("Mark Lambert" :changed "process.c" "process.h")
    ("Aaron Larson" :changed "bibtex.el")
471 472
    ;; It was :wrote, but it has been rewritten since.
    ("James R. Larus" :cowrote "mh-e.el")
473 474
    ("Lars Lindberg" :changed "dabbrev.el" :cowrote "imenu.el")
    ;; No longer distributed: lselect.el.
475 476
    ("Lucid, Inc." :changed "bytecode.c" "byte-opt.el" "byte-run.el"
     "bytecomp.el" "delsel.el" "disass.el" "faces.el" "font-lock.el"
477
     "lmenu.el" "mailabbrev.el" "select.el" "xfaces.c" "xselect.c")
478 479 480
    ;; MCC.  No longer distributed: emacsserver.c.
    ("Microelectronics and Computer Technology Corporation"
     :changed "etags.c" "emacsclient.c" "movemail.c"
481 482
     "rmail.el" "rmailedit.el" "rmailkwd.el"
     "rmailmsc.el" "rmailout.el" "rmailsum.el" "scribe.el"
483
     ;; It was :wrote for xmenu.c, but it has been rewritten since.
484
     "server.el" "lisp.h" "sysdep.c" "unexcoff.c" "xmenu.c")
485
    ("Niall Mansfield" :changed "etags.c")
486
    ("Brian Marick" :cowrote "hideif.el")
487 488
    ("Marko Kohtala" :changed "info.el")
    ("Sidney Markowitz" :changed "doctor.el")
489 490
    ;; No longer distributed: env.c.
    ("Richard Mlynarik" :wrote "ehelp.el")
491 492 493 494 495
    ("Mosur Mohan" :changed "etags.c")
    ("Jeff Morgenthaler" :changed "flow-ctrl.el" "vt200.el" "vt201.el"
     "vt220.el" "vt240.el")
    ("Motorola" :changed "buff-menu.el")
    ("Hiroshi Nakano" :changed "ralloc.c")
Glenn Morris's avatar
Glenn Morris committed
496 497
    ;; File removed in Emacs 24.1.
;;;    ("Sundar Narasimhan" :changed "rnewspost.el")
498 499
    ;; No longer distributed.
;;;    ("NeXT, Inc." :wrote "unexnext.c")
500
    ("Mark Neale" :changed "fortran.el")
501 502
    ;; Renamed from sc.el.
    ("Martin Neitzel" :changed "supercite.el")
503
    ("Andrew Oram" :changed "calendar.texi (and other doc files)")
504 505
    ("Frederic Pierresteguy" :wrote "widget.c")
    ("Michael D. Prange" :changed "tex-mode.el")
506 507
    ;; No longer distributed (dgux5-4r3.h was renamed to dgux5-4-3.h).
;;;    ("Paul Reilly" :wrote "gux5-4r2.h" "dgux5-4-3.h")
508
    ("Rob Riepel" :wrote "tpu-edt.doc")
509 510 511 512 513
    ("Roland B. Roberts" :changed "files.el" "sort.el"
     "buffer.h" "callproc.c" "dired.c" "process.c" "sysdep.c" "systty.h")
     ;; No longer distributed.
;;;     "vmspaths.h" "build.com" "compile.com" "kepteditor.com" "precomp.com"
;;;     "vmsproc.el" :wrote "logout.com" "mailemacs.com")
514
;;;    ("Guillermo J. Rozas" :wrote "fakemail.c")
515 516
    ("Wolfgang Rupprecht" :changed "lisp-mode.el" "loadup.el"
     "sort.el" "alloc.c" "callint.c"
517 518 519
     ;; config.in renamed from config.h.in, now a generated file.
     ;; ecrt0.c renamed from crt0.c, then removed.
     "data.c" "fns.c"
520 521
     "lisp.h" "lread.c" ; "sun3.h" "ymakefile" - no longer distributed
     "print.c" :wrote "float-sup.el" "floatfns.c")
522
    ("Schlumberger Technology Corporation" :changed "gud.el")
523 524
    ;; Replaced by tcl.el.
;;;    ("Gregor Schmid" :wrote "tcl-mode.el")
525 526
    ;; No longer distributed since 24.1.
;;;    ("Rainer Schöpf" :wrote "alpha.h" "unexalpha.c")
527 528 529 530
    ;; No longer distributed: emacsserver.c.
    ("William Sommerfeld" :wrote "emacsclient.c" "scribe.el")
    ;; No longer distributed: emacsserver.c.
    ("Leigh Stoller" :changed "emacsclient.c" "server.el")
Paul Eggert's avatar
Paul Eggert committed
531
    ("Steve Strassmann" :wrote "spook.el")
532
    ("Shinichirou Sugou" :changed "etags.c")
533 534 535 536 537 538 539 540 541 542
    ;; No longer distributed: emacsserver.c.
    ("Sun Microsystems, Inc" :changed "emacsclient.c" "server.el"
     :wrote "emacs.icon" "sun.el")
    ;; No longer distributed.
;;;     "emacstool.1" "emacstool.c" "sun-curs.el"
;;;     "sun-fns.el" "sun-mouse.el" "sunfns.c")
    ;; Renamed from sc.el.
    ("Kayvan Sylvan" :changed "supercite.el")
    ;; No longer distributed: emacsserver.c, tcp.c.
    ("Spencer Thomas" :changed "emacsclient.c" "server.el"
543
     "dabbrev.el" "unexcoff.c" "gnus.texi")
544
    ("Jonathan Vail" :changed "vc.el")
545 546
    ;; No longer distributed: usg5-4.h
    ("James Van Artsdalen" :changed "unexcoff.c")
547 548 549 550 551 552 553
    ;; No longer distributed: src/makefile.nt, lisp/makefile.nt
    ;; winnt.el renamed to w32-fns.el; nt.[ch] to w32.[ch];
    ;; ntheap.[ch] to w32heap.[ch]; ntinevt.c to w32inevt.c;
    ;; ntproc.c to w32proc.c; ntterm.c to w32term.c;
    ;; windowsnt.h to ms-w32.h.
    ("Geoff Voelker" :wrote "w32-fns.el" "w32.c" "w32.h" "w32heap.c"
     "w32heap.h" "w32inevt.c" "w32proc.c" "w32term.c" "ms-w32.h")
554
    ("Morten Welinder" :wrote "dosfns.c" "[many MS-DOS files]" "msdos.h")
555 556
    ("Eli Zaretskii" :wrote "bidi.c" "[bidirectional display in xdisp.c]"
     "[tty menus in term.c]")
557 558
    ;; Not using this version any more.
;;;    ("Pace Willisson" :wrote "ispell.el")
559 560
    ;; FIXME overwritten by Author:.
    ("Bill Wohler" :cowrote "mh-e.el")
561
    ("Garrett Wollman" :changed "sendmail.el")
562
    ("Dale R. Worley" :changed "mail-extr.el")
563 564
    ("Jamie Zawinski" :changed "bytecode.c" :wrote "tar-mode.el"
     :cowrote "disass.el"))
565 566 567
  "Actions taken from the original, manually (un)maintained AUTHORS file.")


568 569
(defconst authors-valid-file-names
  '("aclocal.m4"
570
    "build-ins.in"
571
    "Makefile"
572
    "Makefile.noleim"
Kim F. Storm's avatar
Kim F. Storm committed
573
    "makedist.bat"
574 575
    "makefile.def"
    "makefile.nt"
Glenn Morris's avatar
Glenn Morris committed
576
    "ns.mk"
577 578 579
    "README"
    ;; There were a few of these, not just the generated top-level one.
    "configure" "config.h"
580
    "is_exec.c" "sigaction.c"
581 582
    ;; nt/
    "ebuild.bat" "install.bat" "fast-install.bat"
583
    "debug.bat.in" "emacs.bat.in" "addsection.c"
584
    "inc/sys/dir.h" "inc/gettext.h"
585 586 587 588
    ".gdbinit-union"
    "alloca.s"
    "make-delta"
    "config.w95"
589
    "msysconfig.sh"
590 591 592 593 594 595 596
    "emacstool.1"
    "align.umax"
    "cxux-crt0.s"
    "gould-sigvec.s"
    "getdate.y"
    "ymakefile"
    "permute-index" "index.perm"
Glenn Morris's avatar
Glenn Morris committed
597
    "ibmrs6000.inp"
Glenn Morris's avatar
Glenn Morris committed
598
    "b2m.c" "b2m.1" "b2m.pl" "rcs-checkin.1"
Glenn Morris's avatar
Glenn Morris committed
599
    "emacs.bash" "emacs.csh" "ms-kermit"
600
    "emacs.ico"
601
    "emacs21.ico"
Glenn Morris's avatar
Glenn Morris committed
602
    "emacs.py" "emacs2.py" "emacs3.py"
Glenn Morris's avatar
Glenn Morris committed
603
    "BABYL" "LPF" "LEDIT" "OTHER.EMACSES"
604 605 606
    "emacs16_mac.png" "emacs24_mac.png"
    "emacs256_mac.png" "emacs32_mac.png"
    "emacs48_mac.png" "emacs512_mac.png"
607 608 609 610 611 612 613 614 615 616 617 618 619
    "ps-prin2.ps" "ps-prin3.ps"
    "emacs.xbm" "gnu.xpm" "gnus-pointer.xbm" "gnus-pointer.xpm"
    ;; Moved from etc/ to etc/images, and/or removed.
    "gnus.pbm" "gnus.xbm" "gnus.xpm" "letter.pbm" "letter.xbm" "letter.xpm"
    "splash.pbm" "splash.xbm" "splash.xpm" "splash8.xpm"
    "images/execute.pbm" "images/execute.xpm" "images/fld-open.pbm"
    "images/fld-open.xpm" "images/highlight.pbm" "images/highlight.xpm"
    "images/mail.pbm" "images/mail.xpm" "images/mail/alias.pbm"
    "images/mail/alias.xpm" "images/mail/refile.pbm"
    "images/mail/refile.xpm" "images/page-down.pbm"
    "images/page-down.xpm" "images/widen.pbm" "images/widen.xpm"
    "images/gnus/bar.xbm" "images/gnus/bar.xpm"
    "images/gnus/reverse-smile.xpm"
Glenn Morris's avatar
Glenn Morris committed
620
    "revdiff"				; admin/
Glenn Morris's avatar
Glenn Morris committed
621
    "vcdiff" "rcs-checkin" "tindex.pl"
Glenn Morris's avatar
Glenn Morris committed
622 623
    "mainmake" "sed1.inp" "sed2.inp" "sed3.inp" ; msdos/
    "mac-fix-env.m"
624 625
    ;; Deleted vms stuff:
    "temacs.opt" "descrip.mms" "compile.com" "link.com"
626 627
    "compact.el" "fadr.el"
    "calc/calc-maint.el"
628
    "emacs-lisp/cl-specs.el"
629 630 631 632
    "emacs-lisp/eieio-comp.el"
    "erc-hecomplete.el"
    "eshell/esh-maint.el"
    "language/persian.el"
633
    "ledit.el" "meese.el" "iswitchb.el" "longlines.el"
634 635 636
    "mh-exec.el" "mh-init.el" "mh-customize.el"
    "net/zone-mode.el" "xesam.el"
    "term/mac-win.el" "sup-mouse.el"
637 638
    "term/vt102.el" "term/vt201.el" "term/vt220.el" "term/vt300.el"
    "term/vt320.el" "term/vt400.el" "term/vt420.el"
639 640 641 642 643 644 645
    "url-https.el"
    "org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el"
    "org-mks.el" "org-remember.el" "org-xoxo.el" "org-docbook.el"
    "org-freemind.el" "ox-jsinfo.el"
    "org-exp-blocks.el"		     ; maybe this is ob-exp now? dunno
    "org-lparse.el"
    "org-special-blocks.el" "org-taskjuggler.el"
646
    "progmodes/cap-words.el"
647 648 649 650 651 652 653 654 655 656
    ;; gnus
    "nnwfm.el" "nnlistserv.el" "nnkiboze.el" "nndb.el" "nnsoup.el"
    "netrc.el" "password.el" "sasl-cram.el" "sasl-digest.el" "sasl-ntlm.el"
    "sasl.el" "dig.el" "dns.el" "hex-util.el" "sha1.el" "md4.el"
    "hmac-def.el" "hmac-md5.el" "ntlm.el" "hashcash.el" "smime-ldap.el"
    "assistant.el" "gnus-utils.el" "tls.el" "pgg-def.el" "pgg-gpg.el"
    "gnus-compat.el" "pgg-parse.el" "pgg-pgp.el" "pgg-pgp5.el" "pgg.el"
    "dns-mode.el" "run-at-time.el" "gnus-encrypt.el" "sha1-el.el"
    "gnus-gl.el" "gnus.sum.el" "proto-stream.el" "color.el" "color-lab.el"
    "eww.el" "shr-color.el" "shr.el" "earcon.el" "gnus-audio.el" "encrypt.el"
657
    "format-spec.el" "gnus-move.el"
658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679
    ;; doc
    "getopt.c" "texindex.c" "news.texi" "vc.texi" "vc2-xtra.texi"
    "back.texi" "vol1.texi" "vol2.texi" "elisp-covers.texi" "two.el"
    "front-cover-1.texi" "locals.texi" "calendar.texi" "info-stnd.texi"
    "tasks.texi"
    "advice.texi" "picture.texi" "texinfo.tex"
    ;; lwlib:
    "dispatch.c" "dispatch.h" "xrdb-cpp.c" "xrdb.c"
    "lwlib-Xol.c" "lwlib-Xol.h" "lwlib-Xolmb.c" "lwlib-Xolmb.h"
    "lwlib-XolmbP.h"
    ;; lib/
    "lib/stdio.c" "lib/gl_openssl.h" "lib/sigprocmask.c"
    "lib/pthread_sigprocmask.c" "lib/ldtoastr.c" "lib/dummy.c"
    "lib/ignore-value.h"
    ;; lib-src/
    "cvtmail.c" "digest-doc.c" "emacsserver.c" "emacstool.c" "env.c"
    "etags-vmslib.c" "fakemail.c" "getdate.c" "getopt.h" "getopt1.c"
    "getopt_.h" "getopt_int.h" "gettext.h" "leditcfns.c" "loadst.c"
    "make-path.c" "qsort.c" "sorted-doc.c" "tcp.c" "timer.c" "wakeup.c"
    "yow.c"
    ;; etc/
    "emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c"
680
    "test-distrib.c" "testfile"
Glenn Morris's avatar
Glenn Morris committed
681
    "tpu-edt.doc"			; see below
682
    )
Glenn Morris's avatar
Glenn Morris committed
683 684
  "File names which are valid, but no longer exist (or cannot be found)
in the repository.")
685

686 687 688 689 690
;; Note that any directory part on the RHS is retained.
;; Cf authors-renamed-files-regexps.
;; NB So only add a directory if needed to disambiguate.
;; FIXME?
;; Although perhaps we could let authors-disambiguate-file-name do that?
691 692 693 694 695 696 697 698
(defconst authors-renamed-files-alist
  '(("nt.c" . "w32.c") ("nt.h" . "w32.h")
    ("ntheap.c" . "w32heap.c") ("ntheap.h" . "w32heap.h")
    ("ntinevt.c" . "w32inevt.c") ("ntinevt.h" . "w32inevt.h")
    ("ntproc.c" . "w32proc.c")
    ("w32console.c" . "w32term.c")
    ("unexnt.c" . "unexw32.c")
    ("s/windowsnt.h" . "s/ms-w32.h")
699
    ("s/ms-w32.h" . "inc/ms-w32.h")
700
    ("src/config.h" . "config.h")
701
    ("winnt.el" . "w32-fns.el")
702
    ("linux.h" . "gnu-linux.h")
Glenn Morris's avatar
Glenn Morris committed
703
    ("emacs.manifest" . "emacs-x86.manifest")
704
    ("config.emacs" . "configure")
705
    ("configure.in" . "configure.ac")
706 707 708
    ("config.h.dist" . "config.in")
    ("config.h-dist" . "config.in")
    ("config.h.in" . "config.in")
709 710 711 712 713 714 715
    ("debug.bat" . "debug.bat.in")
    ("emacs.bat" . "emacs.bat.in")
    ;; paths.h.dist -> paths.h-dist -> paths.h.in -> paths.in -> epaths.in.
    ("paths.h.dist" . "epaths.in")
    ("paths.h-dist" . "epaths.in")
    ("paths.h.in" . "epaths.in")
    ("paths.in" . "epaths.in")
716
    ("patch1" . "sed1.inp")
717 718 719 720
    ("INSTALL.MSYS" . "INSTALL")
    ("server.c" . "emacsserver.c")
    ("lib-src/etags.c" . "etags.c")
    ;; msdos/
721
    ("is-exec.c" . "is_exec.c")
722
    ("enriched.doc" . "enriched.txt")
723
    ("GETTING.GNU.SOFTWARE" . "FTP")
724 725 726 727 728 729 730 731 732 733 734
    ("etc/MACHINES" . "MACHINES")
    ("ONEWS" . "NEWS.19")
    ("ONEWS.1" . "NEWS.1-17")
    ("ONEWS.2" . "NEWS.1-17")
    ("ONEWS.3" . "NEWS.18")
    ("ONEWS.4" . "NEWS.18")
    ("ORDERS.USA" . "ORDERS")
    ("EUROPE" . "ORDERS")
    ("DIFF" . "OTHER.EMACSES")
    ("CCADIFF" . "OTHER.EMACSES")
    ("GOSDIFF" . "OTHER.EMACSES")
Glenn Morris's avatar
Glenn Morris committed
735 736 737 738
    ;; Moved from lisp/tpu-doc.el to etc/tpu-edt.doc in Emacs 19.29.
    ;; Removed in Emacs 19.30, replaced by new file etc/edt-user.doc
    ;; (no associated ChangeLog entry).
    ("tpu-doc.el" . "tpu-edt.doc")
739
    ("Makefile.in.in" . "Makefile.in")
Kim F. Storm's avatar
Kim F. Storm committed
740 741
    ("leim-Makefile" . "leim/Makefile")
    ("leim-Makefile.in" . "leim/Makefile.in")
742 743
    ("emacs-lisp/testcover-ses.el" . "tcover-ses.el")
    ("emacs-lisp/testcover-unsafep.el" . "tcover-unsafep.el")
744
    ("progmodes/dos.el" . "bat-mode.el")
745 746 747
    ;; index and pick merged into search.
    ("mh-index.el" . "mh-search.el")
    ("mh-pick.el" . "mh-search.el")
Glenn Morris's avatar
Glenn Morris committed
748
    ("font-setting.el" . "dynamic-setting.el")
749 750 751 752 753 754 755 756
    ("help-funs.el" . "help-fns.el")
    ("erc-notifications.el" . "erc-desktop-notifications.el")
    ("org-complete.el" . "org-pcomplete.el")
    ("org-export.el" . "ox.el")		; ?
    ;; Was definitely renamed to org-latex.el, then... ?
    ("org-export-latex.el" . "ox-latex.el") ; ?
    ("org-exp.el" . "ox.el")		    ; ?
    ("progmodes/cfengine3.el" . "cfengine.el")
757 758 759 760 761
    ("progmodes/delphi.el" . "opascal.el")
    ("octave-inf.el" . "octave.el")
    ("octave-mod.el" . "octave.el")
    ("progmodes/octave-inf.el" . "octave.el")
    ("progmodes/octave-mod.el" . "octave.el")
762
    ;; Obsolete.
763 764
    ("emacs-lisp/assoc.el" . "assoc.el")
    ("emacs-lisp/cust-print.el" . "cust-print.el")
765 766 767 768 769 770 771
    ("emacs-lisp/gulp.el" . "gulp.el")
    ("emulation/crisp.el" . "crisp.el")
    ("emulation/tpu-edt.el" . "tpu-edt.el")
    ("emulation/tpu-extras.el" . "tpu-extras.el")
    ("emulation/vi.el" . "vi.el")
    ("emulation/vip.el" . "vip.el")
    ("emulation/ws-mode.el" . "ws-mode.el")
772
    ("mail/mailpost.el" . "mailpost.el")
773
    ("play/bruce.el" . "bruce.el")
774
    ("play/yow.el" . "yow.el")
775 776 777 778 779 780 781 782 783 784 785 786 787
    ("patcomp.el" . "patcomp.el")
    ;; From lisp to etc/forms.
    ("forms-d2.el" . "forms-d2.el")
    ("forms-pass.el" . "forms-pass.el")
    ;; From lisp/ to etc/nxml.
    ("nxml/test.invalid.xml" . "test-invalid.xml")
    ("nxml/test.valid.xml" . "test-valid.xml")
    ;; The one in lisp is eshell/eshell.el.
    ("eshell.el" . "automated/eshell.el")
    ("eshell/esh-test.el" . "automated/eshell.el")
    ;; INSTALL-CVS -> .CVS -> .BZR -> .REPO
    ("INSTALL-CVS" . "INSTALL.REPO")
    ("INSTALL.CVS" . "INSTALL.REPO")
788
    ("INSTALL.BZR" . "INSTALL.REPO")
789
    ("gnus-logo.eps" . "gnus-logo.eps")	; moved to refcards/
790 791 792
    ("build-install" . "build-ins.in")
    ("build-install.in" . "build-ins.in")
    ("unidata/Makefile" . "unidata/Makefile.in")
793
    ("mac/uvs.el" . "unidata/uvs.el")
794 795 796 797 798 799 800 801 802
    ;; Moved from top to etc/
    ("CONTRIBUTE" . "CONTRIBUTE")
    ("FTP" . "FTP")
    ;; Moved from top to build-aux/
    ("move-if-change" . "move-if-change")
    ("update-subdirs" . "update-subdirs")
    ("emacs.tex" . "emacs.texi")
    ("faq.texi" . "efaq.texi")
    ("major.texi" . "modes.texi")
803 804
    ("msdog-xtra.texi" . "msdos-xtra.texi")
    ("msdog.texi" . "msdos.texi")
805 806 807 808
    ;; And from emacs/ to misc/ and back again.
    ("ns-emacs.texi" . "macos.texi")
    ("overrides.texi" . "gnus-overrides.texi")
    ("xresmini.texi" . "xresources.texi")
809 810
    ;; Not renamed, but we only have the latter in the Emacs repo.
    ("trampver.texi.in" . "trampver.texi")
811 812 813
    ;; Renamed with same directory.
    ("e/eterm" . "eterm-color")
    ("e/eterm.ti" . "eterm-color.ti")
814 815 816 817 818
    ("README.txt" . "README")
    ("emacs.names" . "JOKES")
    ("ED.WORSHIP" . "JOKES")
    ("GNU.JOKES" . "JOKES")
    ("CHARACTERS" . "TODO")
819 820 821 822 823 824 825 826 827
    ("images/gnus/mail_send.xpm" . "mail-send.xpm") ; still in images/gnus
    ;; Renamed within same directory.
    ("schema/xhtml-basic-form.rnc" . "xhtml-bform.rnc" )
    ("schema/xhtml-basic-table.rnc" . "xhtml-btable.rnc")
    ("schema/xhtml-list.rnc" . "xhtml-lst.rnc")
    ("schema/xhtml-target.rnc" . "xhtml-tgt.rnc")
    ("schema/xhtml-style.rnc" . "xhtml-xstyle.rnc")
    ("schema/docbook-dyntbl.rnc" . "docbk-dyntbl.rnc")
    ("schema/docbook-soextbl.rnc" . "docbk-soextbl.rn" )
Glenn Morris's avatar
Glenn Morris committed
828
    ("edt-user.doc" . "edt.texi")
Glenn Morris's avatar
Glenn Morris committed
829
    ("DEV-NOTES" . "nextstep")
Glenn Morris's avatar
Glenn Morris committed
830
    ("org/COPYRIGHT-AND-LICENSE" . "org/README")
831 832 833 834 835 836
    ;; Moved to different directories.
    ("ctags.1" . "ctags.1")
    ("etags.1" . "etags.1")
    ("emacs.1" . "emacs.1")
    ("emacsclient.1" . "emacsclient.1")
    ("icons/emacs21.ico" . "emacs21.ico")
837 838 839 840 841 842
    ("ja-dic" . "leim/ja-dic")
    ("quail" . "leim/quail")
    ;; Moved from autogen/ to admin/.
    ("autogen/update_autogen" . "update_autogen")
    ;; Moved from etc/ to admin/.
    ("grammars" . "grammars")
843 844
    ;; Moved from lisp/emacs-lisp/ to admin/.
    ("emacs-lisp/authors.el" . "authors.el")
845 846 847
    ;; From etc to lisp/cedet/semantic/.
    ("grammars/bovine-grammar.el" . "bovine/grammar.el")
    ("grammars/wisent-grammar.el" . "wisent/grammar.el")
Glenn Morris's avatar
Glenn Morris committed
848 849
    ;; Moved from admin/nt/ to nt/.
    ("nt/README.W32" . "README.W32")
850 851 852 853
    )
  "Alist of files which have been renamed during their lifetime.
Elements are (OLDNAME . NEWNAME).")

854 855 856 857 858
;; Should still test that the renamed file exists.  Does it?
;; But it might be relative to a different ChangeLog...
;;
;; Note that only the basename of the RHS is used.
;; Cf authors-renamed-files-alist.
859
(defconst authors-renamed-files-regexps
860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896
  '(("\\`\\(arg-nonnull\\|c\\+\\+defs\\|warn-on-use\\)\\.h\\'"
     "build-aux/snippet/\\&")
    ("\\`\\(ebuild\\|emacs\\|install\\|fast-install\\)\\.cmd\\'" "\\1.bat")
    ("\\`\\(book-spine\\|cl\\|forms\\|functions\\|gnus\\|sc\\|texinfo\\|vip\\)\
\\.texinfo\\'" "\\1.texi")
    ("\\`\\(\\(calc\\|org\\|vip\\)card\\|viperCard\\|\
\\(\\(cs\\|fr\\|sk\\)-\\)?dired-ref\\|\
\\(\\(cs\\|de\\|fr\\|gnus\\|pl\\|pt-br\\|ru\\|sk\\)-\\)?refcard\\|\
\\(\\(cs\\|fr\\|sk\\)-\\)?survival\\)\\.tex\\'" "refcards/\\&")
    ("\\`refcard-\\(de\\|pl\\)\\.tex\\'" "refcards/\\1-refcard.tex")
    ("\\`\\(refcards/\\)?fr-drdref\\.tex\\'" "refcards/fr-dired-ref.tex")
    ("^\\(TUTORIAL[^/]*\\)" "tutorials/\\1")
    ("\\`themes/dev-\\(tsdh-\\(?:light\\|dark\\)-theme\\.el\\)\\'"
     "themes/\\1")
    ;; Moved from lisp/toolbar to etc/images.
    ("\\`toolbar/\\(back\\|fwd\\|left\\|right\\|up\\)_arrow\
\\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/\\1-arrow\\2")
    ("\\`toolbar/lc-\\(back\\|fwd\\|left\\|right\\|up\\)_arrow\
\\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/low-color/\\1-arrow\\2")
    ("\\`toolbar/mail_\\(compose\\|send\\)\\(\\.[xp]bm\\)\\'"
     "images/mail/\\1")
    ("\\`toolbar/jump_to\\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/jump-to\\1")
    ("\\`toolbar/lc-jump_to\\(\\.\\(?:pb\\|xp\\)m\\)\\'"
     "images/low-color/jump-to\\1")
    ("\\`toolbar/\\(attach\\|cancel\\|close\\|copy\\|cut\\|\
diropen\\|exit\\|help\\|home\\|index\\|info\\|mail\\|new\\|open\\|\
paste\\|preferences\\|print\\|save\\|saveas\\|search\\|search-replace\\|\
spell\\|undo\\)\\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/\\1\\2")
    ("\\`toolbar/gud-\\(break\\|cont\\|down\\|finish\\|print\\|pstar\\|\
remove\\|run\\|until\\|up\\|watch\\)\\(\\.\\(?:pb\\|xp\\)m\\)\\'"
     "images/gud/\\1\\2")
    ("\\`\\(toolbar/gud-\\|images/gud/\\)n\\(i\\)?\\(\\.\\(?:pb\\|xp\\)m\\)\\'"
     "images/gud/next\\2\\3")
    ("\\`\\(toolbar/gud-\\|images/gud/\\)s\\(i\\)?\\(\\.\\(?:pb\\|xp\\)m\\)\\'"
     "images/gud/step\\2\\3")
    ("\\`toolbar/lc-\\([-a-z]+\\.xpm\\)\\'" "images/low-color/\\1")
    ("^\\(tree-widget/\\(?:default\\|folder\\)/[-a-z]+\\.\\(png\\|xpm\\)\\)$"
897
     "images/\\1")
898
    ("^\\(images/icons/\\)mac\\(emacs\\)_\\([0-9]+\\)\\(\\.png\\)"
899
     "\\1\\2\\3_mac\\4")
900
    ("\\(images/icons/\\)emacs_\\([0-9][0-9]\\)\\.png"
901
     "\\1hicolor/\\2x\\2/apps/emacs.png")
902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927
    ;; Moved from leim/ to lisp/leim/.
    ("\\`quail/[-a-z0-9]+\\.el\\'" "leim/\\&")
    ("\\`ja-dic/ja-dic\\.el\\'" "leim/\\&")
    ("\\`vc-\\(rcs\\|cvs\\|sccs\\)-hooks\\.el\\'" "vc/vc-\\1.el")
    ("\\`vc-\\(annotate\\|arch\\|bzr\\|cvs\\|dav\\|dir\\|dispatcher\\|\
git\\|hg\\|hooks\\|mtn\\|rcs\\|sccs\\|svn\\)\\.el\\'" "vc/\\&")
    ("\\`ediff-\\(diff\\|help\\|hook\\|init\\|merg\\|mult\\|ptch\\|util\\|\
vers\\|wind\\)\\.el\\'" "vc/\\&")
    ("\\`pcvs-\\(defs\\|info\\|parse\\|util\\)\\.el\\'" "vc/\\&")
    ("\\`\\(add-log\\|compare-w\\|cvs-status\\|diff-mode\\|diff\\|\
ediff\\|emerge\\|log-edit\\|log-view\\|pcvs\\|smerge-mode\\|vc\\)\\.el\\'"
     "vc/\\&")
    ("\\`\\(emacs-lisp/\\)?helpers\\.el\\'" "emacs-lisp/subr-x.el")
    ;; I assume this is (essentially) what happened, org/ChangeLog is vague.
    ("\\`org-\\(ascii\\|beamer\\|html\\|icalendar\\|jsinfo\\|latex\
\\|odt\\|publish\\)\\.el\\'" "ox-\\1.el")
    ;; From test/ to test/automated/.
    ("comint-testsuite.el" "automated/\\&")
    ("\\`\\(bytecomp\\|font-parse\\|icalendar\\|occur\\|newsticker\\)\
-testsuite\\.el" "automated/\\1-tests.el")
    ;; NB lax rules should come last.
    ("^m/m-\\(.*\\.h\\)$" "m/\\1" t)
    ("^m-\\(.*\\.h\\)$" "\\1" t)
    ("^s/s-\\(.*\\.h\\)$" "s/\\1" t)
    ("^s-\\(.*\\.h\\)$" "\\1" t)
    ("\\.\\(el\\|[ch]\\|x[pb]m\\|pbm\\)\\'" t t)
928
    )
929 930
  "List of regexps and rewriting rules for renamed files.
Elements are (REGEXP REPLACE [LAX]).  If REPLACE is a string, the file
931
name matching REGEXP is replaced by REPLACE using `replace-string'.
932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953
Otherwise, the file name is accepted as is.
Elements with LAX non-nil are only used in `authors-lax-changelogs'.")

;; It's really not worth trying to make these old logs fully valid.
;; All the obvious real errors are gone.
;; The main issue is _lots_ of moving around of files.
;; Eg the progmodes/ (etc) directories did not exist before 1997.
;; Also, lib-src/ did not exist, the files were in etc/.
;; And various other things.
;; Maybe this should just be any ChangeLog with a . extension,
;; assuming we always fix logs fully before rotating them?
(defconst authors-lax-changelogs
  '("erc/ChangeLog\\.0[1-8]\\'"
    "gnus/ChangeLog\\.[1-2]\\'"
    "lisp/ChangeLog\\.\\([1-9]\\|1[0-5]\\)\\'"
    "mh-e/ChangeLog\\.1\\'"
    "src/ChangeLog\\.\\([1-9]\\|1[0-2]\\)\\'")
  "List of regexps matching ChangeLogs that we do not print errors from.
These are older ChangeLogs that have various issues.
Additionally, for these logs we apply the `lax' elements of
`authors-renamed-files-regexps'.")

954 955 956 957

(defvar authors-checked-files-alist)
(defvar authors-invalid-file-names)

958
;; This has become rather yucky. :(