;;; authors.el --- utility for maintaining Emacs's AUTHORS file -*-coding: utf-8 -*-
-;; Copyright (C) 2000-2014 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2015 Free Software Foundation, Inc.
;; Author: Gerd Moellmann <gerd@gnu.org>
;; Maintainer: Kim F. Storm <storm@cua.dk>
;; Use M-x authors RET to create an *Authors* buffer that can used as
;; or merged with Emacs's AUTHORS file.
+;; FIXME: This needs to modernized in the light of current practice,
+;; which generates a single top-level ChangeLog file from commit logs.
+
;;; Code:
(defvar authors-coding-system 'utf-8
(defconst authors-aliases
'(
+ (nil "A\\. N\\. Other") ; unknown author 2014-12-03, later removed
("Aaron S. Hawley" "Aaron Hawley")
("Alexandru Harsanyi" "Alex Harsanyi")
("Andrew Csillag" "Drew Csillag")
("Gerd Möllmann" "Gerd Moellmann")
("Hallvard B. Furuseth" "Hallvard B Furuseth" "Hallvard Furuseth")
("Hrvoje Nikšić" "Hrvoje Niksic")
- ;; lisp/org/ChangeLog 2010-11-11.
+ ;; lisp/org/ChangeLog.1 2010-11-11.
(nil "aaa bbb")
(nil "Code Extracted") ; lisp/newcomment.el's "Author:" header
("Jaeyoun Chung" "Jae-youn Chung" "Jae-you Chung" "Chung Jae-youn")
("Jens-Ulrik Holger Petersen" "Jens-Ulrik Petersen")
("Jeremy Bertram Maitin-Shepard" "Jeremy Maitin-Shepard")
("Johan Bockgård" "Johan Bockgard")
+ ("John F. Carr" "John F Carr")
("John J Foerch" "John Foerch")
("John W. Eaton" "John Eaton")
("Jonathan I. Kamens" "Jonathan Kamens")
(defvar authors-obsolete-files-regexps
'(".*loaddefs.el$" ; not obsolete, but auto-generated
- "\\.\\(cvs\\|git\\)ignore$" ; obsolete or uninteresting
+ "\\.\\(bzr\\|cvs\\|git\\)ignore$" ; obsolete or uninteresting
"\\.arch-inventory$"
+ "ChangeLog\\(\\.[0-9]+\\)?\\'"
"automated/data/" ; not interesting
;; TODO lib/? Matches other things?
"build-aux/" "m4/" "Emacs.xcodeproj" "mapfiles" "\\.map\\'"
"CODINGS" "CHARSETS"
"calc/INSTALL" "calc/Makefile" "calc/README.prev"
"vms-pp.trans" "_emacs" "batcomp.com" "notes/cpp" ; admin/
+ "notes/BRANCH" "notes/exit-value"
"emacsver.texi.in"
"vpath.sed"
"Cocoa/Emacs.base/Contents/Info.plist"
"All" "Version" "Everywhere" "Many" "Various" "files"
;; Directories.
"vms" "mac" "url" "tree-widget"
+ "info/dir"
)
"List of files and directories to ignore.
Changes to files in this list are not listed.")
"images/page-down.xpm" "images/widen.pbm" "images/widen.xpm"
"images/gnus/bar.xbm" "images/gnus/bar.xpm"
"images/gnus/reverse-smile.xpm"
+ "notes/commits" "notes/changelogs"
"revdiff" ; admin/
"vcdiff" "rcs-checkin" "tindex.pl"
"mainmake" "sed1.inp" "sed2.inp" "sed3.inp" ; msdos/
"calc/calc-maint.el"
"emacs-lisp/cl-specs.el"
"emacs-lisp/eieio-comp.el"
+ "emacs-lisp/eieio-generic.el"
"erc-hecomplete.el"
"eshell/esh-maint.el"
"language/persian.el"
"org-lparse.el"
"org-special-blocks.el" "org-taskjuggler.el"
"progmodes/cap-words.el"
+ "w32-common-fns.el"
;; gnus
"nnwfm.el" "nnlistserv.el" "nnkiboze.el" "nndb.el" "nnsoup.el"
"netrc.el" "password.el" "sasl-cram.el" "sasl-digest.el" "sasl-ntlm.el"
"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"
+ "yow.c" "grep-changelog" "grep-changelog.1"
;; etc/
"emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c"
"test-distrib.c" "testfile"
("play/bruce.el" . "bruce.el")
("play/yow.el" . "yow.el")
("patcomp.el" . "patcomp.el")
+ ("emulation/ws-mode.el" . "ws-mode.el")
+ ("vc/vc-arch.el" . "vc-arch.el")
;; From lisp to etc/forms.
("forms-d2.el" . "forms-d2.el")
("forms-pass.el" . "forms-pass.el")
;; The one in lisp is eshell/eshell.el.
("eshell.el" . "automated/eshell.el")
("eshell/esh-test.el" . "automated/eshell.el")
+ ("automated/cl-lib.el" . "automated/cl-lib-tests.el")
("automated/package-x-test.el" . "automated/package-test.el")
+ ("indent/js-indent-first-initialiser-t.js" . "indent/js-indent-init-t.js")
+ ("indent/js-indent-first-initialiser-dynamic.js" .
+ "indent/js-indent-init-dynamic.js")
;; INSTALL-CVS -> .CVS -> .BZR -> .REPO
("INSTALL-CVS" . "INSTALL.REPO")
("INSTALL.CVS" . "INSTALL.REPO")
("grammars/wisent-grammar.el" . "wisent/grammar.el")
;; Moved from admin/nt/ to nt/.
("nt/README.W32" . "README.W32")
+ ("notes/BRANCH" . "notes/repo")
+ ("notes/bzr" . "notes/repo")
)
"Alist of files which have been renamed during their lifetime.
Elements are (OLDNAME . NEWNAME).")
("comint-testsuite.el" "automated/\\&")
("\\`\\(bytecomp\\|font-parse\\|icalendar\\|occur\\|newsticker\\)\
-testsuite\\.el" "automated/\\1-tests.el")
+ ("automated/flymake/warnpred/\\(Makefile\\|test\\.\\(?:c\\|pl\\)\\)\\'"
+ "automated/data/flymake/\\1")
;; NB lax rules should come last.
("^m/m-\\(.*\\.h\\)$" "m/\\1" t)
("^m-\\(.*\\.h\\)$" "\\1" t)
;; 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]\\'"
+ '("erc/ChangeLog\\.1\\'"
"gnus/ChangeLog\\.[1-2]\\'"
"lisp/ChangeLog\\.\\([1-9]\\|1[0-5]\\)\\'"
"mh-e/ChangeLog\\.1\\'"
(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)