emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 6aa1466 4/4: Make authors.el report names that were


From: Glenn Morris
Subject: [Emacs-diffs] master 6aa1466 4/4: Make authors.el report names that were ignored
Date: Mon, 5 Jun 2017 20:39:45 -0400 (EDT)

branch: master
commit 6aa1466713c9ded09b57a71592b0fd2c6e43e599
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Make authors.el report names that were ignored
    
    * admin/authors.el (authors-ignored-names): New.
    (authors-canonical-author-name): Add file and position arguments.
    Record ignored authors.
    (authors-scan-change-log, authors-scan-el):
    Pass file and position to authors-canonical-author-name.
    (authors): Also print authors that were ignored.
---
 admin/authors.el | 34 ++++++++++++++++++++++++----------
 1 file changed, 24 insertions(+), 10 deletions(-)

diff --git a/admin/authors.el b/admin/authors.el
index ac5da82..4dfd183 100644
--- a/admin/authors.el
+++ b/admin/authors.el
@@ -1077,6 +1077,7 @@ Additionally, for these logs we apply the `lax' elements 
of
 
 (defvar authors-checked-files-alist)
 (defvar authors-invalid-file-names)
+(defvar authors-ignored-names)
 
 ;; This has become rather yucky. :(
 (defun authors-disambiguate-file-name (fullname)
@@ -1219,7 +1220,7 @@ author and what he did in hash table TABLE.  See the 
description of
          (nconc entry (list (cons action 1))))))))
 
 
-(defun authors-canonical-author-name (author)
+(defun authors-canonical-author-name (author file pos)
   "Return a canonicalized form of AUTHOR, an author name.
 If AUTHOR has an entry in `authors-aliases', use that.  Remove
 email addresses.  Capitalize words in the author's name, unless
@@ -1243,6 +1244,9 @@ it is found in `authors-fixed-case'."
     (setq author (replace-regexp-in-string "[ \t]+" " " author))
     ;; NB this ignores the first name only case.
     (unless (string-match "[-, \t]" author)
+      (push (format-message "%s:%d: ignored `%s'"
+                           file (1+ (count-lines (point-min) pos)) author)
+           authors-ignored-names)
       (setq author ""))
     (or (car (member author authors-fixed-case))
        (capitalize author))))
@@ -1284,7 +1288,7 @@ with the file and the number of each action:
 Suggested\\|Trivial\\|Version\\|Originally\\|From:\\|Patch[ \t]+[Bb]y\\)")))
                   (push (authors-canonical-author-name
                          (buffer-substring-no-properties
-                          (point) (line-end-position))) authors)
+                          (point) (line-end-position)) log-file pos) authors)
                   (forward-line 1)))
                ((looking-at "^[ \t]+\\*")
                 (let ((line (buffer-substring-no-properties
@@ -1317,7 +1321,7 @@ TABLE is a hash table to add author information to."
         (enable-local-variables :safe) ; for find-file, hence let*
         (enable-local-eval nil)
         (buffer (find-file-noselect file)))
-    (setq file (authors-disambiguate-file-name (expand-file-name file)))
+    (setq file (expand-file-name file))
     (with-current-buffer buffer
       (save-restriction
        (widen)
@@ -1334,7 +1338,8 @@ TABLE is a hash table to add author information to."
              (skip-chars-forward "-0-9 \t")
              (push (authors-canonical-author-name
                     (buffer-substring-no-properties
-                     (point) (line-end-position))) authors)
+                     (point) (line-end-position))
+                    file (line-beginning-position)) authors)
              ;; tips.texi says the continuation line should begin
              ;; with a tab, but often spaces are used.
              (setq continue
@@ -1345,7 +1350,9 @@ TABLE is a hash table to add author information to."
            (and (> (length authors) 1)
                 (setq action :cowrote))
            (mapc (lambda (author)
-                   (authors-add author file action table))
+                   (authors-add
+                    author
+                    (authors-disambiguate-file-name file) action table))
                  authors)))))
     (unless existing-buffer
       (kill-buffer buffer))))
@@ -1436,7 +1443,8 @@ and a buffer *Authors Errors* containing references to 
unknown files."
        (table (make-hash-table :test 'equal))
        (buffer-name "*Authors*")
        authors-checked-files-alist
-       authors-invalid-file-names)
+       authors-invalid-file-names
+       authors-ignored-names)
     (authors-add-fixed-entries table)
     (dolist (log logs)
       (when (string-match "ChangeLog\\(.[0-9]+\\)?$" log)
@@ -1500,14 +1508,20 @@ list of their contributions.\n")
            (symbol-name authors-coding-system) "\nEnd:\n")
     (message "Generating buffer %s... done" buffer-name)
     (unless noninteractive
-      (when authors-invalid-file-names
+      (when (or authors-invalid-file-names authors-ignored-names)
        (with-current-buffer (get-buffer-create "*Authors Errors*")
          (setq buffer-read-only nil)
          (erase-buffer)
          (set-buffer-file-coding-system authors-coding-system)
-         (insert "Unrecognized file entries found:\n\n")
-         (mapc (lambda (f) (if (not (string-match "^[A-Za-z]+$" f)) (insert f 
"\n")))
-               (sort authors-invalid-file-names 'string-lessp))
+         (when authors-invalid-file-names
+           (insert "Unrecognized file entries found:\n\n")
+           (mapc (lambda (f) (if (not (string-match "^[A-Za-z]+$" f)) (insert 
f "\n")))
+                 (sort authors-invalid-file-names 'string-lessp)))
+         (when authors-ignored-names
+           (insert "\n\nThese authors were ignored:\n\n"
+                   (mapconcat
+                    'identity
+                    (sort authors-ignored-names 'string-lessp) "\n")))
          (goto-char (point-min))
          (compilation-mode)
          (message "Errors were found.  See buffer %s" (buffer-name))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]