aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog10
-rw-r--r--lisp/emacs-lisp/authors.el179
2 files changed, 178 insertions, 11 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b8eacdfc029..91269334aae 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,13 @@
12008-12-19 Glenn Morris <rgm@gnu.org>
2
3 * emacs-lisp/authors.el (authors-fixed-case): New constant.
4 (authors-public-domain-files, authors-ignored-files):
5 (authors-valid-file-names, authors-renamed-files-alist): Update lists.
6 (authors-renamed-files-regexps): Add some new entries.
7 (authors-canonical-file-name): Don't complain about ignored files.
8 (authors-canonical-author-name): Doc fix. Respect authors-fixed-case.
9 (authors): Ensure error buffer is writable.
10
12008-12-18 Kenichi Handa <handa@m17n.org> 112008-12-18 Kenichi Handa <handa@m17n.org>
2 12
3 * international/fontset.el (script-representative-chars): Add more 13 * international/fontset.el (script-representative-chars): Add more
diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el
index 8af755c093e..19cc4a83cdf 100644
--- a/lisp/emacs-lisp/authors.el
+++ b/lisp/emacs-lisp/authors.el
@@ -144,19 +144,42 @@ Each entry is of the form (REALNAME REGEXP...). If an author's name
144matches one of the REGEXPs, use REALNAME instead. 144matches one of the REGEXPs, use REALNAME instead.
145If REALNAME is nil, ignore that author.") 145If REALNAME is nil, ignore that author.")
146 146
147(defconst authors-fixed-case
148 '("Bryan O'Sullivan"
149 "Christian von Roques"
150 "Craig McDaniel"
151 "David J. MacKenzie"
152 "David McCabe"
153 "David O'Toole"
154 "Dominique de Waleffe"
155 "Edward O'Connor"
156 "Exal de Jesus Garcia Carrillo"
157 "Greg McGary"
158 "Hans de Graaff"
159 "James TD Smith"
160 "Michael McNamara"
161 "Mike McEwan"
162 "Peter von der Ahe"
163 "Peter O'Gorman"
164 "Roland McGrath"
165 "Sean O'Rourke")
166 "List of authors whose names cannot be simply capitalized.")
147 167
148(defvar authors-public-domain-files 168(defvar authors-public-domain-files
149 '("auto-show\\.el" 169 '("emerge\\.el"
150 "form-d2\\.el"
151 "emerge\\.el"
152 "unused\\.el"
153 "vi\\.el" 170 "vi\\.el"
154 "feedmail\\.el" 171 "feedmail\\.el"
155 "mailpost\\.el" 172 "mailpost\\.el"
156 "hanoi\\.el" 173 "hanoi\\.el"
157 "meese\\.el" 174 "meese\\.el"
158 "studly\\.el" 175 "studly\\.el"
159 "modula2\\.el") 176 "modula2\\.el"
177 "nnmaildir\\.el"
178 "nnil\\.el"
179 "b2m\\.c"
180 "unexhp9k800\\.c"
181 "emacsclient\\.1"
182 "check-doc-strings")
160 "List of regexps matching files for which the FSF doesn't need papers.") 183 "List of regexps matching files for which the FSF doesn't need papers.")
161 184
162 185
@@ -172,7 +195,56 @@ listed.")
172 '("external-lisp" 195 '("external-lisp"
173 "lock" "share-lib" "local-lisp" 196 "lock" "share-lib" "local-lisp"
174 "noleim-Makefile.in" 197 "noleim-Makefile.in"
175 "NEWS" "PROBLEMS" "FAQ" "AUTHORS" "FOR-RELEASE" "TODO") 198 "NEWS" "ORDERS" "PROBLEMS" "FAQ" "AUTHORS" "FOR-RELEASE" "TODO" "todo"
199 "MACHINES" "SERVICE"
200 "README.unicode" "README.multi-tty" "TUTORIAL.translators"
201 "NEWS.unicode" "COPYING.DJ" "Makefile.old" "Makefile.am"
202 "NEWS.1" "OOOOONEWS...OONEWS" "OOOONEWS" "etc/NEWS"
203 "NEWS.1-17" "NEWS.18" "NEWS.19" "NEWS.20" "NEWS.21" "NEWS.22"
204 "install-sh" "missing" "mkinstalldirs"
205 "termcap.dat" "termcap.src" "termcap.ucb" "termcap"
206 "ChangeLog.nextstep" "Emacs.clr" "spec.txt"
207 "gfdl.1"
208 "texi/Makefile.in"
209 "Imakefile" "icons/sink.ico" "aixcc.lex"
210 "nxml/char-name/unicode"
211 ;; Never had any meaningful changes logged, now deleted:
212 "split-man" "Xkeymap.txt" "ms-7bkermit" "ulimit.hack"
213 "gnu-hp300" "refcard.bit" "ledit.l" "forms.README"
214 "CXTERM-DIC/PY.tit" "CXTERM-DIC/ZIRANMA.tit"
215 "CXTERM-DIC/CTLau.tit" "CXTERM-DIC/CTLauB.tit"
216 "NICKLES.WORTH" "INTERVAL.IDEAS" "RCP"
217 "3B-MAXMEM" "AIX.DUMP" "SUN-SUPPORT" "XENIX"
218 "CODINGS" "CHARSETS"
219 "calc/INSTALL" "calc/Makefile"
220 "vms-pp.trans" "_emacs" "batcomp.com"
221 ;; MH-E stuff not in Emacs:
222 "import-emacs" "release-utils"
223 ;; Erc stuff not in Emacs:
224 "ChangeLog.2001" "ChangeLog.2002" "ChangeLog.2003" "ChangeLog.2004"
225 "ChangeLog.2005"
226 "README.extras" "dir-template" "mkChangeLog" "MkChangeLog" "erc-auto.in"
227 "CREDITS" "HACKING"
228 "debian/changelog"
229 "debian/control"
230 "debian/copyright"
231 "debian/maint/conffiles"
232 "debian/maint/conffiles.in"
233 "debian/maint/postinst"
234 "debian/maint/postinst.in"
235 "debian/maint/prerm"
236 "debian/maint/prerm.in"
237 "debian/README.Debian"
238 "debian/README.erc-speak"
239 "debian/rules"
240 "debian/scripts/install"
241 "debian/scripts/install.in"
242 "debian/scripts/remove"
243 "debian/scripts/remove.in"
244 "debian/scripts/startup"
245 "debian/scripts/startup.erc"
246 "debian/scripts/startup.erc-speak"
247 )
176 "List of files and directories to ignore. 248 "List of files and directories to ignore.
177Changes to files in this list are not listed.") 249Changes to files in this list are not listed.")
178 250
@@ -283,9 +355,32 @@ Changes to files in this list are not listed.")
283 355
284(defconst authors-valid-file-names 356(defconst authors-valid-file-names
285 '("aclocal.m4" 357 '("aclocal.m4"
358 "build-ins.in"
359 "Makefile.noleim"
286 "makedist.bat" 360 "makedist.bat"
287 "make-delta") 361 "makefile.def"
288 "File names which are valid, but no longer exists (or cannot be 362 "makefile.nt"
363 "debug.bat.in" "emacs.bat.in"
364 ".gdbinit-union"
365 "alloca.s"
366 "make-delta"
367 "config.w95"
368 "emacstool.1"
369 "align.umax"
370 "cxux-crt0.s"
371 "gould-sigvec.s"
372 "getdate.y"
373 "ymakefile"
374 "permute-index" "index.perm"
375 "emacs21.ico"
376 "LPF" "LEDIT" "OTHER.EMACSES"
377 "emacs16_mac.png" "emacs24_mac.png"
378 "emacs256_mac.png" "emacs32_mac.png"
379 "emacs48_mac.png" "emacs512_mac.png"
380 ;; Deleted vms stuff:
381 "temacs.opt" "descrip.mms" "compile.com" "link.com"
382 )
383 "File names which are valid, but no longer exist (or cannot be
289found) in the repository.") 384found) in the repository.")
290 385
291(defconst authors-renamed-files-alist 386(defconst authors-renamed-files-alist
@@ -297,12 +392,56 @@ found) in the repository.")
297 ("unexnt.c" . "unexw32.c") 392 ("unexnt.c" . "unexw32.c")
298 ("s/windowsnt.h" . "s/ms-w32.h") 393 ("s/windowsnt.h" . "s/ms-w32.h")
299 ("config.emacs" . "configure") 394 ("config.emacs" . "configure")
395 ("config.h.dist" . "config.h.in")
396 ("config.h-dist" . "config.h.in")
397 ("paths.h-dist" . "paths.h.in")
398 ("patch1" . "sed1.inp")
300 ("GETTING.GNU.SOFTWARE" . "FTP") 399 ("GETTING.GNU.SOFTWARE" . "FTP")
400 ("etc/MACHINES" . "MACHINES")
401 ("ONEWS" . "NEWS.19")
402 ("ONEWS.1" . "NEWS.1-17")
403 ("ONEWS.2" . "NEWS.1-17")
404 ("ONEWS.3" . "NEWS.18")
405 ("ONEWS.4" . "NEWS.18")
406 ("ORDERS.USA" . "ORDERS")
407 ("EUROPE" . "ORDERS")
408 ("DIFF" . "OTHER.EMACSES")
409 ("CCADIFF" . "OTHER.EMACSES")
410 ("GOSDIFF" . "OTHER.EMACSES")
411 ("Makefile.in.in" . "Makefile.in")
301 ("leim-Makefile" . "leim/Makefile") 412 ("leim-Makefile" . "leim/Makefile")
302 ("leim-Makefile.in" . "leim/Makefile.in") 413 ("leim-Makefile.in" . "leim/Makefile.in")
303 ("emacs-lisp/testcover-ses.el" . "tcover-ses.el") 414 ("emacs-lisp/testcover-ses.el" . "tcover-ses.el")
304 ("emacs-lisp/testcover-unsafep.el" . "tcover-unsafep.el") 415 ("emacs-lisp/testcover-unsafep.el" . "tcover-unsafep.el")
305 ("INSTALL-CVS" . "INSTALL.CVS") 416 ("INSTALL-CVS" . "INSTALL.CVS")
417 ("refcards/fr-drdref.pdf" . "refcards/fr-dired-ref.pdf")
418 ("gnus-logo.eps" . "refcards/gnus-logo.eps")
419 ("build-install" . "build-ins.in")
420 ("build-install.in" . "build-ins.in")
421 ("unidata/Makefile" . "unidata/Makefile.in")
422 ;; Not renamed, but we only have the latter in the Emacs repo.
423 ("trampver.texi.in" . "trampver.texi")
424 ("e/eterm" . "e/eterm-color")
425 ("e/eterm.ti" . "e/eterm-color.ti")
426 ("README.txt" . "README")
427 ("emacs.names" . "JOKES")
428 ("ED.WORSHIP" . "JOKES")
429 ("GNU.JOKES" . "JOKES")
430 ("CHARACTERS" . "TODO")
431 ("schema/xhtml-basic-form.rnc" . "schema/xhtml-bform.rnc" )
432 ("schema/xhtml-basic-table.rnc" . "schema/xhtml-btable.rnc")
433 ("schema/xhtml-list.rnc" . "schema/xhtml-lst.rnc")
434 ("schema/xhtml-target.rnc" . "schema/xhtml-tgt.rnc")
435 ("schema/xhtml-style.rnc" . "schema/xhtml-xstyle.rnc")
436 ("schema/docbook-dyntbl.rnc" . "schema/docbk-dyntbl.rnc")
437 ("schema/docbook-soextbl.rnc" . "schema/docbk-soextbl.rn" )
438 ("texi/url.txi" . "url.texi")
439 ;; Moved to different directories.
440 ("ctags.1" . "ctags.1")
441 ("etags.1" . "etags.1")
442 ("emacs.1" . "emacs.1")
443 ("emacsclient.1" . "emacsclient.1")
444 ("icons/emacs21.ico" . "emacs21.ico")
306 ) 445 )
307 "Alist of files which have been renamed during their lifetime. 446 "Alist of files which have been renamed during their lifetime.
308Elements are (OLDNAME . NEWNAME).") 447Elements are (OLDNAME . NEWNAME).")
@@ -325,6 +464,13 @@ Elements are (OLDNAME . NEWNAME).")
325 ("\\.[xp]bm$" . t) 464 ("\\.[xp]bm$" . t)
326 ("^paths\\." . t) 465 ("^paths\\." . t)
327 ("^install\\." . t) 466 ("^install\\." . t)
467 ("^\\(TUTORIAL[^/]*\\)" . "tutorials/\\1")
468 ("^\\(tree-widget/\\(?:default\\|folder\\)/[-a-z]+\\.png\\)$" .
469 "images/\\1")
470 ("^\\(images/icons/\\)mac\\(emacs\\)_\\([0-9]+\\)\\(\\.png\\)" .
471 "\\1\\2\\3_mac\\4")
472 ("\\(images/icons/\\)emacs_\\([0-9][0-9]\\)\\.png" .
473 "\\1hicolor/\\2x\\2/apps/emacs.png")
328 ) 474 )
329 "List regexps and rewriting rules for renamed files. 475 "List regexps and rewriting rules for renamed files.
330Elements are (REGEXP . REPLACE). If REPLACE is a string, the file 476Elements are (REGEXP . REPLACE). If REPLACE is a string, the file
@@ -342,6 +488,12 @@ the file name."
342 (let ((entry (assoc file authors-checked-files-alist)) 488 (let ((entry (assoc file authors-checked-files-alist))
343 relname 489 relname
344 valid) 490 valid)
491 ;; FIXME this is bogus. FILE should be re-checked in every
492 ;; different directory associated with LOG-FILE.
493 ;; Eg if src/ChangeLog refers to configure.in, and you happen to
494 ;; scan src/ before top-level/, the configure.in entries in
495 ;; top-level/ get ignored, because this mistakenly thinks
496 ;; top-level/configure.in does not exist.
345 (if entry 497 (if entry
346 (cdr entry) 498 (cdr entry)
347 (setq relname (file-name-nondirectory file)) 499 (setq relname (file-name-nondirectory file))
@@ -365,6 +517,7 @@ the file name."
365 (setq authors-checked-files-alist 517 (setq authors-checked-files-alist
366 (cons (cons file valid) authors-checked-files-alist)) 518 (cons (cons file valid) authors-checked-files-alist))
367 (unless (or valid 519 (unless (or valid
520 (member file authors-ignored-files)
368 (string-match "[*]" file) 521 (string-match "[*]" file)
369 (string-match "^[0-9.]+$" file)) 522 (string-match "^[0-9.]+$" file))
370 (setq authors-invalid-file-names 523 (setq authors-invalid-file-names
@@ -418,8 +571,9 @@ author and what he did in hash table TABLE. See the description of
418 571
419(defun authors-canonical-author-name (author) 572(defun authors-canonical-author-name (author)
420 "Return a canonicalized form of AUTHOR, an author name. 573 "Return a canonicalized form of AUTHOR, an author name.
421If AUTHOR has an alias, use that. Remove email addresses. Capitalize 574If AUTHOR has an entry in `authors-aliases', use that. Remove
422words in the author's name." 575email addresses. Capitalize words in the author's name, unless
576it is found in `authors-fixed-case'."
423 (let* ((aliases authors-aliases) 577 (let* ((aliases authors-aliases)
424 regexps realname) 578 regexps realname)
425 (while aliases 579 (while aliases
@@ -439,7 +593,8 @@ words in the author's name."
439 (setq author (replace-regexp-in-string "[ \t]+" " " author)) 593 (setq author (replace-regexp-in-string "[ \t]+" " " author))
440 (unless (string-match "[-, \t]" author) 594 (unless (string-match "[-, \t]" author)
441 (setq author "")) 595 (setq author ""))
442 (capitalize author))) 596 (or (car (member author authors-fixed-case))
597 (capitalize author))))
443 598
444(defun authors-scan-change-log (log-file table) 599(defun authors-scan-change-log (log-file table)
445 "Scan change log LOG-FILE for author information. 600 "Scan change log LOG-FILE for author information.
@@ -515,6 +670,7 @@ TABLE is a hash table to add author information to."
515 ;; Some entries contain a year range in front of the 670 ;; Some entries contain a year range in front of the
516 ;; author's name. 671 ;; author's name.
517 (skip-chars-forward "-0-9 \t") 672 (skip-chars-forward "-0-9 \t")
673 ;; FIXME handle multiline authors, comma-separated.
518 (let ((author (buffer-substring-no-properties 674 (let ((author (buffer-substring-no-properties
519 (point) (line-end-position)))) 675 (point) (line-end-position))))
520 (setq author (authors-canonical-author-name author)) 676 (setq author (authors-canonical-author-name author))
@@ -643,6 +799,7 @@ list of their contributions.\n")
643 (unless noninteractive 799 (unless noninteractive
644 (when authors-invalid-file-names 800 (when authors-invalid-file-names
645 (with-current-buffer (get-buffer-create "*Authors Errors*") 801 (with-current-buffer (get-buffer-create "*Authors Errors*")
802 (setq buffer-read-only nil)
646 (erase-buffer) 803 (erase-buffer)
647 (set-buffer-file-coding-system authors-coding-system) 804 (set-buffer-file-coding-system authors-coding-system)
648 (insert "Unrecognized file entries found:\n\n") 805 (insert "Unrecognized file entries found:\n\n")