Add new function lm-maintainers (bug#48592)

* 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.
This commit is contained in:
Jonas Bernoulli 2021-05-03 23:22:47 +02:00
parent 0e3668b233
commit 3cfc553202
2 changed files with 18 additions and 10 deletions

View 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.

View 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) ">")