emacs-diffs
[Top][All Lists]
Advanced

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

master 00aebdc182: * lisp/emacs-lisp/package.el (package-maintainers): I


From: Philip Kaludercic
Subject: master 00aebdc182: * lisp/emacs-lisp/package.el (package-maintainers): Improve error handling
Date: Sat, 19 Nov 2022 08:07:43 -0500 (EST)

branch: master
commit 00aebdc182015614e215885e72a06f6df03e57d2
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philipk@posteo.net>

    * lisp/emacs-lisp/package.el (package-maintainers): Improve error handling
---
 lisp/emacs-lisp/package.el | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 2f19573e3c..c1545a2870 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -4532,19 +4532,28 @@ DESC must be a `package-desc' object."
         (funcall browse-url-secondary-browser-function url)
       (browse-url url))))
 
+(declare-function ietf-drums-parse-address "ietf-drums"
+                  (string &optional decode))
+
 (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 pkg-desc
-    (error "Invalid package description"))
-  (let* ((extras (package-desc-extras pkg-desc))
+  (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)))
     (cond
      ((and (null maint) (null no-error))
-      (user-error "Package has no explicit maintainer"))
+      (user-error "Package `%s' has no explicit maintainer" name))
+     ((and (not (progn
+                  (require 'ietf-drums)
+                  (ietf-drums-parse-address maint)))
+           (null no-error))
+      (user-error "Package `%s' has no maintainer address" name))
      ((not (null maint))
       (with-temp-buffer
         (package--print-email-button maint)



reply via email to

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