--- Begin Message ---
Subject: |
Package author/maintainer printing fix |
Date: |
Sun, 10 Mar 2024 19:03:16 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) |
There are many packages with non-dot author/maintainer format that fail with
Debugger entered--Lisp error: (wrong-type-argument listp "XXIV")
car("XXIV")
package--print-email-button("XXIV")
describe-package-1(#s(package-desc :name chaos-mode ((:authors ("XXIV"))
(:maintainers ("XXIV")) (:maintainer "XXIV"))))
describe-package(#s(package-desc :name chaos-mode ((:authors ("XXIV"))
(:maintainers ("XXIV")) (:maintainer "XXIV"))))
package-menu-describe-package(#<marker (moves after insertion) at 67389 in
*Packages*>)
button-activate(#<marker (moves after insertion) at 67389 in *Packages*> nil)
push-button(67389)
funcall-interactively(push-button 67389)
command-execute(push-button)
Here is the fix:
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index fe7b10f569a..790860df2a7 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -3082,19 +3082,21 @@ package--print-email-button
"Insert a button whose action will send an email to RECIPIENT.
NAME should have the form (FULLNAME . EMAIL) where FULLNAME is
either a full name or nil, and EMAIL is a valid email address."
- (when (car recipient)
- (insert (car recipient)))
- (when (and (car recipient) (cdr recipient))
- (insert " "))
- (when (cdr recipient)
- (insert "<")
- (insert-text-button (cdr recipient)
- 'follow-link t
- 'action (lambda (_)
- (compose-mail
- (format "%s <%s>" (car recipient) (cdr
recipient)))))
- (insert ">"))
- (insert "\n"))
+ (if (stringp recipient)
+ (insert recipient "\n")
+ (when (car recipient)
+ (insert (car recipient)))
+ (when (and (car recipient) (cdr recipient))
+ (insert " "))
+ (when (cdr recipient)
+ (insert "<")
+ (insert-text-button (cdr recipient)
+ 'follow-link t
+ 'action (lambda (_)
+ (compose-mail
+ (format "%s <%s>" (car recipient) (cdr
recipient)))))
+ (insert ">"))
+ (insert "\n")))
;;;; Package menu mode.
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#69712: Package author/maintainer printing fix |
Date: |
Sat, 23 Mar 2024 16:12:01 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
>> I suggest the following fix instead.
>> Can you confirm that it fixes the problem for you as well?
>>
>> diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
>> @@ -2941,7 +2941,7 @@ describe-package-1
>> (insert " "))
>> (insert "\n"))
>> (when maintainers
>> - (unless (proper-list-p maintainers)
>> + (when (stringp (car maintainers))
>> (setq maintainers (list maintainers)))
>
> I confirm this completely fixes the problem.
Thanks, pushed to `master`.
Stefan
--- End Message ---