]> git.eshelyaron.com Git - emacs.git/commitdiff
Add new function lm-maintainers (bug#48592)
authorJonas Bernoulli <jonas@bernoul.li>
Mon, 3 May 2021 21:22:47 +0000 (23:22 +0200)
committerJonas Bernoulli <jonas@bernoul.li>
Wed, 30 Jun 2021 17:53:48 +0000 (19:53 +0200)
* doc/lispref/tips.texi (Library Headers): Improve wording.
* lisp/emacs-lisp/lisp-mnt.el (lm-maintainers): New function.
(lm-maintainer): Make obsolete in favor of lm-maintainer.
(lm-verify): Use lm-maintainers.
(lm-report-bug): Use lm-maintainers.

doc/lispref/tips.texi
lisp/emacs-lisp/lisp-mnt.el

index 36c68ee5ced115a50725dfb6470c65995aa28507..54cafffab38087a8fec6597123fcb52ded9769cf 100644 (file)
@@ -1034,7 +1034,7 @@ the conventional possibilities for @var{header-name}:
 
 @table @samp
 @item Author
-This line states the name and email address of at least the principal
+This header states the name and email address of at least the principal
 author of the library.  If there are multiple authors, list them on
 continuation lines led by @code{;;} and a tab or at least two spaces.
 We recommend including a contact email address, of the form
@@ -1053,8 +1053,8 @@ This header has the same format as the Author header.  It lists the
 person(s) who currently maintain(s) the file (respond to bug reports,
 etc.).
 
-If there is no maintainer line, the person(s) in the Author field
-is/are presumed to be the maintainers.  Some files in Emacs use
+If there is no Maintainer header, the person(s) in the Author header
+is/are presumed to be the maintainer(s).  Some files in Emacs use
 @samp{emacs-devel@@gnu.org} for the maintainer, which means the author is
 no longer responsible for the file, and that it is maintained as part
 of Emacs.
index 11a044008776419188282c4815f7875e461bbcd9..83da495edf002b3aacdbc2c422268c930ccb84af 100644 (file)
@@ -378,14 +378,22 @@ the cdr is an email address."
     (let ((authorlist (lm-header-multiline "author")))
       (mapcar #'lm-crack-address authorlist))))
 
+(defun lm-maintainers (&optional file)
+  "Return the maintainer list of file FILE, or current buffer if FILE is nil.
+If the maintainers are unspecified, then return the authors.
+Each element of the list is a cons; the car is the full name,
+the cdr is an email address."
+  (lm-with-file file
+    (mapcar #'lm-crack-address
+            (or (lm-header-multiline "maintainer")
+                (lm-header-multiline "author")))))
+
 (defun lm-maintainer (&optional file)
   "Return the maintainer of file FILE, or current buffer if FILE is nil.
+If the maintainer is unspecified, then return the author.
 The return value has the form (NAME . ADDRESS)."
-  (lm-with-file file
-    (let ((maint (lm-header "maintainer")))
-      (if maint
-         (lm-crack-address maint)
-       (car (lm-authors))))))
+  (declare (obsolete lm-maintainers "28.1"))
+  (car (lm-maintainers file)))
 
 (defun lm-creation-date (&optional file)
   "Return the created date given in file FILE, or current buffer if FILE is nil."
@@ -545,7 +553,7 @@ copyright notice is allowed."
                "Can't find package name")
               ((not (lm-authors))
                "`Author:' tag missing")
-              ((not (lm-maintainer))
+              ((not (lm-maintainers))
                "`Maintainer:' tag missing")
               ((not (lm-summary))
                "Can't find the one-line summary description")
@@ -613,7 +621,7 @@ Prompts for bug subject TOPIC.  Leaves you in a mail buffer."
   (interactive "sBug Subject: ")
   (require 'emacsbug)
   (let ((package (lm-get-package-name))
-       (addr (lm-maintainer))
+       (addr (car (lm-maintainers)))
        (version (lm-version)))
     (compose-mail (if addr
                      (concat (car addr) " <" (cdr addr) ">")