Function: package-maintainers

package-maintainers is a byte-compiled function defined in package.el.gz.

Signature

(package-maintainers PKG-DESC &optional NO-ERROR)

Documentation

Return an email address for the maintainers of PKG-DESC.

The email address may contain commas, if there are multiple maintainers. If no maintainers are found, an error will be signaled. If the optional argument NO-ERROR is non-nil no error will be signaled in that case.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/package.el.gz
(defun package-maintainers (pkg-desc &optional no-error)
  "Return an email address for the maintainers of PKG-DESC.
The email address may contain commas, if there are multiple
maintainers.  If no maintainers are found, an error will be
signaled.  If the optional argument NO-ERROR is non-nil no error
will be signaled in that case."
  (unless (package-desc-p pkg-desc)
    (error "Invalid package description: %S" pkg-desc))
  (let* ((name (package-desc-name pkg-desc))
         (extras (package-desc-extras pkg-desc))
         (maint (alist-get :maintainer extras)))
    (unless (listp (cdr maint))
      (setq maint (list maint)))
    (cond
     ((and (null maint) (null no-error))
      (user-error "Package `%s' has no explicit maintainer" name))
     ((and (not (progn
                  (require 'ietf-drums)
                  (ietf-drums-parse-address (cdar maint))))
           (null no-error))
      (user-error "Package `%s' has no maintainer address" name))
     (t
      (with-temp-buffer
        (mapc #'package--print-email-button maint)
        (replace-regexp-in-string
         "\n" ", " (string-trim
                    (buffer-substring-no-properties
                     (point-min) (point-max)))))))))