comparison lisp/emacs-lisp/authors.el @ 86175:5b6b3d2be3dd

(authors-process-lines): Remove. (authors): Use process-lines rather than authors-process-lines.
author Glenn Morris <rgm@gnu.org>
date Sat, 17 Nov 2007 03:43:54 +0000
parents 07652ce8f3df
children 107ccd98fa12 53108e6cea98
comparison
equal deleted inserted replaced
86174:046133f8b789 86175:5b6b3d2be3dd
416 (if (setq slot (assoc action (cdr entry))) 416 (if (setq slot (assoc action (cdr entry)))
417 (setcdr slot (1+ (cdr slot))) 417 (setcdr slot (1+ (cdr slot)))
418 (nconc entry (list (cons action 1)))))))) 418 (nconc entry (list (cons action 1))))))))
419 419
420 420
421 (defun authors-process-lines (program &rest args)
422 "Execute PROGRAM with ARGS, returning its output as a list of lines.
423 Signal an error if the program returns with a non-zero exit status."
424 (with-temp-buffer
425 (let ((status (apply 'call-process program nil (current-buffer) nil args)))
426 (unless (eq status 0)
427 (error "%s exited with status %s" program status))
428 (goto-char (point-min))
429 (let (lines)
430 (while (not (eobp))
431 (setq lines (cons (buffer-substring-no-properties
432 (line-beginning-position)
433 (line-end-position))
434 lines))
435 (forward-line 1))
436 (nreverse lines)))))
437
438
439 (defun authors-canonical-author-name (author) 421 (defun authors-canonical-author-name (author)
440 "Return a canonicalized form of AUTHOR, an author name. 422 "Return a canonicalized form of AUTHOR, an author name.
441 If AUTHOR has an alias, use that. Remove email addresses. Capitalize 423 If AUTHOR has an alias, use that. Remove email addresses. Capitalize
442 words in the author's name." 424 words in the author's name."
443 (let* ((aliases authors-aliases) 425 (let* ((aliases authors-aliases)
603 interactively, ROOT is read from the minibuffer. 585 interactively, ROOT is read from the minibuffer.
604 Result is a buffer *Authors* containing authorship information, and a 586 Result is a buffer *Authors* containing authorship information, and a
605 buffer *Authors Errors* containing references to unknown files." 587 buffer *Authors Errors* containing references to unknown files."
606 (interactive "DEmacs source directory: ") 588 (interactive "DEmacs source directory: ")
607 (setq root (expand-file-name root)) 589 (setq root (expand-file-name root))
608 (let ((logs (authors-process-lines "find" root "-name" "ChangeLog*")) 590 (let ((logs (process-lines "find" root "-name" "ChangeLog*"))
609 (table (make-hash-table :test 'equal)) 591 (table (make-hash-table :test 'equal))
610 (buffer-name "*Authors*") 592 (buffer-name "*Authors*")
611 authors-checked-files-alist 593 authors-checked-files-alist
612 authors-invalid-file-names) 594 authors-invalid-file-names)
613 (authors-add-fixed-entries table) 595 (authors-add-fixed-entries table)
615 (error "Not the root directory of Emacs: %s" root)) 597 (error "Not the root directory of Emacs: %s" root))
616 (dolist (log logs) 598 (dolist (log logs)
617 (when (string-match "ChangeLog\\(.[0-9]+\\)?$" log) 599 (when (string-match "ChangeLog\\(.[0-9]+\\)?$" log)
618 (message "Scanning %s..." log) 600 (message "Scanning %s..." log)
619 (authors-scan-change-log log table))) 601 (authors-scan-change-log log table)))
620 (let ((els (authors-process-lines "find" root "-name" "*.el"))) 602 (let ((els (process-lines "find" root "-name" "*.el")))
621 (dolist (file els) 603 (dolist (file els)
622 (message "Scanning %s..." file) 604 (message "Scanning %s..." file)
623 (authors-scan-el file table))) 605 (authors-scan-el file table)))
624 (message "Generating buffer %s..." buffer-name) 606 (message "Generating buffer %s..." buffer-name)
625 (set-buffer (get-buffer-create buffer-name)) 607 (set-buffer (get-buffer-create buffer-name))