aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog13
-rw-r--r--lisp/emacs-lisp/authors.el277
2 files changed, 189 insertions, 101 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index f4531d8044f..35463adb7b5 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,16 @@
12009-01-11 Glenn Morris <rgm@gnu.org>
2
3 * emacs-lisp/authors.el (authors-aliases): Add, remove, and adjust
4 some entries.
5 (authors-fixed-case, authors-ignored-files, authors-valid-file-names):
6 (authors-renamed-files-alist): Add entries.
7 (authors-fixed-entries): Update for renamed and removed files.
8 (authors-canonical-file-name): Add entries to
9 authors-checked-files-alist based on their full names, expanded relative
10 to each log-file directory.
11 (authors-scan-el, authors-add-to-author-list, authors):
12 Handle multiple authors in a file, via a new :cowrote category.
13
12009-01-10 Richard M Stallman <rms@gnu.org> 142009-01-10 Richard M Stallman <rms@gnu.org>
2 15
3 * mail/mail-utils.el (mail-quote-printable-region): New function. 16 * mail/mail-utils.el (mail-quote-printable-region): New function.
diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el
index 1734db9a99d..dd8c4bb90f8 100644
--- a/lisp/emacs-lisp/authors.el
+++ b/lisp/emacs-lisp/authors.el
@@ -1,7 +1,7 @@
1;;; authors.el --- utility for maintaining Emacs' AUTHORS file -*-coding: utf-8;-*- 1;;; authors.el --- utility for maintaining Emacs' AUTHORS file -*-coding: utf-8;-*-
2 2
3;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 3;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
4;; 2006, 2007, 2008, 2009 Free Software Foundation, Inc. 4;; 2009 Free Software Foundation, Inc.
5 5
6;; Author: Gerd Moellmann <gerd@gnu.org> 6;; Author: Gerd Moellmann <gerd@gnu.org>
7;; Maintainer: Kim F. Storm <storm@cua.dk> 7;; Maintainer: Kim F. Storm <storm@cua.dk>
@@ -52,7 +52,7 @@ files.")
52 "<Daniel.Pfeiffer@Informatik.START.dbp.de>") 52 "<Daniel.Pfeiffer@Informatik.START.dbp.de>")
53 ("David Gillespie" "Dave Gillespie") 53 ("David Gillespie" "Dave Gillespie")
54 ("David Kågedal" "David K..edal") 54 ("David Kågedal" "David K..edal")
55 ("David M. Koppelman" "David M. Koppelman, Koppel@Ee.Lsu.Edu" 55 ("David M. Koppelman" "David M. Koppelman, Koppel@Ec?e.Lsu.Edu"
56 "David Koppelman") 56 "David Koppelman")
57 ("David M. Smith" "David Smith" "David M Smith") 57 ("David M. Smith" "David Smith" "David M Smith")
58 ("Deepak Goel" "D. Goel") 58 ("Deepak Goel" "D. Goel")
@@ -126,9 +126,12 @@ files.")
126 ("Sacha Chua" "Sandra Jean Chua") 126 ("Sacha Chua" "Sandra Jean Chua")
127 ("Sam Steingold" "Sam Shteingold") 127 ("Sam Steingold" "Sam Shteingold")
128 ("Satyaki Das" "Indexed search by Satyaki Das") 128 ("Satyaki Das" "Indexed search by Satyaki Das")
129 ("Stefan Monnier" "Stefan") 129 ;; There are other Stefans.
130;;; ("Stefan Monnier" "Stefan")
130 ("Stephen A. Wood" "(saw@cebaf.gov)") 131 ("Stephen A. Wood" "(saw@cebaf.gov)")
131 ("Steven L. Baur" "SL Baur" "Steven L Baur") 132 ("Steven L. Baur" "SL Baur" "Steven L Baur")
133 ("Stewart M. Clamen" "Stewart Clamen")
134 ("Taichi Kawabata" "KAWABATA,? Taichi")
132 ("Takaaki Ota" "Tak Ota") 135 ("Takaaki Ota" "Tak Ota")
133 ("Takahashi Naoto" "Naoto Takahashi") 136 ("Takahashi Naoto" "Naoto Takahashi")
134 ("Teodor Zlatanov" "Ted Zlatanov") 137 ("Teodor Zlatanov" "Ted Zlatanov")
@@ -149,6 +152,7 @@ If REALNAME is nil, ignore that author.")
149(defconst authors-fixed-case 152(defconst authors-fixed-case
150 '("Bryan O'Sullivan" 153 '("Bryan O'Sullivan"
151 "Christian von Roques" 154 "Christian von Roques"
155 "Christophe de Dinechin"
152 "Craig McDaniel" 156 "Craig McDaniel"
153 "David J. MacKenzie" 157 "David J. MacKenzie"
154 "David McCabe" 158 "David McCabe"
@@ -212,7 +216,7 @@ listed.")
212 "nxml/char-name/unicode" 216 "nxml/char-name/unicode"
213 ;; Never had any meaningful changes logged, now deleted: 217 ;; Never had any meaningful changes logged, now deleted:
214 "split-man" "Xkeymap.txt" "ms-7bkermit" "ulimit.hack" 218 "split-man" "Xkeymap.txt" "ms-7bkermit" "ulimit.hack"
215 "gnu-hp300" "refcard.bit" "ledit.l" "forms.README" 219 "gnu-hp300" "refcard.bit" "ledit.l" "forms.README" "forms-d2.dat"
216 "CXTERM-DIC/PY.tit" "CXTERM-DIC/ZIRANMA.tit" 220 "CXTERM-DIC/PY.tit" "CXTERM-DIC/ZIRANMA.tit"
217 "CXTERM-DIC/CTLau.tit" "CXTERM-DIC/CTLauB.tit" 221 "CXTERM-DIC/CTLau.tit" "CXTERM-DIC/CTLauB.tit"
218 "NICKLES.WORTH" "INTERVAL.IDEAS" "RCP" 222 "NICKLES.WORTH" "INTERVAL.IDEAS" "RCP"
@@ -256,102 +260,142 @@ Changes to files in this list are not listed.")
256 ("Blitz Product Development Corporation" :wrote "ispell.el") 260 ("Blitz Product Development Corporation" :wrote "ispell.el")
257 ("Frank Bresz" :wrote "diff.el") 261 ("Frank Bresz" :wrote "diff.el")
258 ("David M. Brown" :wrote "array.el") 262 ("David M. Brown" :wrote "array.el")
259 ("Gary Byers" :changed "xenix.h") 263 ;; No longer distributed.
264;;; ("Gary Byers" :changed "xenix.h")
260 ("Shawn M. Carey" :wrote "freebsd.h") 265 ("Shawn M. Carey" :wrote "freebsd.h")
261 ("Eric Decker" :changed "hp9000s800.h" "hpux.h" "sysdep.c") 266 ;; hp800.h renamed from hp9000s800.h, hpux.h merged into hpux10-20.h.
262 ("Lawrence R. Dodd" :wrote "dired-x.el") 267 ("Eric Decker" :changed "hp800.h" "hpux10-20.h" "sysdep.c")
263 ("Viktor Dukhovni" :wrote "unexsunos4.c") 268 ("Lawrence R. Dodd" :cowrote "dired-x.el")
269 ;; No longer distributed.
270;;; ("Viktor Dukhovni" :wrote "unexsunos4.c")
264 ("Paul Eggert" :wrote "rcs2log" "vcdiff") 271 ("Paul Eggert" :wrote "rcs2log" "vcdiff")
265 ("Fred Fish" :changed "unexec.c") 272 ("Fred Fish" :changed "unexec.c")
266 ("Tim Fleehart" :wrote "makefile.nt") 273 ;; No longer distributed.
274;;; ("Tim Fleehart" :wrote "makefile.nt")
267 ("Keith Gabryelski" :wrote "hexl.c") 275 ("Keith Gabryelski" :wrote "hexl.c")
268 ("Kevin Gallagher" :wrote "flow-ctrl.el") 276 ("Kevin Gallagher" :wrote "flow-ctrl.el")
269 ("Howard Gayle" :wrote "disp-table.el" "iso-syntax.el" "casetab.c") 277 ;; Also wrote an earlier version of disp-table.el, since replaced
270 ("Stephen Gildea" :wrote "refcard.tex" "mh-funcs.el" "mh-pick.el") 278 ;; by Erik Naggum's version; also iso-syntax.el, later renamed to
271 ("David Gillespie" :wrote "cl.texinfo") 279 ;; latin-1.el, since deleted.
272 ("Hewlett-Packard" :changed "emacsclient.c" "emacsserver.c" 280 ("Howard Gayle" :wrote "casetab.c")
273 "server.el" "keyboard.c") 281 ;; :wrote mh-pick.el, since merged into mh-search.el.
274 ("Thomas Horsley" :wrote "cxux.h" "cxux7.h") 282 ;; FIXME current mh-funcs.el says it was written by Bill Wohler.
283 ("Stephen Gildea" :wrote "refcard.tex" "mh-funcs.el"
284 :cowrote "mh-search.el")
285 ;; cl.texinfo renamed to cl.texi.
286 ("David Gillespie" :wrote "cl.texi")
287 ;; No longer distributed: emacsserver.c.
288 ("Hewlett-Packard" :changed "emacsclient.c" "server.el" "keyboard.c")
289 ;; No longer distributed.
290;;; ("Thomas Horsley" :wrote "cxux.h" "cxux7.h")
275 ("Indiana University Foundation" :changed "buffer.c" "buffer.h" 291 ("Indiana University Foundation" :changed "buffer.c" "buffer.h"
276 "indent.c" "search.c" "xdisp.c" "region-cache.c" "region-cache.h") 292 "indent.c" "search.c" "xdisp.c" "region-cache.c" "region-cache.h")
293 ;; ibmrt.h, ibmrt-aix.h no longer distributed.
277 ("International Business Machines" :changed "emacs.c" "fileio.c" 294 ("International Business Machines" :changed "emacs.c" "fileio.c"
278 "ibmrt.h" "process.c" "sysdep.c" "unexec.c" "ibmrt-aix.h") 295 "process.c" "sysdep.c" "unexec.c")
279 ("Ishikawa Chiaki" :changed "aviion.h" "dgux.h") 296 ;; No longer distributed.
297;;; ("Ishikawa Chiaki" :changed "aviion.h" "dgux.h")
298 ;; ymakefile no longer distributed.
280 ("Michael K. Johnson" :changed "configure.in" "emacs.c" "intel386.h" 299 ("Michael K. Johnson" :changed "configure.in" "emacs.c" "intel386.h"
281 "mem-limits.h" "process.c" "template.h" "sysdep.c" "syssignal.h" "systty.h" "unexec.c" 300 "mem-limits.h" "process.c" "template.h" "sysdep.c" "syssignal.h"
282 "ymakefile" "linux.h") 301 "systty.h" "unexec.c" "linux.h")
283 ("Kyle Jones" :wrote "mldrag.el") 302 ;; No longer distributed.
303;;; ("Kyle Jones" :wrote "mldrag.el")
284 ("Henry Kautz" :wrote "bib-mode.el") 304 ("Henry Kautz" :wrote "bib-mode.el")
285 ("Joseph M. Kelsey" :changed "fileio.c" "vms-pwd.h" "vmsfns.c" "dir.h" 305 ;; No longer distributed: vms-pwd.h, vmsfns.c, uaf.h.
286 "uaf.h") 306 ("Joseph M. Kelsey" :changed "fileio.c" "dir.h")
287 ("Sam Kendall" :changed "etags.c" "etags.el") 307 ("Sam Kendall" :changed "etags.c" "etags.el")
288 ("Richard King" :wrote "backquote.el" "userlock.el" "filelock.c") 308 ;; ack.texi: "We're not using his backquote.el any more."
309 ("Richard King" :wrote "userlock.el" "filelock.c")
289 ("Larry Kolodney" :wrote "cvtmail.c") 310 ("Larry Kolodney" :wrote "cvtmail.c")
290 ("Sebastian Kremer" :changed "add-log.el") 311 ("Sebastian Kremer" :changed "add-log.el")
291 ("Mark Lambert" :changed "process.c" "process.h") 312 ("Mark Lambert" :changed "process.c" "process.h")
292 ("Aaron Larson" :changed "bibtex.el") 313 ("Aaron Larson" :changed "bibtex.el")
314 ;; FIXME current mh-e.el says author Bill Wohler.
293 ("James R. Larus" :wrote "mh-e.el") 315 ("James R. Larus" :wrote "mh-e.el")
294 ("Lars Lindberg" :changed "dabbrev.el" :wrote "imenu.el") 316 ("Lars Lindberg" :changed "dabbrev.el" :cowrote "imenu.el")
317 ;; No longer distributed: lselect.el.
295 ("Lucid, Inc." :changed "bytecode.c" "byte-opt.el" "byte-run.el" 318 ("Lucid, Inc." :changed "bytecode.c" "byte-opt.el" "byte-run.el"
296 "bytecomp.el" "delsel.el" "disass.el" "faces.el" "font-lock.el" 319 "bytecomp.el" "delsel.el" "disass.el" "faces.el" "font-lock.el"
297 "lmenu.el" "lselect.el" "mailabbrev.el" "select.el" "xfaces.c" 320 "lmenu.el" "mailabbrev.el" "select.el" "xfaces.c" "xselect.c")
298 "xselect.c") 321 ;; No longer distributed: emacsserver.c.
299 ("MCC" :changed "etags.c" "emacsclient.c" "emacsserver.c" "movemail.c" 322 ("MCC" :changed "etags.c" "emacsclient.c" "movemail.c"
300 "rmail.el" "rmailedit.el" "rmailkwd.el" 323 "rmail.el" "rmailedit.el" "rmailkwd.el"
301 "rmailmsc.el" "rmailout.el" "rmailsum.el" "scribe.el" 324 "rmailmsc.el" "rmailout.el" "rmailsum.el" "scribe.el"
325 ;; FIXME current xmenu.c says authors: Jon Arnold, Roman Budzianowski,
326 ;; Robert Krawitz, RMS.
302 "server.el" "lisp.h" "sysdep.c" "unexec.c" :wrote "xmenu.c") 327 "server.el" "lisp.h" "sysdep.c" "unexec.c" :wrote "xmenu.c")
303 ("Niall Mansfield" :changed "etags.c") 328 ("Niall Mansfield" :changed "etags.c")
304 ("Brian Marick" :wrote "hideif.el") 329 ("Brian Marick" :cowrote "hideif.el")
305 ("Marko Kohtala" :changed "info.el") 330 ("Marko Kohtala" :changed "info.el")
306 ("Sidney Markowitz" :changed "doctor.el") 331 ("Sidney Markowitz" :changed "doctor.el")
307 ("Richard Mlynarik" :wrote "env.c" "ehelp.el") 332 ;; No longer distributed: env.c.
333 ("Richard Mlynarik" :wrote "ehelp.el")
308 ("Mosur Mohan" :changed "etags.c") 334 ("Mosur Mohan" :changed "etags.c")
309 ("Jeff Morgenthaler" :changed "flow-ctrl.el" "vt200.el" "vt201.el" 335 ("Jeff Morgenthaler" :changed "flow-ctrl.el" "vt200.el" "vt201.el"
310 "vt220.el" "vt240.el") 336 "vt220.el" "vt240.el")
311 ("Motorola" :changed "buff-menu.el") 337 ("Motorola" :changed "buff-menu.el")
312 ("Hiroshi Nakano" :changed "ralloc.c") 338 ("Hiroshi Nakano" :changed "ralloc.c")
313 ("Sundar Narasimhan" :changed "rnewspost.el") 339 ("Sundar Narasimhan" :changed "rnewspost.el")
314 ("NeXT, Inc." :wrote "unexnext.c") 340 ;; No longer distributed.
341;;; ("NeXT, Inc." :wrote "unexnext.c")
315 ("Mark Neale" :changed "fortran.el") 342 ("Mark Neale" :changed "fortran.el")
316 ("Martin Neitzel" :changed "sc.el") 343 ;; Renamed from sc.el.
317 ("Andrew Oram" :changed "miscellaneous changes to files in man/" 344 ("Martin Neitzel" :changed "supercite.el")
318 "man/calendar.texi") 345 ("Andrew Oram" :changed "calendar.texi (and other files in man/)")
319 ("Frederic Pierresteguy" :wrote "widget.c") 346 ("Frederic Pierresteguy" :wrote "widget.c")
320 ("Michael D. Prange" :changed "tex-mode.el") 347 ("Michael D. Prange" :changed "tex-mode.el")
321 ("Paul Reilly" :wrote "gux5-4r2.h" "dgux5-4r3.h") 348 ;; No longer distributed (dgux5-4r3.h was renamed to dgux5-4-3.h).
322 ("Roland B. Roberts" :changed "files.el" "sort.el" "vmsproc.el" 349;;; ("Paul Reilly" :wrote "gux5-4r2.h" "dgux5-4-3.h")
323 "buffer.h" "callproc.c" "dired.c" "process.c" "sysdep.c" "systty.h" 350 ("Roland B. Roberts" :changed "files.el" "sort.el"
324 "vmspaths.h" "build.com" "compile.com" "kepteditor.com" "precomp.com" 351 "buffer.h" "callproc.c" "dired.c" "process.c" "sysdep.c" "systty.h")
325 :wrote "logout.com" "mailemacs.com") 352 ;; No longer distributed.
353;;; "vmspaths.h" "build.com" "compile.com" "kepteditor.com" "precomp.com"
354;;; "vmsproc.el" :wrote "logout.com" "mailemacs.com")
326 ("Guillermo J. Rozas" :wrote "fakemail.c") 355 ("Guillermo J. Rozas" :wrote "fakemail.c")
327 ("Wolfgang Rupprecht" :changed "lisp-mode.el" "loadup.el" 356 ("Wolfgang Rupprecht" :changed "lisp-mode.el" "loadup.el"
328 "sort.el" "alloc.c" "callint.c" 357 "sort.el" "alloc.c" "callint.c"
329 "config.h.in" "crt0.c" "data.c" "fns.c" 358 ;; config.in renamed from config.h.in; ecrt0.c from crt0.c.
330 "lisp.h" "lread.c" "sun3.h" 359 "config.in" "ecrt0.c" "data.c" "fns.c"
331 "print.c" "ymakefile" :wrote "float-sup.el" "floatfns.c") 360 "lisp.h" "lread.c" ; "sun3.h" "ymakefile" - no longer distributed
361 "print.c" :wrote "float-sup.el" "floatfns.c")
332 ("Schlumberger Technology Corporation" :changed "gud.el") 362 ("Schlumberger Technology Corporation" :changed "gud.el")
333 ("Gregor Schmid" :wrote "tcl-mode.el") 363 ;; Replaced by tcl.el.
364;;; ("Gregor Schmid" :wrote "tcl-mode.el")
334 ("Rainer Schoepf" :wrote "alpha.h" "unexalpha.c") 365 ("Rainer Schoepf" :wrote "alpha.h" "unexalpha.c")
335 ("William Sommerfeld" :wrote "emacsclient.c" "emacsserver.c" "scribe.el") 366 ;; No longer distributed: emacsserver.c.
336 ("Leigh Stoller" :changed "emacsclient.c" "emacsserver.c" "server.el") 367 ("William Sommerfeld" :wrote "emacsclient.c" "scribe.el")
368 ;; No longer distributed: emacsserver.c.
369 ("Leigh Stoller" :changed "emacsclient.c" "server.el")
337 ("Steve Strassman" :wrote "spook.el") 370 ("Steve Strassman" :wrote "spook.el")
338 ("Shinichirou Sugou" :changed "etags.c") 371 ("Shinichirou Sugou" :changed "etags.c")
339 ("Sun Microsystems, Inc" :changed "emacsclient.c" "emacsserver.c" 372 ;; No longer distributed: emacsserver.c.
340 "server.el" :wrote "emacs.icon" "emacstool.1" "emacstool.c" "sun-curs.el" 373 ("Sun Microsystems, Inc" :changed "emacsclient.c" "server.el"
341 "sun-fns.el" "sun-mouse.el" "sun.el" "sunfns.c") 374 :wrote "emacs.icon" "sun.el")
342 ("Kayvan Sylvan" :changed "sc.el") 375 ;; No longer distributed.
343 ("Spencer Thomas" :changed "emacsclient.c" "emacsserver.c" "server.el" 376;;; "emacstool.1" "emacstool.c" "sun-curs.el"
344 "dabbrev.el" "unexec.c" "tcp.c" "gnus.texi") 377;;; "sun-fns.el" "sun-mouse.el" "sunfns.c")
378 ;; Renamed from sc.el.
379 ("Kayvan Sylvan" :changed "supercite.el")
380 ;; No longer distributed: emacsserver.c, tcp.c.
381 ("Spencer Thomas" :changed "emacsclient.c" "server.el"
382 "dabbrev.el" "unexec.c" "gnus.texi")
345 ("Jonathan Vail" :changed "vc.el") 383 ("Jonathan Vail" :changed "vc.el")
346 ("James Van Artsdalen" :changed "usg5-4.h" "unexec.c") 384 ("James Van Artsdalen" :changed "usg5-4.h" "unexec.c")
347 ("Geoff Voelker" :wrote "src/makefile.nt" "lisp/makefile.nt" "winnt.el" 385 ;; No longer distributed: src/makefile.nt, lisp/makefile.nt
348 "nt.c" "nt.h" "ntheap.c" "ntheap.h" "ntinevt.c" 386 ;; winnt.el renamed to w32-fns.el; nt.[ch] to w32.[ch];
349 "ntproc.c" "ntterm.c" "windowsnt.h") 387 ;; ntheap.[ch] to w32heap.[ch]; ntinevt.c to w32inevt.c;
388 ;; ntproc.c to w32proc.c; ntterm.c to w32term.c;
389 ;; windowsnt.h to ms-w32.h.
390 ("Geoff Voelker" :wrote "w32-fns.el" "w32.c" "w32.h" "w32heap.c"
391 "w32heap.h" "w32inevt.c" "w32proc.c" "w32term.c" "ms-w32.h")
350 ("Morten Welinder" :wrote "dosfns.c" "[many MS-DOS files]" "msdos.h") 392 ("Morten Welinder" :wrote "dosfns.c" "[many MS-DOS files]" "msdos.h")
351 ("Pace Willisson" :wrote "ispell.el") 393 ;; Not using this version any more.
394;;; ("Pace Willisson" :wrote "ispell.el")
352 ("Garrett Wollman" :changed "sendmail.el") 395 ("Garrett Wollman" :changed "sendmail.el")
353 ("Dale R. Worley" :changed "mail-extr.el") 396 ("Dale R. Worley" :changed "mail-extr.el")
354 ("Jamie Zawinski" :changed "bytecode.c" :wrote "disass.el" "tar-mode.el")) 397 ("Jamie Zawinski" :changed "bytecode.c" :wrote "tar-mode.el"
398 :cowrote "disass.el"))
355 "Actions taken from the original, manually (un)maintained AUTHORS file.") 399 "Actions taken from the original, manually (un)maintained AUTHORS file.")
356 400
357 401
@@ -374,6 +418,7 @@ Changes to files in this list are not listed.")
374 "getdate.y" 418 "getdate.y"
375 "ymakefile" 419 "ymakefile"
376 "permute-index" "index.perm" 420 "permute-index" "index.perm"
421 "emacs.ico"
377 "emacs21.ico" 422 "emacs21.ico"
378 "LPF" "LEDIT" "OTHER.EMACSES" 423 "LPF" "LEDIT" "OTHER.EMACSES"
379 "emacs16_mac.png" "emacs24_mac.png" 424 "emacs16_mac.png" "emacs24_mac.png"
@@ -393,9 +438,11 @@ found) in the repository.")
393 ("w32console.c" . "w32term.c") 438 ("w32console.c" . "w32term.c")
394 ("unexnt.c" . "unexw32.c") 439 ("unexnt.c" . "unexw32.c")
395 ("s/windowsnt.h" . "s/ms-w32.h") 440 ("s/windowsnt.h" . "s/ms-w32.h")
441 ("winnt.el" . "w32-fns.el")
396 ("config.emacs" . "configure") 442 ("config.emacs" . "configure")
397 ("config.h.dist" . "config.h.in") 443 ("config.h.dist" . "config.in")
398 ("config.h-dist" . "config.h.in") 444 ("config.h-dist" . "config.in")
445 ("config.h.in" . "config.in")
399 ("paths.h-dist" . "paths.h.in") 446 ("paths.h-dist" . "paths.h.in")
400 ("patch1" . "sed1.inp") 447 ("patch1" . "sed1.inp")
401 ("GETTING.GNU.SOFTWARE" . "FTP") 448 ("GETTING.GNU.SOFTWARE" . "FTP")
@@ -487,15 +534,13 @@ Otherwise, the file name is accepted as is.")
487Checks whether FILE is a valid (existing) file name, has been renamed, 534Checks whether FILE is a valid (existing) file name, has been renamed,
488or is on the list of removed files. Returns the non-diretory part of 535or is on the list of removed files. Returns the non-diretory part of
489the file name." 536the file name."
490 (let ((entry (assoc file authors-checked-files-alist)) 537 ;; FILE should be re-checked in every different directory associated
491 relname 538 ;; with a LOG-FILE. Eg configure.in from src/ChangeLog is not the
492 valid) 539 ;; same as that from top-level/ChangeLog.
493 ;; FIXME this is bogus. FILE should be re-checked in every 540 (let* ((fullname (expand-file-name file (file-name-directory log-file)))
494 ;; different directory associated with LOG-FILE. 541 (entry (assoc fullname authors-checked-files-alist))
495 ;; Eg if src/ChangeLog refers to configure.in, and you happen to 542 relname
496 ;; scan src/ before top-level/, the configure.in entries in 543 valid)
497 ;; top-level/ get ignored, because this mistakenly thinks
498 ;; top-level/configure.in does not exist.
499 (if entry 544 (if entry
500 (cdr entry) 545 (cdr entry)
501 (setq relname (file-name-nondirectory file)) 546 (setq relname (file-name-nondirectory file))
@@ -517,7 +562,7 @@ the file name."
517 rules nil)) 562 rules nil))
518 (setq rules (cdr rules)))))) 563 (setq rules (cdr rules))))))
519 (setq authors-checked-files-alist 564 (setq authors-checked-files-alist
520 (cons (cons file valid) authors-checked-files-alist)) 565 (cons (cons fullname valid) authors-checked-files-alist))
521 (unless (or valid 566 (unless (or valid
522 (member file authors-ignored-files) 567 (member file authors-ignored-files)
523 (string-match "[*]" file) 568 (string-match "[*]" file)
@@ -625,6 +670,7 @@ with the file and the number of each action.
625 (while (re-search-forward "^[0-9]\\|^[ \t]+\\* " nil t) 670 (while (re-search-forward "^[0-9]\\|^[ \t]+\\* " nil t)
626 (beginning-of-line) 671 (beginning-of-line)
627 (setq pos (point)) 672 (setq pos (point))
673 ;; FIXME handle joint authorship.
628 (cond ((looking-at "^[0-9]+-[0-9]+-[0-9]+") 674 (cond ((looking-at "^[0-9]+-[0-9]+-[0-9]+")
629 (skip-chars-forward " \t+:0-9-") 675 (skip-chars-forward " \t+:0-9-")
630 (setq author (buffer-substring-no-properties 676 (setq author (buffer-substring-no-properties
@@ -657,27 +703,41 @@ with the file and the number of each action.
657(defun authors-scan-el (file table) 703(defun authors-scan-el (file table)
658 "Scan Lisp file FILE for author information. 704 "Scan Lisp file FILE for author information.
659TABLE is a hash table to add author information to." 705TABLE is a hash table to add author information to."
660 (let* ((existing-buffer (get-file-buffer file)) 706 (let ((existing-buffer (get-file-buffer file))
661 (enable-local-variables :safe) 707 (enable-local-variables :safe)
662 (enable-local-eval nil) 708 (enable-local-eval nil)
663 (buffer (find-file-noselect file))) 709 (buffer (find-file-noselect file)))
710 (setq file (file-name-nondirectory file))
664 (save-excursion 711 (save-excursion
665 (set-buffer buffer) 712 (set-buffer buffer)
666 (save-restriction 713 (save-restriction
667 (widen) 714 (widen)
668 (goto-char (point-min)) 715 (goto-char (point-min))
669 (while (and (re-search-forward 716 (while (and (re-search-forward
670 "^;+[ \t]*\\(Author\\|Commentary\\):[ \t]*" nil t) 717 "^;+[ \t]*\\(Authors?\\|Commentary\\|Code\\):[ \t]*" nil t)
671 (not (string= (match-string 1) "Commentary"))) 718 (not (member (match-string 1) '("Commentary" "Code"))))
672 ;; Some entries contain a year range in front of the 719 (let ((continue t)
673 ;; author's name. 720 (action :wrote)
674 (skip-chars-forward "-0-9 \t") 721 authors)
675 ;; FIXME handle multiline authors, comma-separated. 722 (while continue
676 (let ((author (buffer-substring-no-properties 723 ;; Some entries contain a year range in front of the
677 (point) (line-end-position)))) 724 ;; author's name.
678 (setq author (authors-canonical-author-name author)) 725 (skip-chars-forward "-0-9 \t")
679 (setq file (file-name-nondirectory file)) 726 (push (authors-canonical-author-name
680 (authors-add author file :wrote table))))) 727 (buffer-substring-no-properties
728 (point) (line-end-position))) authors)
729 ;; tips.texi says the continuation line should begin
730 ;; with a tab, but often spaces are used.
731 (setq continue
732 (and (zerop (forward-line 1))
733 (looking-at ";;;?\\(\t+ *\\| +\\)[[:alnum:]]")
734 (goto-char (1- (match-end 0)))
735 (not (looking-at "[[:upper:]][-[:alpha:]]+:[ \t]")))))
736 (and (> (length authors) 1)
737 (setq action :cowrote))
738 (mapc (lambda (author)
739 (authors-add author file action table))
740 authors)))))
681 (unless existing-buffer 741 (unless existing-buffer
682 (kill-buffer buffer)))) 742 (kill-buffer buffer))))
683 743
@@ -698,28 +758,33 @@ TABLE is a hash table to add author information to."
698 "Insert information about AUTHOR's work on Emacs into `authors-author-list'. 758 "Insert information about AUTHOR's work on Emacs into `authors-author-list'.
699CHANGES is an alist of entries (FILE (ACTION . COUNT) ...), as produced by 759CHANGES is an alist of entries (FILE (ACTION . COUNT) ...), as produced by
700`authors-scan-change-log'. 760`authors-scan-change-log'.
701The element added to `authors-author-list' is (AUTHOR WROTE CHANGED), where 761The element added to `authors-author-list' is (AUTHOR WROTE CO-WROTE CHANGED),
702WROTE and CHANGED are lists of the files written and changed by AUTHOR." 762where WROTE, CO-WROTE, and CHANGED are lists of the files written, co-written
763and changed by AUTHOR."
703 (when author 764 (when author
704 (let ((nchanged 0) 765 (let ((nchanged 0)
705 wrote-list 766 wrote-list
767 cowrote-list
706 changed-list) 768 changed-list)
707 (dolist (change changes) 769 (dolist (change changes)
708 (let ((actions (cdr change)) 770 (let* ((actions (cdr change))
709 (file (car change)) 771 (file (car change))
710 slot) 772 (filestat (if (authors-public-domain-p file)
711 (if (assq :wrote actions) 773 (concat file " (public domain)")
712 (setq wrote-list 774 file))
713 (cons 775 slot)
714 (if (authors-public-domain-p file) 776 (cond ((assq :wrote actions)
715 (concat file " (public domain)") 777 (setq wrote-list (cons filestat wrote-list)))
716 file) 778 ((assq :cowrote actions)
717 wrote-list)) 779 (setq cowrote-list (cons filestat cowrote-list)))
718 (setq changed-list 780 (t
719 (cons (cons file (cdr (assq :changed actions))) 781 (setq changed-list
720 changed-list))))) 782 (cons (cons file (cdr (assq :changed actions)))
783 changed-list))))))
721 (if wrote-list 784 (if wrote-list
722 (setq wrote-list (sort wrote-list 'string-lessp))) 785 (setq wrote-list (sort wrote-list 'string-lessp)))
786 (if cowrote-list
787 (setq cowrote-list (sort cowrote-list 'string-lessp)))
723 (when changed-list 788 (when changed-list
724 (setq changed-list (sort changed-list 789 (setq changed-list (sort changed-list
725 (lambda (a b) 790 (lambda (a b)
@@ -732,7 +797,7 @@ WROTE and CHANGED are lists of the files written and changed by AUTHOR."
732 (setcdr (nthcdr authors-many-files changed-list) 797 (setcdr (nthcdr authors-many-files changed-list)
733 (list (format "and %d other files" (- nchanged authors-many-files))))) 798 (list (format "and %d other files" (- nchanged authors-many-files)))))
734 (setq authors-author-list 799 (setq authors-author-list
735 (cons (list author wrote-list changed-list) 800 (cons (list author wrote-list cowrote-list changed-list)
736 authors-author-list))))) 801 authors-author-list)))))
737 802
738(defun authors (root) 803(defun authors (root)
@@ -778,7 +843,8 @@ list of their contributions.\n")
778 (dolist (a authors-author-list) 843 (dolist (a authors-author-list)
779 (let ((author (car a)) 844 (let ((author (car a))
780 (wrote (nth 1 a)) 845 (wrote (nth 1 a))
781 (changed (nth 2 a)) 846 (cowrote (nth 2 a))
847 (changed (nth 3 a))
782 file) 848 file)
783 (insert "\n" author ": ") 849 (insert "\n" author ": ")
784 (when wrote 850 (when wrote
@@ -788,9 +854,18 @@ list of their contributions.\n")
788 (insert "\n ")) 854 (insert "\n "))
789 (insert " " file)) 855 (insert " " file))
790 (insert "\n")) 856 (insert "\n"))
791 (when changed 857 (when cowrote
792 (if wrote 858 (if wrote
793 (insert "and ")) 859 (insert "and "))
860 (insert "co-wrote")
861 (dolist (file cowrote)
862 (if (> (+ (current-column) (length file)) 72)
863 (insert "\n "))
864 (insert " " file))
865 (insert "\n"))
866 (when changed
867 (if (or wrote cowrote)
868 (insert "and "))
794 (insert "changed") 869 (insert "changed")
795 (dolist (file changed) 870 (dolist (file changed)
796 (if (> (+ (current-column) (length file)) 72) 871 (if (> (+ (current-column) (length file)) 72)