diff options
| author | Glenn Morris | 2014-01-16 21:11:36 -0500 |
|---|---|---|
| committer | Glenn Morris | 2014-01-16 21:11:36 -0500 |
| commit | 0d613483907fc9b053de10dfb0377f2b67eac682 (patch) | |
| tree | 402d8c31c86b83cc782306400daf72563326b213 | |
| parent | 56db2b1bfd76350495cb1e791c98cfe00df26c10 (diff) | |
| download | emacs-0d613483907fc9b053de10dfb0377f2b67eac682.tar.gz emacs-0d613483907fc9b053de10dfb0377f2b67eac682.zip | |
Make M-x authors return zero *Authors Errors* from current logs
* lisp/emacs-lisp/authors.el (authors-obsolete-files-regexps):
(authors-ignored-files): Add some entries, remove others.
(authors-ambiguous-files, authors-valid-file-names): Add some entries.
(authors-renamed-files-alist): Add, remove, and adjust entries.
(authors-renamed-files-regexps): Add some entries.
Remove some very broad ones. Make some entries `lax'.
(authors-lax-changelogs): New constant.
(authors-disambiguate-file-name): Treat top-level specially.
(authors-lax-changelog-p): New function.
(authors-canonical-file-name): Check file as written against
authors-valid-file-names. Do not special-case etc/.
Handle `lax' logs and authors-renamed-files-regexps elements.
* admin/make-tarball.txt: Update for no expected *Authors Errors*.
| -rw-r--r-- | admin/make-tarball.txt | 12 | ||||
| -rw-r--r-- | lisp/ChangeLog | 17 | ||||
| -rw-r--r-- | lisp/emacs-lisp/authors.el | 395 |
3 files changed, 334 insertions, 90 deletions
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index fc7f81f0c28..50183f75561 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt | |||
| @@ -28,14 +28,10 @@ General steps (for each step, check for possible errors): | |||
| 28 | M-: (require 'authors) RET | 28 | M-: (require 'authors) RET |
| 29 | M-x authors RET | 29 | M-x authors RET |
| 30 | 30 | ||
| 31 | There is almost guaranteed to be an "*Authors Errors*" buffer with | 31 | If there is an "*Authors Errors*" buffer, address the issues. |
| 32 | problems caused by certain bad ChangeLog entries. You can ignore | 32 | If there was a ChangeLog typo, fix it. If a file was deleted or |
| 33 | the very old ones (eg lisp/erc has a lot). If there are errors | 33 | renamed, consider adding an appropriate entry to authors-ignored-files, |
| 34 | related to new entries (especially entries that are new since the | 34 | authors-valid-file-names, or authors-renamed-files-alist. |
| 35 | last pretest), see if you can fix them. If there was a ChangeLog | ||
| 36 | typo, fix it. If a file was deleted or renamed, consider adding | ||
| 37 | an appropriate entry to authors-ignored-files, authors-valid-file-names, | ||
| 38 | or authors-renamed-files-alist. | ||
| 39 | 35 | ||
| 40 | If necessary, repeat M-x authors after making those changes. | 36 | If necessary, repeat M-x authors after making those changes. |
| 41 | Save the "*Authors*" buffer as etc/AUTHORS. | 37 | Save the "*Authors*" buffer as etc/AUTHORS. |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 660c8712a15..2cc9293b14d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,20 @@ | |||
| 1 | 2014-01-17 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | Make M-x authors return zero *Authors Errors* from current logs. | ||
| 4 | * emacs-lisp/authors.el (authors-obsolete-files-regexps): | ||
| 5 | (authors-ignored-files): Add some entries, remove others. | ||
| 6 | (authors-ambiguous-files, authors-valid-file-names): | ||
| 7 | Add some entries. | ||
| 8 | (authors-renamed-files-alist): Add, remove, and adjust entries. | ||
| 9 | (authors-renamed-files-regexps): Add some entries. | ||
| 10 | Remove some very broad ones. Make some entries `lax'. | ||
| 11 | (authors-lax-changelogs): New constant. | ||
| 12 | (authors-disambiguate-file-name): Treat top-level specially. | ||
| 13 | (authors-lax-changelog-p): New function. | ||
| 14 | (authors-canonical-file-name): Check file as written against | ||
| 15 | authors-valid-file-names. Do not special-case etc/. | ||
| 16 | Handle `lax' logs and authors-renamed-files-regexps elements. | ||
| 17 | |||
| 1 | 2014-01-16 Dmitry Gutov <dgutov@yandex.ru> | 18 | 2014-01-16 Dmitry Gutov <dgutov@yandex.ru> |
| 2 | 19 | ||
| 3 | * emacs-lisp/package.el (package-desc--keywords): Use `cdr' with | 20 | * emacs-lisp/package.el (package-desc--keywords): Use `cdr' with |
diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el index 429a6170df9..841d4fad9fb 100644 --- a/lisp/emacs-lisp/authors.el +++ b/lisp/emacs-lisp/authors.el | |||
| @@ -246,15 +246,15 @@ If REALNAME is nil, ignore that author.") | |||
| 246 | 246 | ||
| 247 | 247 | ||
| 248 | (defvar authors-obsolete-files-regexps | 248 | (defvar authors-obsolete-files-regexps |
| 249 | '("vc-\\*\\.el$" | 249 | '(".*loaddefs.el$" ; not obsolete, but auto-generated |
| 250 | "spec.txt$" | ||
| 251 | ".*loaddefs.el$" ; not obsolete, but auto-generated | ||
| 252 | "\\.\\(cvs\\|git\\)ignore$" ; obsolete or uninteresting | 250 | "\\.\\(cvs\\|git\\)ignore$" ; obsolete or uninteresting |
| 253 | "\\.arch-inventory$" | 251 | "\\.arch-inventory$" |
| 254 | ;; TODO lib/? Matches other things? | 252 | ;; TODO lib/? Matches other things? |
| 255 | "build-aux/" "m4/" "Emacs.xcodeproj" "charsets" "mapfiles" | 253 | "build-aux/" "m4/" "Emacs.xcodeproj" "mapfiles" "\\.map\\'" |
| 256 | "preferences\\.\\(nib\\|gorm\\)" | 254 | "preferences\\.\\(nib\\|gorm\\)" |
| 257 | "vc-\\(rcs\\|cvs\\|sccs\\)-hooks\\.el$") | 255 | ;; Generated files that have since been removed. |
| 256 | "\\(refcard\\(-de\\|-pl\\)?\\|calccard\\|dired-ref\\|orgcard\\|\ | ||
| 257 | gnus-booklet\\|fr-drdref\\)\\.p\\(df\\|s\\)\\'") | ||
| 258 | "List of regexps matching obsolete files. | 258 | "List of regexps matching obsolete files. |
| 259 | Changes to files matching one of the regexps in this list are not listed.") | 259 | Changes to files matching one of the regexps in this list are not listed.") |
| 260 | 260 | ||
| @@ -269,14 +269,19 @@ Changes to files matching one of the regexps in this list are not listed.") | |||
| 269 | "NEWS.1" "OOOOONEWS...OONEWS" "OOOONEWS" "etc/NEWS" | 269 | "NEWS.1" "OOOOONEWS...OONEWS" "OOOONEWS" "etc/NEWS" |
| 270 | "NEWS.1-17" "NEWS.18" "NEWS.19" "NEWS.20" "NEWS.21" "NEWS.22" | 270 | "NEWS.1-17" "NEWS.18" "NEWS.19" "NEWS.20" "NEWS.21" "NEWS.22" |
| 271 | "MAINTAINERS" "MH-E-NEWS" | 271 | "MAINTAINERS" "MH-E-NEWS" |
| 272 | "install-sh" "missing" "mkinstalldirs" | 272 | "install.sh" "install-sh" "missing" "mkinstalldirs" |
| 273 | "termcap.dat" "termcap.src" "termcap.ucb" "termcap" | 273 | "termcap.dat" "termcap.src" "termcap.ucb" "termcap" |
| 274 | "ChangeLog.nextstep" "Emacs.clr" "spec.txt" | 274 | "ChangeLog.nextstep" "Emacs.clr" "spec.txt" |
| 275 | "gfdl.1" | 275 | "gfdl.1" |
| 276 | "texi/Makefile.in" | 276 | "texi/Makefile.in" |
| 277 | "Imakefile" "icons/sink.ico" "aixcc.lex" | 277 | "Imakefile" "icons/sink.ico" "aixcc.lex" |
| 278 | "nxml/char-name/unicode" | 278 | "nxml/char-name/unicode" |
| 279 | "spec.txt" | ||
| 279 | "js2-mode.el" ; only installed very briefly, replaced by js.el | 280 | "js2-mode.el" ; only installed very briefly, replaced by js.el |
| 281 | ;; In the old imported lisp/url ChangeLog, but never in Emacs. | ||
| 282 | "mule-sysdp.el" | ||
| 283 | ;; Only briefly present. | ||
| 284 | "tests/gnustest-nntp.el" "tests/gnustest-registry.el" | ||
| 280 | "cedet/tests/testtemplates.cpp" | 285 | "cedet/tests/testtemplates.cpp" |
| 281 | "cedet/tests/testusing.cpp" | 286 | "cedet/tests/testusing.cpp" |
| 282 | "cedet/tests/scopetest.cpp" | 287 | "cedet/tests/scopetest.cpp" |
| @@ -286,7 +291,7 @@ Changes to files matching one of the regexps in this list are not listed.") | |||
| 286 | "cedet/tests/teststruct.cpp" | 291 | "cedet/tests/teststruct.cpp" |
| 287 | "*.el" | 292 | "*.el" |
| 288 | ;; Autogen: | 293 | ;; Autogen: |
| 289 | "cus-load.el" "finder-inf.el" "ldefs-boot.el" | 294 | "cus-load.el" "finder-inf.el" "ldefs-boot.el" "loaddefs-boot.el" |
| 290 | "compile" "config.guess" "config.sub" "depcomp" | 295 | "compile" "config.guess" "config.sub" "depcomp" |
| 291 | "autogen/compile" "autogen/config.guess" "autogen/config.in" | 296 | "autogen/compile" "autogen/config.guess" "autogen/config.in" |
| 292 | "autogen/config.sub" "autogen/depcomp" "autogen/install-sh" | 297 | "autogen/config.sub" "autogen/depcomp" "autogen/install-sh" |
| @@ -302,6 +307,8 @@ Changes to files matching one of the regexps in this list are not listed.") | |||
| 302 | "gnu-hp300" "refcard.bit" "ledit.l" "forms.README" "forms-d2.dat" | 307 | "gnu-hp300" "refcard.bit" "ledit.l" "forms.README" "forms-d2.dat" |
| 303 | "CXTERM-DIC/PY.tit" "CXTERM-DIC/ZIRANMA.tit" | 308 | "CXTERM-DIC/PY.tit" "CXTERM-DIC/ZIRANMA.tit" |
| 304 | "CXTERM-DIC/CTLau.tit" "CXTERM-DIC/CTLauB.tit" | 309 | "CXTERM-DIC/CTLau.tit" "CXTERM-DIC/CTLauB.tit" |
| 310 | "copying.paper" "celibacy.1" "condom.1" "echo.msg" "sex.6" | ||
| 311 | "COOKIES" "INTERVIEW" "MAILINGLISTS" "MOTIVATION" | ||
| 305 | "NICKLES.WORTH" "INTERVAL.IDEAS" "RCP" | 312 | "NICKLES.WORTH" "INTERVAL.IDEAS" "RCP" |
| 306 | "3B-MAXMEM" "AIX.DUMP" "SUN-SUPPORT" "XENIX" | 313 | "3B-MAXMEM" "AIX.DUMP" "SUN-SUPPORT" "XENIX" |
| 307 | "CODINGS" "CHARSETS" | 314 | "CODINGS" "CHARSETS" |
| @@ -344,23 +351,21 @@ Changes to files matching one of the regexps in this list are not listed.") | |||
| 344 | "debian/scripts/startup.erc-speak" | 351 | "debian/scripts/startup.erc-speak" |
| 345 | ;; Used to be in admin, not very interesting. | 352 | ;; Used to be in admin, not very interesting. |
| 346 | "emacs-pretesters" "make-announcement" "make-changelog-diff" | 353 | "emacs-pretesters" "make-announcement" "make-changelog-diff" |
| 347 | ;; Generated files that have since been removed. | 354 | ;; Textual comments that are not files. |
| 348 | "refcards/calccard.pdf" "refcards/cs-dired-ref.pdf" "refcards/cs-refcard.pdf" | 355 | "All" "Version" "Everywhere" "Many" "Various" "files" |
| 349 | "refcards/de-refcard.pdf" "refcards/dired-ref.pdf" "refcards/fr-dired-ref.pdf" | 356 | ;; Directories. |
| 350 | "refcards/fr-refcard.pdf" "refcards/gnus-booklet.pdf" "refcards/gnus-refcard.pdf" | 357 | "vms" "mac" "url" "tree-widget" |
| 351 | "refcards/orgcard.pdf" "refcards/pl-refcard.pdf" "refcards/pt-br-refcard.pdf" | ||
| 352 | "refcards/refcard.pdf" "refcards/ru-refcard.pdf" "refcards/sk-dired-ref.pdf" | ||
| 353 | "refcards/sk-refcard.pdf" | ||
| 354 | ) | 358 | ) |
| 355 | "List of files and directories to ignore. | 359 | "List of files and directories to ignore. |
| 356 | Changes to files in this list are not listed.") | 360 | Changes to files in this list are not listed.") |
| 357 | 361 | ||
| 358 | ;; List via: find . -name '*.el' | sed 's/.*\///g' | sort | uniq -d | 362 | ;; List via: find . -name '*.el' | sed 's/.*\///g' | sort | uniq -d |
| 359 | ;; FIXME It would be better to discover these dynamically. | 363 | ;; FIXME It would be better to discover these dynamically. |
| 360 | ;; Note that traditionally "Makefile.in" etc have not been in this list. | ||
| 361 | ;; Ditto for "abbrev.texi" etc. | ||
| 362 | (defconst authors-ambiguous-files | 364 | (defconst authors-ambiguous-files |
| 363 | '("chart.el" | 365 | '("Makefile.in" |
| 366 | "makefile.w32-in" | ||
| 367 | "chart.el" | ||
| 368 | "cl-lib.el" | ||
| 364 | "compile.el" | 369 | "compile.el" |
| 365 | "complete.el" | 370 | "complete.el" |
| 366 | "cpp.el" | 371 | "cpp.el" |
| @@ -379,11 +384,13 @@ Changes to files in this list are not listed.") | |||
| 379 | "format.el" | 384 | "format.el" |
| 380 | "generic.el" | 385 | "generic.el" |
| 381 | "georgian.el" | 386 | "georgian.el" |
| 387 | "grammar.el" | ||
| 382 | "greek.el" | 388 | "greek.el" |
| 383 | "grep.el" | 389 | "grep.el" |
| 384 | "hebrew.el" | 390 | "hebrew.el" |
| 385 | "imenu.el" | 391 | "imenu.el" |
| 386 | "indian.el" | 392 | "indian.el" |
| 393 | "info-xref.el" | ||
| 387 | "japanese.el" | 394 | "japanese.el" |
| 388 | "java.el" | 395 | "java.el" |
| 389 | "lao.el" | 396 | "lao.el" |
| @@ -391,6 +398,7 @@ Changes to files in this list are not listed.") | |||
| 391 | "locate.el" | 398 | "locate.el" |
| 392 | "make.el" | 399 | "make.el" |
| 393 | "mode.el" | 400 | "mode.el" |
| 401 | "mule-util.el" | ||
| 394 | "python.el" | 402 | "python.el" |
| 395 | "rmailmm.el" | 403 | "rmailmm.el" |
| 396 | "semantic.el" | 404 | "semantic.el" |
| @@ -403,6 +411,7 @@ Changes to files in this list are not listed.") | |||
| 403 | "table.el" | 411 | "table.el" |
| 404 | "texi.el" | 412 | "texi.el" |
| 405 | "thai.el" | 413 | "thai.el" |
| 414 | "thingatpt.el" | ||
| 406 | "tibetan.el" | 415 | "tibetan.el" |
| 407 | "util.el" | 416 | "util.el" |
| 408 | "vc-bzr.el" | 417 | "vc-bzr.el" |
| @@ -575,12 +584,19 @@ Changes to files in this list are not listed.") | |||
| 575 | (defconst authors-valid-file-names | 584 | (defconst authors-valid-file-names |
| 576 | '("aclocal.m4" | 585 | '("aclocal.m4" |
| 577 | "build-ins.in" | 586 | "build-ins.in" |
| 587 | "Makefile" | ||
| 578 | "Makefile.noleim" | 588 | "Makefile.noleim" |
| 579 | "makedist.bat" | 589 | "makedist.bat" |
| 580 | "makefile.def" | 590 | "makefile.def" |
| 581 | "makefile.nt" | 591 | "makefile.nt" |
| 582 | "ns.mk" | 592 | "ns.mk" |
| 593 | "README" | ||
| 594 | ;; There were a few of these, not just the generated top-level one. | ||
| 595 | "configure" "config.h" | ||
| 596 | ;; nt/ | ||
| 597 | "ebuild.bat" "install.bat" "fast-install.bat" | ||
| 583 | "debug.bat.in" "emacs.bat.in" | 598 | "debug.bat.in" "emacs.bat.in" |
| 599 | "inc/sys/dir.h" "inc/gettext.h" | ||
| 584 | ".gdbinit-union" | 600 | ".gdbinit-union" |
| 585 | "alloca.s" | 601 | "alloca.s" |
| 586 | "make-delta" | 602 | "make-delta" |
| @@ -603,16 +619,84 @@ Changes to files in this list are not listed.") | |||
| 603 | "emacs16_mac.png" "emacs24_mac.png" | 619 | "emacs16_mac.png" "emacs24_mac.png" |
| 604 | "emacs256_mac.png" "emacs32_mac.png" | 620 | "emacs256_mac.png" "emacs32_mac.png" |
| 605 | "emacs48_mac.png" "emacs512_mac.png" | 621 | "emacs48_mac.png" "emacs512_mac.png" |
| 622 | "ps-prin2.ps" "ps-prin3.ps" | ||
| 623 | "emacs.xbm" "gnu.xpm" "gnus-pointer.xbm" "gnus-pointer.xpm" | ||
| 624 | ;; Moved from etc/ to etc/images, and/or removed. | ||
| 625 | "gnus.pbm" "gnus.xbm" "gnus.xpm" "letter.pbm" "letter.xbm" "letter.xpm" | ||
| 626 | "splash.pbm" "splash.xbm" "splash.xpm" "splash8.xpm" | ||
| 627 | "images/execute.pbm" "images/execute.xpm" "images/fld-open.pbm" | ||
| 628 | "images/fld-open.xpm" "images/highlight.pbm" "images/highlight.xpm" | ||
| 629 | "images/mail.pbm" "images/mail.xpm" "images/mail/alias.pbm" | ||
| 630 | "images/mail/alias.xpm" "images/mail/refile.pbm" | ||
| 631 | "images/mail/refile.xpm" "images/page-down.pbm" | ||
| 632 | "images/page-down.xpm" "images/widen.pbm" "images/widen.xpm" | ||
| 633 | "images/gnus/bar.xbm" "images/gnus/bar.xpm" | ||
| 634 | "images/gnus/reverse-smile.xpm" | ||
| 606 | "revdiff" ; admin/ | 635 | "revdiff" ; admin/ |
| 607 | "vcdiff" "rcs-checkin" "tindex.pl" | 636 | "vcdiff" "rcs-checkin" "tindex.pl" |
| 608 | "mainmake" "sed1.inp" "sed2.inp" "sed3.inp" ; msdos/ | 637 | "mainmake" "sed1.inp" "sed2.inp" "sed3.inp" ; msdos/ |
| 609 | "mac-fix-env.m" | 638 | "mac-fix-env.m" |
| 610 | ;; Deleted vms stuff: | 639 | ;; Deleted vms stuff: |
| 611 | "temacs.opt" "descrip.mms" "compile.com" "link.com" | 640 | "temacs.opt" "descrip.mms" "compile.com" "link.com" |
| 641 | "compact.el" "fadr.el" | ||
| 642 | "calc/calc-maint.el" | ||
| 643 | "emacs-lisp/eieio-comp.el" | ||
| 644 | "erc-hecomplete.el" | ||
| 645 | "eshell/esh-maint.el" | ||
| 646 | "language/persian.el" | ||
| 647 | "meese.el" | ||
| 648 | "mh-exec.el" "mh-init.el" "mh-customize.el" | ||
| 649 | "net/zone-mode.el" "xesam.el" | ||
| 650 | "term/mac-win.el" "sup-mouse.el" | ||
| 651 | "url-https.el" | ||
| 652 | "org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el" | ||
| 653 | "org-mks.el" "org-remember.el" "org-xoxo.el" "org-docbook.el" | ||
| 654 | "org-freemind.el" "ox-jsinfo.el" | ||
| 655 | "org-exp-blocks.el" ; maybe this is ob-exp now? dunno | ||
| 656 | "org-lparse.el" | ||
| 657 | "org-special-blocks.el" "org-taskjuggler.el" | ||
| 658 | ;; gnus | ||
| 659 | "nnwfm.el" "nnlistserv.el" "nnkiboze.el" "nndb.el" "nnsoup.el" | ||
| 660 | "netrc.el" "password.el" "sasl-cram.el" "sasl-digest.el" "sasl-ntlm.el" | ||
| 661 | "sasl.el" "dig.el" "dns.el" "hex-util.el" "sha1.el" "md4.el" | ||
| 662 | "hmac-def.el" "hmac-md5.el" "ntlm.el" "hashcash.el" "smime-ldap.el" | ||
| 663 | "assistant.el" "gnus-utils.el" "tls.el" "pgg-def.el" "pgg-gpg.el" | ||
| 664 | "gnus-compat.el" "pgg-parse.el" "pgg-pgp.el" "pgg-pgp5.el" "pgg.el" | ||
| 665 | "dns-mode.el" "run-at-time.el" "gnus-encrypt.el" "sha1-el.el" | ||
| 666 | "gnus-gl.el" "gnus.sum.el" "proto-stream.el" "color.el" "color-lab.el" | ||
| 667 | "eww.el" "shr-color.el" "shr.el" "earcon.el" "gnus-audio.el" "encrypt.el" | ||
| 668 | ;; doc | ||
| 669 | "getopt.c" "texindex.c" "news.texi" "vc.texi" "vc2-xtra.texi" | ||
| 670 | "back.texi" "vol1.texi" "vol2.texi" "elisp-covers.texi" "two.el" | ||
| 671 | "front-cover-1.texi" "locals.texi" "calendar.texi" "info-stnd.texi" | ||
| 672 | "tasks.texi" | ||
| 673 | "advice.texi" "picture.texi" "texinfo.tex" | ||
| 674 | ;; lwlib: | ||
| 675 | "dispatch.c" "dispatch.h" "xrdb-cpp.c" "xrdb.c" | ||
| 676 | "lwlib-Xol.c" "lwlib-Xol.h" "lwlib-Xolmb.c" "lwlib-Xolmb.h" | ||
| 677 | "lwlib-XolmbP.h" | ||
| 678 | ;; lib/ | ||
| 679 | "lib/stdio.c" "lib/gl_openssl.h" "lib/sigprocmask.c" | ||
| 680 | "lib/pthread_sigprocmask.c" "lib/ldtoastr.c" "lib/dummy.c" | ||
| 681 | "lib/ignore-value.h" | ||
| 682 | ;; lib-src/ | ||
| 683 | "cvtmail.c" "digest-doc.c" "emacsserver.c" "emacstool.c" "env.c" | ||
| 684 | "etags-vmslib.c" "fakemail.c" "getdate.c" "getopt.h" "getopt1.c" | ||
| 685 | "getopt_.h" "getopt_int.h" "gettext.h" "leditcfns.c" "loadst.c" | ||
| 686 | "make-path.c" "qsort.c" "sorted-doc.c" "tcp.c" "timer.c" "wakeup.c" | ||
| 687 | "yow.c" | ||
| 688 | ;; etc/ | ||
| 689 | "emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c" | ||
| 690 | "tpu-doc.el" ; FIXME? renamed to something? | ||
| 612 | ) | 691 | ) |
| 613 | "File names which are valid, but no longer exist (or cannot be found) | 692 | "File names which are valid, but no longer exist (or cannot be found) |
| 614 | in the repository.") | 693 | in the repository.") |
| 615 | 694 | ||
| 695 | ;; Note that any directory part on the RHS is retained. | ||
| 696 | ;; Cf authors-renamed-files-regexps. | ||
| 697 | ;; NB So only add a directory if needed to disambiguate. | ||
| 698 | ;; FIXME? | ||
| 699 | ;; Although perhaps we could let authors-disambiguate-file-name do that? | ||
| 616 | (defconst authors-renamed-files-alist | 700 | (defconst authors-renamed-files-alist |
| 617 | '(("nt.c" . "w32.c") ("nt.h" . "w32.h") | 701 | '(("nt.c" . "w32.c") ("nt.h" . "w32.h") |
| 618 | ("ntheap.c" . "w32heap.c") ("ntheap.h" . "w32heap.h") | 702 | ("ntheap.c" . "w32heap.c") ("ntheap.h" . "w32heap.h") |
| @@ -622,15 +706,28 @@ in the repository.") | |||
| 622 | ("unexnt.c" . "unexw32.c") | 706 | ("unexnt.c" . "unexw32.c") |
| 623 | ("s/windowsnt.h" . "s/ms-w32.h") | 707 | ("s/windowsnt.h" . "s/ms-w32.h") |
| 624 | ("s/ms-w32.h" . "inc/ms-w32.h") | 708 | ("s/ms-w32.h" . "inc/ms-w32.h") |
| 709 | ("src/config.h" . "config.h") | ||
| 625 | ("winnt.el" . "w32-fns.el") | 710 | ("winnt.el" . "w32-fns.el") |
| 711 | ("linux.h" . "gnu-linux.h") | ||
| 626 | ("emacs.manifest" . "emacs-x86.manifest") | 712 | ("emacs.manifest" . "emacs-x86.manifest") |
| 627 | ("config.emacs" . "configure") | 713 | ("config.emacs" . "configure") |
| 628 | ("configure.in" . "configure.ac") | 714 | ("configure.in" . "configure.ac") |
| 629 | ("config.h.dist" . "config.in") | 715 | ("config.h.dist" . "config.in") |
| 630 | ("config.h-dist" . "config.in") | 716 | ("config.h-dist" . "config.in") |
| 631 | ("config.h.in" . "config.in") | 717 | ("config.h.in" . "config.in") |
| 632 | ("paths.h-dist" . "paths.h.in") | 718 | ("debug.bat" . "debug.bat.in") |
| 719 | ("emacs.bat" . "emacs.bat.in") | ||
| 720 | ;; paths.h.dist -> paths.h-dist -> paths.h.in -> paths.in -> epaths.in. | ||
| 721 | ("paths.h.dist" . "epaths.in") | ||
| 722 | ("paths.h-dist" . "epaths.in") | ||
| 723 | ("paths.h.in" . "epaths.in") | ||
| 724 | ("paths.in" . "epaths.in") | ||
| 633 | ("patch1" . "sed1.inp") | 725 | ("patch1" . "sed1.inp") |
| 726 | ("INSTALL.MSYS" . "INSTALL") | ||
| 727 | ("server.c" . "emacsserver.c") | ||
| 728 | ("lib-src/etags.c" . "etags.c") | ||
| 729 | ;; msdos/ | ||
| 730 | ("is-exec.c" . "is_exec.c") | ||
| 634 | ("enriched.doc" . "enriched.txt") | 731 | ("enriched.doc" . "enriched.txt") |
| 635 | ("GETTING.GNU.SOFTWARE" . "FTP") | 732 | ("GETTING.GNU.SOFTWARE" . "FTP") |
| 636 | ("etc/MACHINES" . "MACHINES") | 733 | ("etc/MACHINES" . "MACHINES") |
| @@ -649,38 +746,71 @@ in the repository.") | |||
| 649 | ("leim-Makefile.in" . "leim/Makefile.in") | 746 | ("leim-Makefile.in" . "leim/Makefile.in") |
| 650 | ("emacs-lisp/testcover-ses.el" . "tcover-ses.el") | 747 | ("emacs-lisp/testcover-ses.el" . "tcover-ses.el") |
| 651 | ("emacs-lisp/testcover-unsafep.el" . "tcover-unsafep.el") | 748 | ("emacs-lisp/testcover-unsafep.el" . "tcover-unsafep.el") |
| 749 | ("progmodes/dos.el" . "bat-mode.el") | ||
| 652 | ;; index and pick merged into search. | 750 | ;; index and pick merged into search. |
| 653 | ("mh-index.el" . "mh-search.el") | 751 | ("mh-index.el" . "mh-search.el") |
| 654 | ("mh-pick.el" . "mh-search.el") | 752 | ("mh-pick.el" . "mh-search.el") |
| 655 | ("font-setting.el" . "dynamic-setting.el") | 753 | ("font-setting.el" . "dynamic-setting.el") |
| 656 | ;; INSTALL-CVS -> .CVS -> .BZR | 754 | ("help-funs.el" . "help-fns.el") |
| 657 | ("INSTALL-CVS" . "INSTALL.BZR") | 755 | ("erc-notifications.el" . "erc-desktop-notifications.el") |
| 658 | ("INSTALL.CVS" . "INSTALL.BZR") | 756 | ("org-complete.el" . "org-pcomplete.el") |
| 757 | ("org-export.el" . "ox.el") ; ? | ||
| 758 | ;; Was definitely renamed to org-latex.el, then... ? | ||
| 759 | ("org-export-latex.el" . "ox-latex.el") ; ? | ||
| 760 | ("org-exp.el" . "ox.el") ; ? | ||
| 761 | ("progmodes/cfengine3.el" . "cfengine.el") | ||
| 762 | ;; Obsolete. | ||
| 763 | ("play/bruce.el" . "bruce.el") | ||
| 764 | ("patcomp.el" . "patcomp.el") | ||
| 765 | ;; From lisp to etc/forms. | ||
| 766 | ("forms-d2.el" . "forms-d2.el") | ||
| 767 | ("forms-pass.el" . "forms-pass.el") | ||
| 768 | ;; From lisp/ to etc/nxml. | ||
| 769 | ("nxml/test.invalid.xml" . "test-invalid.xml") | ||
| 770 | ("nxml/test.valid.xml" . "test-valid.xml") | ||
| 771 | ;; The one in lisp is eshell/eshell.el. | ||
| 772 | ("eshell.el" . "automated/eshell.el") | ||
| 773 | ("eshell/esh-test.el" . "automated/eshell.el") | ||
| 774 | ;; INSTALL-CVS -> .CVS -> .BZR -> .REPO | ||
| 775 | ("INSTALL-CVS" . "INSTALL.REPO") | ||
| 776 | ("INSTALL.CVS" . "INSTALL.REPO") | ||
| 659 | ("INSTALL.BZR" . "INSTALL.REPO") | 777 | ("INSTALL.BZR" . "INSTALL.REPO") |
| 660 | ("refcards/fr-drdref.pdf" . "refcards/fr-dired-ref.pdf") | 778 | ("gnus-logo.eps" . "gnus-logo.eps") ; moved to refcards/ |
| 661 | ("gnus-logo.eps" . "refcards/gnus-logo.eps") | ||
| 662 | ("build-install" . "build-ins.in") | 779 | ("build-install" . "build-ins.in") |
| 663 | ("build-install.in" . "build-ins.in") | 780 | ("build-install.in" . "build-ins.in") |
| 664 | ("unidata/Makefile" . "unidata/Makefile.in") | 781 | ("unidata/Makefile" . "unidata/Makefile.in") |
| 665 | ("move-if-change" . "build-aux/move-if-change") | 782 | ;; Moved from top to etc/ |
| 666 | ("update-subdirs" . "build-aux/update-subdirs") | 783 | ("CONTRIBUTE" . "CONTRIBUTE") |
| 784 | ("FTP" . "FTP") | ||
| 785 | ;; Moved from top to build-aux/ | ||
| 786 | ("move-if-change" . "move-if-change") | ||
| 787 | ("update-subdirs" . "update-subdirs") | ||
| 788 | ("emacs.tex" . "emacs.texi") | ||
| 789 | ("faq.texi" . "efaq.texi") | ||
| 790 | ("major.texi" . "modes.texi") | ||
| 791 | ;; And from emacs/ to misc/ and back again. | ||
| 792 | ("ns-emacs.texi" . "macos.texi") | ||
| 793 | ("overrides.texi" . "gnus-overrides.texi") | ||
| 794 | ("xresmini.texi" . "xresources.texi") | ||
| 667 | ;; Not renamed, but we only have the latter in the Emacs repo. | 795 | ;; Not renamed, but we only have the latter in the Emacs repo. |
| 668 | ("trampver.texi.in" . "trampver.texi") | 796 | ("trampver.texi.in" . "trampver.texi") |
| 669 | ("e/eterm" . "e/eterm-color") | 797 | ;; Renamed with same directory. |
| 670 | ("e/eterm.ti" . "e/eterm-color.ti") | 798 | ("e/eterm" . "eterm-color") |
| 799 | ("e/eterm.ti" . "eterm-color.ti") | ||
| 671 | ("README.txt" . "README") | 800 | ("README.txt" . "README") |
| 672 | ("emacs.names" . "JOKES") | 801 | ("emacs.names" . "JOKES") |
| 673 | ("ED.WORSHIP" . "JOKES") | 802 | ("ED.WORSHIP" . "JOKES") |
| 674 | ("GNU.JOKES" . "JOKES") | 803 | ("GNU.JOKES" . "JOKES") |
| 675 | ("CHARACTERS" . "TODO") | 804 | ("CHARACTERS" . "TODO") |
| 676 | ("schema/xhtml-basic-form.rnc" . "schema/xhtml-bform.rnc" ) | 805 | ("images/gnus/mail_send.xpm" . "mail-send.xpm") ; still in images/gnus |
| 677 | ("schema/xhtml-basic-table.rnc" . "schema/xhtml-btable.rnc") | 806 | ;; Renamed within same directory. |
| 678 | ("schema/xhtml-list.rnc" . "schema/xhtml-lst.rnc") | 807 | ("schema/xhtml-basic-form.rnc" . "xhtml-bform.rnc" ) |
| 679 | ("schema/xhtml-target.rnc" . "schema/xhtml-tgt.rnc") | 808 | ("schema/xhtml-basic-table.rnc" . "xhtml-btable.rnc") |
| 680 | ("schema/xhtml-style.rnc" . "schema/xhtml-xstyle.rnc") | 809 | ("schema/xhtml-list.rnc" . "xhtml-lst.rnc") |
| 681 | ("schema/docbook-dyntbl.rnc" . "schema/docbk-dyntbl.rnc") | 810 | ("schema/xhtml-target.rnc" . "xhtml-tgt.rnc") |
| 682 | ("schema/docbook-soextbl.rnc" . "schema/docbk-soextbl.rn" ) | 811 | ("schema/xhtml-style.rnc" . "xhtml-xstyle.rnc") |
| 683 | ("texi/url.txi" . "url.texi") | 812 | ("schema/docbook-dyntbl.rnc" . "docbk-dyntbl.rnc") |
| 813 | ("schema/docbook-soextbl.rnc" . "docbk-soextbl.rn" ) | ||
| 684 | ("edt-user.doc" . "edt.texi") | 814 | ("edt-user.doc" . "edt.texi") |
| 685 | ("DEV-NOTES" . "nextstep") | 815 | ("DEV-NOTES" . "nextstep") |
| 686 | ("org/COPYRIGHT-AND-LICENSE" . "org/README") | 816 | ("org/COPYRIGHT-AND-LICENSE" . "org/README") |
| @@ -696,61 +826,158 @@ in the repository.") | |||
| 696 | ("autogen/update_autogen" . "update_autogen") | 826 | ("autogen/update_autogen" . "update_autogen") |
| 697 | ;; Moved from etc/ to admin/. | 827 | ;; Moved from etc/ to admin/. |
| 698 | ("grammars" . "grammars") | 828 | ("grammars" . "grammars") |
| 829 | ;; From etc to lisp/cedet/semantic/. | ||
| 830 | ("grammars/bovine-grammar.el" . "bovine/grammar.el") | ||
| 831 | ("grammars/wisent-grammar.el" . "wisent/grammar.el") | ||
| 699 | ;; Moved from admin/nt/ to nt/. | 832 | ;; Moved from admin/nt/ to nt/. |
| 700 | ("nt/README.W32" . "README.W32") | 833 | ("nt/README.W32" . "README.W32") |
| 701 | ) | 834 | ) |
| 702 | "Alist of files which have been renamed during their lifetime. | 835 | "Alist of files which have been renamed during their lifetime. |
| 703 | Elements are (OLDNAME . NEWNAME).") | 836 | Elements are (OLDNAME . NEWNAME).") |
| 704 | 837 | ||
| 838 | ;; Should still test that the renamed file exists. Does it? | ||
| 839 | ;; But it might be relative to a different ChangeLog... | ||
| 840 | ;; | ||
| 841 | ;; Note that only the basename of the RHS is used. | ||
| 842 | ;; Cf authors-renamed-files-alist. | ||
| 705 | (defconst authors-renamed-files-regexps | 843 | (defconst authors-renamed-files-regexps |
| 706 | '(("^m/m-\\(.*\\.h\\)$" . "m/\\1") | 844 | '(("\\`\\(arg-nonnull\\|c\\+\\+defs\\|warn-on-use\\)\\.h\\'" |
| 707 | ("^m-\\(.*\\.h\\)$" . "\\1") | 845 | "build-aux/snippet/\\&") |
| 708 | ("^s/s-\\(.*\\.h\\)$" . "s/\\1") | 846 | ("\\`\\(ebuild\\|emacs\\|install\\|fast-install\\)\\.cmd\\'" "\\1.bat") |
| 709 | ("^s-\\(.*\\.h\\)$" . "\\1") | 847 | ("\\`\\(book-spine\\|cl\\|forms\\|functions\\|gnus\\|sc\\|texinfo\\|vip\\)\ |
| 710 | ("^s/[-.a-zA-Z0-9_]+\\.h$" . t) | 848 | \\.texinfo\\'" "\\1.texi") |
| 711 | ("\\(.*\\)\\.cmd$" . "\\1.bat") | 849 | ("\\`\\(\\(calc\\|org\\|vip\\)card\\|viperCard\\|\ |
| 712 | ("\\.bat$" . t) | 850 | \\(\\(cs\\|fr\\|sk\\)-\\)?dired-ref\\|\ |
| 713 | ("\\.[ch]$" . t) | 851 | \\(\\(cs\\|de\\|fr\\|gnus\\|pl\\|pt-br\\|ru\\|sk\\)-\\)?refcard\\|\ |
| 714 | ("\\.el$" . t) | 852 | \\(\\(cs\\|fr\\|sk\\)-\\)?survival\\)\\.tex\\'" "refcards/\\&") |
| 715 | ("\\.ps$" . t) | 853 | ("\\`refcard-\\(de\\|pl\\)\\.tex\\'" "refcards/\\1-refcard.tex") |
| 716 | ("\\.texi?$" . t) | 854 | ("\\`\\(refcards/\\)?fr-drdref\\.tex\\'" "refcards/fr-dired-ref.tex") |
| 717 | ("\\.texinfo$" . t) | 855 | ("^\\(TUTORIAL[^/]*\\)" "tutorials/\\1") |
| 718 | ("\\.xml?$" . t) | 856 | ("\\`themes/dev-\\(tsdh-\\(?:light\\|dark\\)-theme\\.el\\)\\'" |
| 719 | ("\\.x[pb]m$" . t) | 857 | "themes/\\1") |
| 720 | ("\\.[xp]bm$" . t) | 858 | ;; Moved from lisp/toolbar to etc/images. |
| 721 | ("^paths\\." . t) | 859 | ("\\`toolbar/\\(back\\|fwd\\|left\\|right\\|up\\)_arrow\ |
| 722 | ("^install\\." . t) | 860 | \\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/\\1-arrow\\2") |
| 723 | ("^\\(TUTORIAL[^/]*\\)" . "tutorials/\\1") | 861 | ("\\`toolbar/lc-\\(back\\|fwd\\|left\\|right\\|up\\)_arrow\ |
| 724 | ("^\\(tree-widget/\\(?:default\\|folder\\)/[-a-z]+\\.png\\)$" . | 862 | \\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/low-color/\\1-arrow\\2") |
| 863 | ("\\`toolbar/mail_\\(compose\\|send\\)\\(\\.[xp]bm\\)\\'" | ||
| 864 | "images/mail/\\1") | ||
| 865 | ("\\`toolbar/jump_to\\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/jump-to\\1") | ||
| 866 | ("\\`toolbar/lc-jump_to\\(\\.\\(?:pb\\|xp\\)m\\)\\'" | ||
| 867 | "images/low-color/jump-to\\1") | ||
| 868 | ("\\`toolbar/\\(attach\\|cancel\\|close\\|copy\\|cut\\|\ | ||
| 869 | diropen\\|exit\\|help\\|home\\|index\\|info\\|mail\\|new\\|open\\|\ | ||
| 870 | paste\\|preferences\\|print\\|save\\|saveas\\|search\\|search-replace\\|\ | ||
| 871 | spell\\|undo\\)\\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/\\1\\2") | ||
| 872 | ("\\`toolbar/gud-\\(break\\|cont\\|down\\|finish\\|print\\|pstar\\|\ | ||
| 873 | remove\\|run\\|until\\|up\\|watch\\)\\(\\.\\(?:pb\\|xp\\)m\\)\\'" | ||
| 874 | "images/gud/\\1\\2") | ||
| 875 | ("\\`\\(toolbar/gud-\\|images/gud/\\)n\\(i\\)?\\(\\.\\(?:pb\\|xp\\)m\\)\\'" | ||
| 876 | "images/gud/next\\2\\3") | ||
| 877 | ("\\`\\(toolbar/gud-\\|images/gud/\\)s\\(i\\)?\\(\\.\\(?:pb\\|xp\\)m\\)\\'" | ||
| 878 | "images/gud/step\\2\\3") | ||
| 879 | ("\\`toolbar/lc-\\([-a-z]+\\.xpm\\)\\'" "images/low-color/\\1") | ||
| 880 | ("^\\(tree-widget/\\(?:default\\|folder\\)/[-a-z]+\\.\\(png\\|xpm\\)\\)$" | ||
| 725 | "images/\\1") | 881 | "images/\\1") |
| 726 | ("^\\(images/icons/\\)mac\\(emacs\\)_\\([0-9]+\\)\\(\\.png\\)" . | 882 | ("^\\(images/icons/\\)mac\\(emacs\\)_\\([0-9]+\\)\\(\\.png\\)" |
| 727 | "\\1\\2\\3_mac\\4") | 883 | "\\1\\2\\3_mac\\4") |
| 728 | ("\\(images/icons/\\)emacs_\\([0-9][0-9]\\)\\.png" . | 884 | ("\\(images/icons/\\)emacs_\\([0-9][0-9]\\)\\.png" |
| 729 | "\\1hicolor/\\2x\\2/apps/emacs.png") | 885 | "\\1hicolor/\\2x\\2/apps/emacs.png") |
| 886 | ;; Moved from leim/ to lisp/leim/. | ||
| 887 | ("\\`quail/[-a-z0-9]+\\.el\\'" "leim/\\&") | ||
| 888 | ("\\`ja-dic/ja-dic\\.el\\'" "leim/\\&") | ||
| 889 | ("\\`vc-\\(rcs\\|cvs\\|sccs\\)-hooks\\.el\\'" "vc/vc-\\1.el") | ||
| 890 | ("\\`vc-\\(annotate\\|arch\\|bzr\\|cvs\\|dav\\|dir\\|dispatcher\\|\ | ||
| 891 | git\\|hg\\|hooks\\|mtn\\|rcs\\|sccs\\|svn\\)\\.el\\'" "vc/\\&") | ||
| 892 | ("\\`ediff-\\(diff\\|help\\|hook\\|init\\|merg\\|mult\\|ptch\\|util\\|\ | ||
| 893 | vers\\|wind\\)\\.el\\'" "vc/\\&") | ||
| 894 | ("\\`pcvs-\\(defs\\|info\\|parse\\|util\\)\\.el\\'" "vc/\\&") | ||
| 895 | ("\\`\\(add-log\\|compare-w\\|cvs-status\\|diff-mode\\|diff\\|\ | ||
| 896 | ediff\\|emerge\\|log-edit\\|log-view\\|pcvs\\|smerge-mode\\|vc\\)\\.el\\'" | ||
| 897 | "vc/\\&") | ||
| 898 | ("\\`\\(emacs-lisp/\\)?helpers\\.el\\'" "emacs-lisp/subr-x.el") | ||
| 899 | ;; I assume this is (essentially) what happened, org/ChangeLog is vague. | ||
| 900 | ("\\`org-\\(ascii\\|beamer\\|html\\|icalendar\\|jsinfo\\|latex\ | ||
| 901 | \\|odt\\|publish\\)\\.el\\'" "ox-\\1.el") | ||
| 902 | ;; From test/ to test/automated/. | ||
| 903 | ("comint-testsuite.el" "automated/\\&") | ||
| 904 | ("\\`\\(bytecomp\\|font-parse\\|icalendar\\|occur\\|newsticker\\)\ | ||
| 905 | -testsuite\\.el" "automated/\\1-tests.el") | ||
| 906 | ;; NB lax rules should come last. | ||
| 907 | ("^m/m-\\(.*\\.h\\)$" "m/\\1" t) | ||
| 908 | ("^m-\\(.*\\.h\\)$" "\\1" t) | ||
| 909 | ("^s/s-\\(.*\\.h\\)$" "s/\\1" t) | ||
| 910 | ("^s-\\(.*\\.h\\)$" "\\1" t) | ||
| 911 | ("\\.\\(el\\|[ch]\\|x[pb]m\\|pbm\\)\\'" t t) | ||
| 730 | ) | 912 | ) |
| 731 | "List regexps and rewriting rules for renamed files. | 913 | "List of regexps and rewriting rules for renamed files. |
| 732 | Elements are (REGEXP . REPLACE). If REPLACE is a string, the file | 914 | Elements are (REGEXP REPLACE [LAX]). If REPLACE is a string, the file |
| 733 | name matching REGEXP is replaced by REPLACE using `replace-string'. | 915 | name matching REGEXP is replaced by REPLACE using `replace-string'. |
| 734 | Otherwise, the file name is accepted as is.") | 916 | Otherwise, the file name is accepted as is. |
| 917 | Elements with LAX non-nil are only used in `authors-lax-changelogs'.") | ||
| 918 | |||
| 919 | ;; It's really not worth trying to make these old logs fully valid. | ||
| 920 | ;; All the obvious real errors are gone. | ||
| 921 | ;; The main issue is _lots_ of moving around of files. | ||
| 922 | ;; Eg the progmodes/ (etc) directories did not exist before 1997. | ||
| 923 | ;; Also, lib-src/ did not exist, the files were in etc/. | ||
| 924 | ;; And various other things. | ||
| 925 | ;; Maybe this should just be any ChangeLog with a . extension, | ||
| 926 | ;; assuming we always fix logs fully before rotating them? | ||
| 927 | (defconst authors-lax-changelogs | ||
| 928 | '("erc/ChangeLog\\.0[1-8]\\'" | ||
| 929 | "gnus/ChangeLog\\.[1-2]\\'" | ||
| 930 | "lisp/ChangeLog\\.\\([1-9]\\|1[0-5]\\)\\'" | ||
| 931 | "mh-e/ChangeLog\\.1\\'" | ||
| 932 | "src/ChangeLog\\.\\([1-9]\\|1[0-2]\\)\\'") | ||
| 933 | "List of regexps matching ChangeLogs that we do not print errors from. | ||
| 934 | These are older ChangeLogs that have various issues. | ||
| 935 | Additionally, for these logs we apply the `lax' elements of | ||
| 936 | `authors-renamed-files-regexps'.") | ||
| 937 | |||
| 735 | 938 | ||
| 736 | (defvar authors-checked-files-alist) | 939 | (defvar authors-checked-files-alist) |
| 737 | (defvar authors-invalid-file-names) | 940 | (defvar authors-invalid-file-names) |
| 738 | 941 | ||
| 942 | ;; This has become rather yucky. :( | ||
| 739 | (defun authors-disambiguate-file-name (fullname) | 943 | (defun authors-disambiguate-file-name (fullname) |
| 740 | "Convert FULLNAME to an unambiguous relative-name." | 944 | "Convert FULLNAME to an unambiguous relative-name." |
| 741 | (let ((relname (file-name-nondirectory fullname)) | 945 | (let ((relname (file-name-nondirectory fullname)) |
| 742 | parent) | 946 | dir parent) |
| 743 | (if (member relname authors-ambiguous-files) | 947 | (if (and (member relname authors-ambiguous-files) |
| 744 | ;; In case of ambiguity, just prepend the parent directory. | 948 | ;; Try to identify the top-level directory. |
| 745 | ;; FIXME obviously this is not a perfect solution. | 949 | ;; FIXME should really use ROOT from M-x authors. |
| 746 | (if (string-equal "lisp" | 950 | (not (and (file-directory-p |
| 747 | (setq parent (file-name-nondirectory | 951 | (expand-file-name |
| 748 | (directory-file-name | 952 | "lib-src" |
| 749 | (file-name-directory fullname))))) | 953 | (setq dir (file-name-directory fullname)))) |
| 954 | (file-directory-p (expand-file-name "etc" dir))))) | ||
| 955 | ;; I think it looks weird to see eg "lisp/simple.el". | ||
| 956 | ;; But for eg Makefile.in, we do want to say "lisp/Makefile.in". | ||
| 957 | (if (and (string-equal "lisp" | ||
| 958 | (setq parent (file-name-nondirectory | ||
| 959 | (directory-file-name dir)))) | ||
| 960 | ;; TODO better to simply have hard-coded list? | ||
| 961 | ;; Only really Makefile.in where this applies. | ||
| 962 | (not (file-exists-p | ||
| 963 | (expand-file-name (concat "../" relname) dir)))) | ||
| 750 | relname | 964 | relname |
| 751 | (format "%s/%s" parent relname)) | 965 | ;; In case of ambiguity, just prepend the parent directory. |
| 966 | ;; FIXME obviously this is not a perfect solution. | ||
| 967 | (format "%s/%s" (file-name-nondirectory (directory-file-name dir)) | ||
| 968 | relname)) | ||
| 752 | relname))) | 969 | relname))) |
| 753 | 970 | ||
| 971 | (defun authors-lax-changelog-p (file) | ||
| 972 | "Return non-nil if FILE matches `authors-lax-changelogs'." | ||
| 973 | (let ((list authors-lax-changelogs) | ||
| 974 | found) | ||
| 975 | (while list | ||
| 976 | (setq list (if (setq found (string-match-p (car list) file)) | ||
| 977 | nil | ||
| 978 | (cdr list)))) | ||
| 979 | found)) | ||
| 980 | |||
| 754 | (defun authors-canonical-file-name (file log-file pos author) | 981 | (defun authors-canonical-file-name (file log-file pos author) |
| 755 | "Return canonical file name for FILE found in LOG-FILE. | 982 | "Return canonical file name for FILE found in LOG-FILE. |
| 756 | Checks whether FILE is a valid (existing) file name, has been renamed, | 983 | Checks whether FILE is a valid (existing) file name, has been renamed, |
| @@ -762,35 +989,39 @@ to print a message if FILE is not found." | |||
| 762 | ;; same as that from top-level/ChangeLog. | 989 | ;; same as that from top-level/ChangeLog. |
| 763 | (let* ((fullname (expand-file-name file (file-name-directory log-file))) | 990 | (let* ((fullname (expand-file-name file (file-name-directory log-file))) |
| 764 | (entry (assoc fullname authors-checked-files-alist)) | 991 | (entry (assoc fullname authors-checked-files-alist)) |
| 765 | relname | 992 | laxlog relname valid) |
| 766 | valid) | ||
| 767 | (if entry | 993 | (if entry |
| 768 | (cdr entry) | 994 | (cdr entry) |
| 769 | (setq relname (file-name-nondirectory file)) | 995 | (setq relname (file-name-nondirectory file)) |
| 770 | (if (or (member relname authors-valid-file-names) | 996 | (if (or (member file authors-valid-file-names) |
| 997 | (member relname authors-valid-file-names) | ||
| 771 | (file-exists-p file) | 998 | (file-exists-p file) |
| 772 | (file-exists-p relname) | 999 | (file-exists-p relname) ; FIXME? appropriate? |
| 773 | (file-exists-p (concat "etc/" relname))) | 1000 | ) |
| 774 | (setq valid (authors-disambiguate-file-name fullname)) | 1001 | (setq valid (authors-disambiguate-file-name fullname)) |
| 775 | (setq valid (assoc file authors-renamed-files-alist)) | 1002 | (if (setq valid (assoc file authors-renamed-files-alist)) |
| 776 | (if valid | ||
| 777 | (setq valid (cdr valid)) | 1003 | (setq valid (cdr valid)) |
| 778 | (let ((rules authors-renamed-files-regexps)) | 1004 | (setq laxlog (authors-lax-changelog-p log-file)) |
| 1005 | (let ((rules authors-renamed-files-regexps) | ||
| 1006 | rule) | ||
| 779 | (while rules | 1007 | (while rules |
| 780 | (if (string-match (car (car rules)) file) | 1008 | (setq rule (car rules)) |
| 781 | (setq valid (if (stringp (cdr (car rules))) | 1009 | (if (and (or laxlog (not (nth 2 rule))) |
| 1010 | (string-match (car rule) file)) | ||
| 1011 | (setq valid (if (stringp (nth 1 rule)) | ||
| 782 | (file-name-nondirectory | 1012 | (file-name-nondirectory |
| 783 | (replace-match (cdr (car rules)) t nil file)) | 1013 | (replace-match (nth 1 rule) t nil file)) |
| 784 | relname) | 1014 | relname) |
| 785 | rules nil)) | 1015 | rules nil) |
| 786 | (setq rules (cdr rules)))))) | 1016 | (setq rules (cdr rules))))))) |
| 787 | (setq authors-checked-files-alist | 1017 | (setq authors-checked-files-alist |
| 788 | (cons (cons fullname valid) authors-checked-files-alist)) | 1018 | (cons (cons fullname valid) authors-checked-files-alist)) |
| 789 | (unless (or valid | 1019 | (unless (or valid |
| 790 | (member file authors-ignored-files) | 1020 | (member file authors-ignored-files) |
| 791 | (authors-obsolete-file-p file) | 1021 | (authors-obsolete-file-p file) |
| 792 | (string-match "[*]" file) | 1022 | (string-match "[*]" file) |
| 793 | (string-match "^[0-9.]+$" file)) | 1023 | (string-match "^[0-9.]+$" file) |
| 1024 | laxlog) | ||
| 794 | (setq authors-invalid-file-names | 1025 | (setq authors-invalid-file-names |
| 795 | (cons (format "%s:%d: unrecognized `%s' for %s" | 1026 | (cons (format "%s:%d: unrecognized `%s' for %s" |
| 796 | log-file | 1027 | log-file |