emacs-diffs
[Top][All Lists]
Advanced

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

feature/package+vc effe1f20f5 3/9: Extract package maintainer guessing c


From: Philip Kaludercic
Subject: feature/package+vc effe1f20f5 3/9: Extract package maintainer guessing code into a separate function
Date: Sat, 8 Oct 2022 05:58:48 -0400 (EDT)

branch: feature/package+vc
commit effe1f20f58bd92443e28cda2f0f65c681f1b387
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philipk@posteo.net>

    Extract package maintainer guessing code into a separate function
    
    * package.el (package-maintainers): Add new function.
    (package-contact-maintainer): Use it.
    (package-report-bug): Use it.
---
 lisp/emacs-lisp/package.el | 50 +++++++++++++++++++++-------------------------
 1 file changed, 23 insertions(+), 27 deletions(-)

diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 48d78fab83..9ac94fa6bc 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -4516,6 +4516,21 @@ DESC must be a `package-desc' object."
         (funcall browse-url-secondary-browser-function url)
       (browse-url url))))
 
+(defun package-maintainers (pkg-desc)
+  "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
+thrown."
+  (unless pkg-desc
+    (user-error "Invalid package description"))
+  (let* ((extras (package-desc-extras pkg-desc))
+         (maint (alist-get :maintainer extras)))
+    (unless maint
+      (user-error "Package has no explicit maintainer"))
+    (with-temp-buffer
+      (package--print-email-button maint)
+      (string-trim (substring-no-properties (buffer-string))))))
+
 ;; TODO: Allow attaching a patch to send directly to the maintainer.
 ;; Ideally this should be able to detect the local changes, convert
 ;; these into patches.
@@ -4524,33 +4539,19 @@ DESC must be a `package-desc' object."
 DESC must be a `package-desc' object."
   (interactive (list (package--query-desc package-archive-contents))
                package-menu-mode)
-  (unless desc
-    (user-error "No package here"))
-  (let* ((extras (package-desc-extras desc))
-         (maint (alist-get :maintainer extras))
-         (name (package-desc-name desc))
-         (subject (read-string "Subject: ")))
-    (unless maint
-      (user-error "Package has no explicit maintainer"))
-    (compose-mail
-     (with-temp-buffer
-       (package--print-email-button maint)
-       (string-trim (substring-no-properties (buffer-string))))
-     (format "[%s] %s" name subject))))
+  (let ((maint (package-maintainers desc))
+        (name (package-desc-name desc))
+        (subject (read-string "Subject: ")))
+    (compose-mail maint (format "[%s] %s" name subject))))
 
 (defun package-report-bug (desc)
   "Prepare a message to send to the maintainers of a package.
 DESC must be a `package-desc' object."
   (interactive (list (package--query-desc package-alist))
                package-menu-mode)
-  (unless desc
-    (user-error "Package must be non-nil"))
-  (let* ((extras (package-desc-extras desc))
-         (maint (alist-get :maintainer extras))
-         vars)
-    (unless maint
-      (user-error "Package %s has no explicit maintainer"
-                  (package-desc-name desc)))
+  (let ((maint (package-maintainers desc))
+        (name (symbol-name (package-desc-name desc)))
+        vars)
     (let ((check (apply-partially #'file-equal-p (package-desc-dir desc))))
       (dolist-with-progress-reporter (group custom-current-group-alist)
           "Scanning for modified user options..."
@@ -4562,12 +4563,7 @@ DESC must be a `package-desc' object."
                      (locate-dominating-file (car group) check))
             (push (car ent) vars)))))
     (dlet ((reporter-prompt-for-summary-p t))
-      (reporter-submit-bug-report
-       (with-temp-buffer
-         (package--print-email-button maint)
-         (string-trim (substring-no-properties (buffer-string))))
-       (symbol-name (package-desc-name desc))
-       vars))))
+      (reporter-submit-bug-report maint name vars))))
 
 ;;;; Introspection
 



reply via email to

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