[emacs-w3m:13557] Re: Fix melpa installation

Michael Heerdegen <[email protected]>
Newsgroups gmane.emacs.w3m
Message-ID <[email protected]>
Katsumi Yamaoka <[email protected]> writes:

> In [emacs-w3m:13554]
> On Fri, 13 Sep 2019 17:14:11 +0900, Katsumi Yamaoka wrote:
> > I posted an isseue message as:
> > <https://github.com/melpa/melpa/issues/6435>
>
> I made a change so to make emacs-w3m create the w3m-load.el file
> if it is missing in the melpa installation after all, and changed
> the recommended recipe for getting started emacs-w3m as follows:
>
> ,---- <https://emacs-w3m.github.io/index.html#configuration>
> | Emacs-w3m has many configuration options, but the minimum that
> | is required is just to put this line into your ~/.emacs file:
> |
> |     (require 'w3m-load)
> |
> |     If you have installed emacs-w3m from MELPA, there is no
> |     w3m-load.el file initially, so we recommend using instead
> |     this in order to create the w3m-load.el file:
> |
> |         (condition-case nil
> |             (require 'w3m-load)
> |           (file-error (require 'w3m)))
> |
> |     Once the w3m-load.el file is created by w3m.elc, you may
> |     replace the above form with the one-line setting (if you
> |     want), i.e.:
> |
> |         (require 'w3m-load)
> |
> |     If the w3m-load.el file is not created, make sure if the
> |     file ~/.emacs.d/elpa/archives/melpa/archive-contents
> |     exists.
> |
> | And then, just type M-x w3m, and you can use emacs-w3m.
> `----

Works for me, thanks.  I can now file bug reports.  I didn't look at
your change, just at the effects.

A negative point: apparently, when w3m created "w3m-load" after
restarting my emacs here, it produced a warning (AFAIR something like
"unknown var package-desc" or something like that).  And there was no
indication where it came from so users might investigate and invest time
uselessly.  Either try to avoid that warning and/or print a message like
"Creating file w3m-load.el for you..."

Then I would like to discuss your suggested form for the users' init
files:

|         (condition-case nil
|             (require 'w3m-load)
|           (file-error (require 'w3m)))

I think I'll instead use

(eval-and-compile
  (or (require 'w3m-load nil t)
      (require 'w3m      nil t)))

Differences:

- use NOERROR arg of `require' to avoid co-case - can you use that too?

- (important) Don't error in case w3m is not installed!  Maybe the user
wants to reinstall or temporarily uninstall it later etc - this
shouldn't break Emacs startup.

- nitpick: I use `eval-and-compile' because I compile my init file and
so the compiler knows about w3m stuff when compiling.


Thanks,

Michael.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.