X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/2c82deee7fbb951a90ed3246350fbf9390af038a..8085d5fcc4240a39458ead26ae2279590bb9f629:/admin/authors.el diff --git a/admin/authors.el b/admin/authors.el index d214ff281b..1447bd4f49 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -1,6 +1,6 @@ -;;; authors.el --- utility for maintaining Emacs's AUTHORS file -*-coding: utf-8 -*- +;;; authors.el --- utility for maintaining Emacs's AUTHORS file -;; Copyright (C) 2000-2015 Free Software Foundation, Inc. +;; Copyright (C) 2000-2016 Free Software Foundation, Inc. ;; Author: Gerd Moellmann ;; Maintainer: Kim F. Storm @@ -27,6 +27,9 @@ ;; 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 @@ -76,7 +79,7 @@ files.") ("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") @@ -86,6 +89,7 @@ files.") ("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") @@ -208,7 +212,7 @@ If REALNAME is nil, ignore that author.") "Michael McNamara" "Mike McEwan" "Nelson Jose dos Santos Ferreira" - "Peter von der Ahe" + "Peter von der Ahé" "Peter O'Gorman" "Piet van Oostrum" "Roland McGrath" @@ -243,6 +247,7 @@ If REALNAME is nil, ignore that author.") '(".*loaddefs.el$" ; not obsolete, but auto-generated "\\.\\(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\\'" @@ -262,7 +267,7 @@ Changes to files matching one of the regexps in this list are not listed.") '("external-lisp" "lock" "share-lib" "local-lisp" "noleim-Makefile.in" - "NEWS" "ORDERS" "PROBLEMS" "FAQ" "AUTHORS" "FOR-RELEASE" "TODO" "todo" + "NEWS" "ORDERS" "PROBLEMS" "FAQ" "AUTHORS" "release-process" "TODO" "todo" "MACHINES" "SERVICE" "README.unicode" "README.multi-tty" "TUTORIAL.translators" "NEWS.unicode" "COPYING.DJ" "Makefile.old" "Makefile.am" @@ -274,6 +279,9 @@ Changes to files matching one of the regexps in this list are not listed.") "ChangeLog.nextstep" "Emacs.clr" "spec.txt" "gfdl.1" "texi/Makefile.in" + "autodeps.mk" + "oldXMenu/autodeps.mk" + "src/autodeps.mk" "Imakefile" "icons/sink.ico" "aixcc.lex" "nxml/char-name/unicode" "spec.txt" @@ -289,6 +297,7 @@ Changes to files matching one of the regexps in this list are not listed.") "cedet/tests/test.cpp" "cedet/tests/test.py" "cedet/tests/teststruct.cpp" + "subdirs.el" "*.el" ;; Autogen: "cus-load.el" "finder-inf.el" "ldefs-boot.el" "loaddefs-boot.el" @@ -352,12 +361,38 @@ Changes to files matching one of the regexps in this list are not listed.") "debian/scripts/startup.erc" "debian/scripts/startup.erc-speak" ;; Used to be in admin, not very interesting. - "emacs-pretesters" "make-announcement" "make-changelog-diff" + "emacs-pretesters" "make-announcement" "make-changelog-diff" "admin/FOR-RELEASE" "etc/FOR-RELEASE" "nextstep/FOR-RELEASE" "FOR-RELEASE" ;; Textual comments that are not files. "All" "Version" "Everywhere" "Many" "Various" "files" ;; Directories. "vms" "mac" "url" "tree-widget" "info/dir" + ;; Not in gnulib anymore + "lib/qset-acl.c" "lib/qcopy-acl.c" "lib/file-has-acl.c" + ;; files from old MS Windows build procedures + "makefile.w32-in" + "unidata/makefile.w32-in" + "lib/makefile.w32-in" + "leim/makefile.w32-in" + "src/makefile.w32-in" + "nt/emacs-src.tags" + "doc/emacs/makefile.w32-in" + "doc/lispintro/makefile.w32-in" + "doc/lispref/makefile.w32-in" + "doc/misc/makefile.w32-in" + "nt/paths.h" + "paths.h" + "src/paths.h" + "envadd.bat" + "multi-install-info.bat" + "INSTALL.OLD" + "nt/src/paths.h" + "nmake.defs" + "gmake.defs" + "zipdist.bat" + "nt/makefile.w32-in" + "config.nt" + "nextstep/WISHLIST" ) "List of files and directories to ignore. Changes to files in this list are not listed.") @@ -648,6 +683,7 @@ Changes to files in this list are not listed.") "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" @@ -655,7 +691,8 @@ Changes to files in this list are not listed.") "mh-exec.el" "mh-init.el" "mh-customize.el" "net/zone-mode.el" "xesam.el" "term/mac-win.el" "sup-mouse.el" - "term/vt102.el" "term/vt201.el" "term/vt220.el" "term/vt300.el" + "term/apollo.el" + "term/vt102.el" "term/vt125.el" "term/vt201.el" "term/vt220.el" "term/vt300.el" "term/vt320.el" "term/vt400.el" "term/vt420.el" "url-https.el" "org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el" @@ -756,6 +793,8 @@ in the repository.") ("DIFF" . "OTHER.EMACSES") ("CCADIFF" . "OTHER.EMACSES") ("GOSDIFF" . "OTHER.EMACSES") + ;; Nextstep + ("nextstep/Cocoa/Emacs.base/Contents/Info.plist" . "nextstep/templates/Info.plist.in") ;; 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). @@ -798,6 +837,7 @@ in the repository.") ("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") @@ -809,6 +849,9 @@ in the repository.") ("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") @@ -843,6 +886,8 @@ in the repository.") ("ED.WORSHIP" . "JOKES") ("GNU.JOKES" . "JOKES") ("CHARACTERS" . "TODO") + ("lisp/character-fold.el" . "lisp/char-fold.el") + ("test/automated/character-fold-tests.el" . "test/automated/char-fold-tests.el") ("images/gnus/mail_send.xpm" . "mail-send.xpm") ; still in images/gnus ;; Renamed within same directory. ("schema/xhtml-basic-form.rnc" . "xhtml-bform.rnc" ) @@ -876,6 +921,11 @@ in the repository.") ("nt/README.W32" . "README.W32") ("notes/BRANCH" . "notes/repo") ("notes/bzr" . "notes/repo") + ;; moved from lisp/ to lisp/net/ + ("lisp/pinentry.el" . "lisp/net/pinentry.el") + ;; module.* moved to emacs-module.* + ("src/module.h" . "src/emacs-module.h") + ("src/module.c" . "src/emacs-module.c") ) "Alist of files which have been renamed during their lifetime. Elements are (OLDNAME . NEWNAME).") @@ -969,10 +1019,8 @@ Elements with LAX non-nil are only used in `authors-lax-changelogs'.") ;; 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\\'" @@ -1070,10 +1118,10 @@ to print a message if FILE is not found." (string-match "^[0-9.]+$" file) laxlog) (setq authors-invalid-file-names - (cons (format "%s:%d: unrecognized `%s' for %s" - log-file - (1+ (count-lines (point-min) pos)) - file author) + (cons (format-message "%s:%d: unrecognized `%s' for %s" + log-file + (1+ (count-lines (point-min) pos)) + file author) authors-invalid-file-names))) valid))) @@ -1146,7 +1194,7 @@ it is found in `authors-fixed-case'." (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) @@ -1315,24 +1363,36 @@ and changed by AUTHOR." (cons (list author wrote-list cowrote-list changed-list) authors-author-list))))) -(defun authors (root) +(defun authors (root &optional nologupdate) "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. -Result is a buffer *Authors* containing authorship information, and a -buffer *Authors Errors* containing references to unknown files." - (interactive "DEmacs source directory: ") +ROOT is the root directory under which to find the files. +Interactively, read ROOT from the minibuffer. +Accurate author information requires up-to-date change logs, so this +first updates them, unless optional prefix argument NOLOGUPDATE is non-nil. +The result is a buffer *Authors* containing authorship information, +and a buffer *Authors Errors* containing references to unknown files." + (interactive "DEmacs source directory: \nP") (setq root (expand-file-name root)) + (unless (file-exists-p (expand-file-name "src/emacs.c" root)) + (unless (y-or-n-p + (format "Not the root directory of Emacs: %s, continue? " root)) + (user-error "Not the root directory"))) + ;; May contain your personal entries. + (or (not (file-exists-p (expand-file-name "ChangeLog" root))) + (y-or-n-p "Unversioned ChangeLog present, continue?") + (user-error "Unversioned ChangeLog may have irrelevant entries")) + (or nologupdate + ;; There are likely to be things that need fixing, so we update + ;; the versioned ChangeLog.N rather than the unversioned ChangeLog. + (zerop (call-process "make" nil nil nil + "-C" root "change-history-nocommit")) + (error "Problem updating ChangeLog")) (let ((logs (process-lines find-program root "-name" "ChangeLog*")) (table (make-hash-table :test 'equal)) (buffer-name "*Authors*") authors-checked-files-alist authors-invalid-file-names) (authors-add-fixed-entries table) - (unless (file-exists-p (expand-file-name "src/emacs.c" root)) - (unless (y-or-n-p - (format "Not the root directory of Emacs: %s, continue? " root)) - (error "Not the root directory"))) (dolist (log logs) (when (string-match "ChangeLog\\(.[0-9]+\\)?$" log) (message "Scanning %s..." log)