;;; authors.el --- utility for maintaining Emacs' AUTHORS file -*-coding: iso-2022-7bit;-*-
-;; Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2002, 2003, 2004, 2005,
+;; 2006 Free Software Foundation, Inc.
;; Author: Gerd Moellmann <gerd@gnu.org>
;; Maintainer: Kim F. Storm <storm@cua.dk>
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
(defconst authors-aliases
'(
- ("Andrew Innes" "Andrw Innes")
+ ("Andrew Csillag" "Drew Csillag")
("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc."
"Barry A. Warsaw, ITB" "Barry Warsaw")
("Bj\e,Av\e(Brn Torkelsson" "Bjorn Torkelsson")
"<Daniel.Pfeiffer@Informatik.START.dbp.de>")
("David Gillespie" "Dave Gillespie")
("David K\e,Ae\e(Bgedal" "David K..edal")
- ("David M. Koppelman" "David M. Koppelman, Koppel@Ee.Lsu.Edu")
- ("David M. Smith" "David Smith")
+ ("David M. Koppelman" "David M. Koppelman, Koppel@Ee.Lsu.Edu"
+ "David Koppelman")
+ ("David M. Smith" "David Smith" "David M Smith")
+ ("Ed L. Cashin" "Ed L Cashin")
("Edward M. Reingold" "Ed Reingold" "Edward M Reingold"
"Reingold Edward M")
("Eli Zaretskii" "eliz")
+ ("Emilio C. Lopes" "Emilio Lopes")
+ ("Era Eriksson" "Era@Iki.Fi")
("Eric M. Ludlam" "Eric Ludlam")
("Eric S. Raymond" "Eric Raymond")
("Eric Youngdale" "(Eric Youngdale at youngdale@v6550c.nrl.navy.mil)")
+ ("Francis J. Wright" "Dr Francis J. Wright" "Francis Wright")
("Fran\e,Ag\e(Bois Pinard" "Francois Pinard")
- ("Francesco Potorti" "Francesco Potorti`")
+ ("Francesco Potort\e,Al\e(B" "Francesco Potorti" "Francesco Potorti`")
("Frederic Pierresteguy" "Fred Pierresteguy")
("Geoff Voelker" "voelker")
("Hallvard B. Furuseth" "Hallvard B Furuseth")
+ ("Hrvoje Nik\e,B9\e(Bi\e,Bf\e(B" "Hrvoje Niksic")
(nil "(afs@hplb.hpl.hp.com)")
(nil "<Use-Author-Address-Header@\\[127.1\\]>")
(nil "Code Extracted")
(nil "ISO-2022-JP")
("Jaeyoun Chung" "Jae-youn Chung" "Jae-you Chung" "Chung Jae-youn")
("Jan Dj\e,Ad\e(Brv" "Jan D." "Jan Djarv")
- ("Jay K. Adams" "jka@ece.cmu.edu")
- ("Jay R. Adams" "Jay Adams")
+ ("Jay K. Adams" "jka@ece.cmu.edu" "Jay Adams")
+ ("J\e,Ai\e(Br\e,At\e(Bme Marant" "J\e,bi\e(Br\e,bt\e(Bme Marant" "Jerome Marant")
("Jens-Ulrik Holger Petersen" "Jens-Ulrik Petersen")
+ ("Jeremy Bertram Maitin-Shepard" "Jeremy Maitin-Shepard")
+ ("Johan Bockg\e,Ae\e(Brd" "Johan Bockgard")
+ ("John W. Eaton" "John Eaton")
("Jonathan I. Kamens" "Jonathan Kamens")
("Joseph Arceneaux" "Joe Arceneaux")
+ ("Juan Le\e,As\e(Bn Lahoz Garc\e,Am\e(Ba" "Juan-Leon Lahoz Garcia")
("K. Shane Hartman" "Shane Hartman")
("Kai Gro\e,A_\e(Bjohann" "Kai Grossjohann" "Kai Gro\e,b_\e(Bjohann"
- "Kai.Grossjohann@Cs.Uni-Dortmund.De")
+ "Kai.Grossjohann@Cs.Uni-Dortmund.De"
+ "Kai.Grossjohann@Gmx.Net")
("Karl Berry" "K. Berry")
+ ("Kazushi Marukawa" "Kazushi")
("Ken Manheimer" "Kenneth Manheimer")
("Kenichi Handa" "Ken'ichi Handa" "Kenichi HANDA")
+ ("Kevin Greiner" "Kevin J. Greiner")
("Kim F. Storm" "Kim Storm")
+ ("Kyle Jones" "Kyle E. Jones")
("Marcus G. Daniels" "Marcus Daniels")
+ ("Mark D. Baushke" "Mark D Baushke")
+ ("Martin Lorentzon" "Martin Lorentzson")
+ ("Matt Swift" "Matthew Swift")
+ ("Michael R. Mauger" "Michael Mauger")
("Michael D. Ernst" "Michael Ernst")
("Michael I. Bushnell" "Michael I Bushnell" "Michael I. Bushnell, P/Bsg")
+ ("Mikio Nakajima" "Nakajima Mikio")
("Paul Eggert" "eggert")
("Paul Reilly" "(pmr@legacy.pajato.com)")
- ("Pavel Jan\e,Bm\e(Bk" "Pavel Jan\e,Am\e(Bk Ml.")
+ ("Pavel Jan\e,Bm\e(Bk" "Pavel Jan\e,Am\e(Bk Ml." "Pavel Jan\e,Am\e(Bk" "Pavel@Janik.Cz")
("Per Abrahamsen" "Per Abhiddenware")
+ ("Peter S. Galbraith" "Peter Galbraith")
+ ("Peter Runestig" "Peter 'luna' Runestig")
("Peter S. Galbraith" "Peter S Galbraith")
("Richard M. Stallman" "Richard M. Stallman,,," "Richard Stallman"
- "rms" "rms@gnu.org")
+ "rms" "rms@gnu.org")
("Robert J. Chassell" "Bob Chassell")
("Roland B. Roberts" "Roland B Roberts" "Roland Roberts")
("Rui-Tao Dong" "Rui-Tao Dong ~{6-Hpln~}")
("Sam Steingold" "Sam Shteingold")
+ ("Satyaki Das" "Indexed search by Satyaki Das")
+ ("Stefan Monnier" "Stefan")
("Stephen A. Wood" "(saw@cebaf.gov)")
("Steven L. Baur" "SL Baur" "Steven L Baur")
("Takaaki Ota" "Tak Ota")
+ ("Takahashi Naoto" "Naoto Takahashi")
+ ("Teodor Zlatanov" "Ted Zlatanov")
("Torbj\e,Av\e(Brn Axelsson" "Torbjvrn Axelsson")
("Torbj\e,Av\e(Brn Einarsson" "Torbj.*rn Einarsson")
("Toru Tomabechi" "Toru Tomabechi,")
("Vincent Del Vecchio" "Vince Del Vecchio")
+ ("William M. Perry" "Bill Perry")
("Wlodzimierz Bzyl" "W.*dek Bzyl")
("Yutaka NIIBE" "NIIBE Yutaka")
)
"Alist of author aliases.
Each entry is of the form (REALNAME REGEXP...). If an author's name
-matches one of the REGEXPs, use REALNAME instead.
+matches one of the REGEXPs, use REALNAME instead.
If REALNAME is nil, ignore that author.")
Changes to files matching one of the regexps in this list are not
listed.")
+(defconst authors-ignored-files
+ '("external-lisp"
+ "lock" "share-lib" "local-lisp"
+ "noleim-Makefile.in"
+ "NEWS" "PROBLEMS" "FAQ" "AUTHORS")
+ "List of files and directories to ignore.
+Changes to files in this list are not listed.")
(defconst authors-fixed-entries
'(("Richard M. Stallman" :wrote "[The original GNU emacs and numerous files]")
("Michael K. Johnson" :changed "configure.in" "emacs.c" "intel386.h"
"mem-limits.h" "process.c" "template.h" "sysdep.c" "syssignal.h" "systty.h" "unexec.c"
"ymakefile" "linux.h")
- ("Kyle E. Jones" :wrote "mldrag.el")
- ("Kenry Kautz" :wrote "bib-mode.el")
+ ("Kyle Jones" :wrote "mldrag.el")
+ ("Henry Kautz" :wrote "bib-mode.el")
("Joseph M. Kelsey" :changed "fileio.c" "vms-pwd.h" "vmsfns.c" "dir.h"
"uaf.h")
("Sam Kendall" :changed "etags.c" "etags.el")
("Frederic Pierresteguy" :wrote "widget.c")
("Michael D. Prange" :changed "tex-mode.el")
("Paul Reilly" :wrote "gux5-4r2.h" "dgux5-4r3.h")
- ("Roland B Roberts" :changed "files.el" "sort.el" "vmsproc.el"
+ ("Roland B. Roberts" :changed "files.el" "sort.el" "vmsproc.el"
"buffer.h" "callproc.c" "dired.c" "process.c" "sysdep.c" "systty.h"
"vmspaths.h" "build.com" "compile.com" "kepteditor.com" "precomp.com"
:wrote "logout.com" "mailemacs.com")
("Morten Welinder" :wrote "dosfns.c" "[many MSDOS files]" "msdos.h")
("Pace Willisson" :wrote "ispell.el")
("Garrett Wollman" :changed "sendmail.el")
- ("Dale Worley" :changed "mail-extr.el")
+ ("Dale R. Worley" :changed "mail-extr.el")
("Jamie Zawinski" :changed "bytecode.c" :wrote "disass.el" "tar-mode.el"))
"Actions taken from the original, manually (un)maintained AUTHORS file.")
(defconst authors-valid-file-names
'("aclocal.m4"
- "makedist.bat")
+ "makedist.bat"
+ "make-delta")
"File names which are valid, but no longer exists (or cannot be
found) in the repository.")
("s/windowsnt.h" . "s/ms-w32.h")
("config.emacs" . "configure")
("GETTING.GNU.SOFTWARE" . "FTP")
+ ("leim-Makefile" . "leim/Makefile")
+ ("leim-Makefile.in" . "leim/Makefile.in")
+ ("INSTALL-CVS" . "INSTALL.CVS")
)
"Alist of files which have been renamed during their lifetime.
Elements are (OLDNAME . NEWNAME).")
(setq rules (cdr rules))))))
(setq authors-checked-files-alist
(cons (cons file valid) authors-checked-files-alist))
- (unless valid
- (setq authors-invalid-file-names
+ (unless (or valid
+ (string-match "[*]" file)
+ (string-match "^[0-9.]+$" file))
+ (setq authors-invalid-file-names
(cons (format "%s:%d: unrecognized `%s' for %s"
log-file
(1+ (count-lines (point-min) pos))
ACTION is a keyword symbol describing what he did. Record file,
author and what he did in hash table TABLE. See the description of
`authors-scan-change-log' for the structure of the hash table."
- (unless (or (authors-obsolete-file-p file)
+ (unless (or (member file authors-ignored-files)
+ (authors-obsolete-file-p file)
(equal author ""))
(let* ((value (gethash author table))
(entry (assoc file value))
(setq regexps (cdr regexps))))))
(when author
(setq author (replace-regexp-in-string "[ \t]*[(<].*$" "" author))
- (setq author (replace-regexp-in-string "^[ \t]+" "" author))
+ (setq author (replace-regexp-in-string "\`[ \t]+" "" author))
(setq author (replace-regexp-in-string "[ \t]+$" "" author))
+ (setq author (replace-regexp-in-string "[ \t]+" " " author))
+ (unless (string-match "[-, \t]" author)
+ (setq author ""))
(capitalize author)))
-
(defun authors-scan-change-log (log-file table)
"Scan change log LOG-FILE for author information.
CHANGES is an alist of entries (FILE (ACTION . COUNT) ...), as produced by
`authors-scan-change-log'.
The element added to `authors-author-list' is (AUTHOR WROTE CHANGED), where
-WROTE and CHANGED are lists of the files written and changed by AUTHOR."
+WROTE and CHANGED are lists of the files written and changed by AUTHOR."
(when author
(let ((nchanged 0)
wrote-list
(defun authors (root)
"Extract author information from change logs and Lisp source files.
ROOT is the root directory under which to find the files. If called
-interactively, ROOT is read from the minibuffer.
+interactively, ROOT is read from the minibuffer.
Result is a buffer *Authors* containing authorship information, and a
buffer *Authors Errors* containing references to unknown files."
(interactive "DEmacs source directory: ")
(unless (file-exists-p (expand-file-name "src/emacs.c" root))
(error "Not the root directory of Emacs: %s" root))
(dolist (log logs)
- (when (and (string-match "ChangeLog\\(.[0-9]+\\)?$" log)
- (not (string-match "/lispref/" log)))
+ (when (string-match "ChangeLog\\(.[0-9]+\\)?$" log)
(message "Scanning %s..." log)
(authors-scan-change-log log table)))
(let ((els (authors-process-lines "find" root "-name" "*.el")))
(set-buffer (get-buffer-create buffer-name))
(erase-buffer)
(set-buffer-file-coding-system authors-coding-system)
- (insert
+ (insert
"Many people have contributed code included in the Free Software
Foundation's distribution of GNU Emacs. To show our appreciation for
their public spirit, we list here in alphabetical order a condensed
list of their contributions.\n")
(let (authors-author-list a)
(maphash #'authors-add-to-author-list table)
- (setq authors-author-list
+ (setq authors-author-list
(sort authors-author-list
(lambda (a b) (string-lessp (car a) (car b)))))
(dolist (a authors-author-list)
(insert "\n "))
(insert " " file))
(insert "\n")))))
- (insert "\nLocal" " Variables:\ncoding: "
+ (insert "\nLocal" " Variables:\ncoding: "
(symbol-name authors-coding-system) "\nEnd:\n")
(message "Generating buffer %s... done" buffer-name)
(unless noninteractive
(authors root)
(write-file file)))
+;;; arch-tag: 659d5900-5ff2-43b0-954c-a315cc1e4dc1
;;; authors.el ends here