diff options
| -rw-r--r-- | lisp/ChangeLog | 10 | ||||
| -rw-r--r-- | lisp/emacs-lisp/authors.el | 179 |
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 @@ | |||
| 1 | 2008-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 | |||
| 1 | 2008-12-18 Kenichi Handa <handa@m17n.org> | 11 | 2008-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 | |||
| 144 | matches one of the REGEXPs, use REALNAME instead. | 144 | matches one of the REGEXPs, use REALNAME instead. |
| 145 | If REALNAME is nil, ignore that author.") | 145 | If 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. |
| 177 | Changes to files in this list are not listed.") | 249 | Changes 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 | ||
| 289 | found) in the repository.") | 384 | found) 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. |
| 308 | Elements are (OLDNAME . NEWNAME).") | 447 | Elements 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. |
| 330 | Elements are (REGEXP . REPLACE). If REPLACE is a string, the file | 476 | Elements 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. |
| 421 | If AUTHOR has an alias, use that. Remove email addresses. Capitalize | 574 | If AUTHOR has an entry in `authors-aliases', use that. Remove |
| 422 | words in the author's name." | 575 | email addresses. Capitalize words in the author's name, unless |
| 576 | it 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") |