Subject: bug#62767: 29.0.90; [PATCH] *lisp/emacs-lisp/package.el: set variables after info package

From: Ruijie Yu <[email-masked]>
Date: Mon, 17 Apr 2023 14:59:00 +0800

Ruijie Yu <[email-masked]> writes:

> lin Sun via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <[email-masked]> writes:
>
>>    (let ((package--quickstart-pkgs ())
>>          ;; Pretend we haven't activated anything yet!
>>          (package-activated-list ())
>> @@ -4472,10 +4471,10 @@ package-quickstart-refresh
>>            (current-buffer))
>>        (let ((info-dirs (butlast Info-directory-list)))
>>          (when info-dirs
>> -          (pp `(progn (require 'info)
>> -                      (info-initialize)
>> -                      (setq Info-directory-list
>> -                            (append ',info-dirs Info-directory-list)))
>> +          (pp `(with-eval-after-load 'info
>> +                 (info-initialize)
>> +                 (setq Info-directory-list
>> +                       (append ',info-dirs Info-directory-list)))
>>                (current-buffer))))
>
> I did some testing, and noticed that `with-eval-after-load' returns nil
> to its caller when the feature is not loaded.  That is, when `info' is
> not already loaded, you are effectively calling (pp nil).  This is not
> feature-equivalent to the original code, so this might require the
> `require' form.

Sorry, I misread the code.  Please ignore this portion of my previous
email.

-- 
Best,

RY