OVH Cloud OVH Cloud

[gnus] rendu html avec w3m

27 réponses
Avatar
Bernard Adrian
Bonjour,

La distribution testing Debian vient de passer de la version 5.10.7 à
"No Gnus v0.4". Depuis j'ai cet avertissement dans le minibuffer pour
certains messages :

mm-inline-text-html-render-with-w3m: Symbol's function definition is
void: mm-w3m-local-map-property

Je n'ai trouvé mm-w3m-local-map-property ni parmi les variables ni
parmi les fonctions (C-h v ou f).

La version d'emacs-w3m est 1.4.4

Une idée de solution ?

Merci,
--
Bernard Adrian http://bernadrian.free.fr/wordpress

10 réponses

1 2 3
Avatar
drkm
Bernard Adrian writes:

drkm a écrit :

Et un "locate" sur "gnus.elc" me donne ce fichier dans deux
répertoires différents.



Ce qui est intéressant, c'est ce que donne :

M-x locate-lib <RET> gnus <RET>

Un 'M-x find-fun <RET>
mm-inline-text-html-render-with-w3m <RET>' renseigne quel
fichier ?



mm-view.el



Oops, oui, je n'ai pas été clair. C'est le chemin absolu qui
est intéressant. Ceci est peut-être plus simple :

M-x locate-lib <RET> mm-view <RET>

--drkm
Avatar
drkm
Bernard Adrian writes:

Peut-être effectivement une ancienne version en conflit : j'ai un
répertoire /usr/share/emacs/21.4/lisp/gnus qui me semble faire double
emploi avec /usr/share/emacs21/site-lisp/gnus



Comme je viens de le dire dans une autre réponse, la commande
intéressante est sans doute 'locate-library', qui donne le chemin
d'une bibliothèque depuis son nom. Par exemple :

(locate-library "gnus")
==> "c:/Program Files/emacs/site-lisp/ngnus-0.3/lisp/gnus.elc"

--drkm
Avatar
Bernard Adrian
drkm a écrit :

M-x locate-lib <RET> mm-view <RET>



Library is file /usr/share/emacs21/site-lisp/gnus/mm-view.elc


--
Bernard Adrian http://bernadrian.free.fr
Avatar
Bernard Adrian
drkm a écrit :


M-x locate-lib <RET> gnus <RET>



Library is file /usr/share/emacs21/site-lisp/gnus/gnus.elc

M-x locate-lib <RET> mm-view <RET>



Library is file /usr/share/emacs21/site-lisp/gnus/mm-view.elc


--
Bernard Adrian http://bernadrian.free.fr
Avatar
drkm
Bernard Adrian writes:

drkm a écrit :

M-x locate-lib <RET> mm-view <RET>



Library is file /usr/share/emacs21/site-lisp/gnus/mm-view.elc



On approche :-). Ce qu'il faut savoir, c'est si ce répertoire
abrite la version de Gnus nouvellement installée, ou l'ancienne.
Si c'est l'ancienne (ce que je suspecte par les numéros de
versions), alors tu as un problème.

Alors soit tu installes le répertoire de la nouvelle version
avant dans le 'load-path' grâce à quelque chose comme :

(push ".../ngnus-0.4/lisp" load-path)

dans ton ~/.emacs.el. Soit tu rapportes le bug au mainteneur du
paquet Debian (ce qu'il faut en fait de toute façon faire), et tu
attends ...

L'alternative étant bien sûr d'installer temporairement No Gnus
0.4 en tête du 'load-path' le temps que le paquet soit corrigé.

--drkm
Avatar
Bernard Adrian
drkm a écrit :

Bernard Adrian writes:

drkm a écrit :



M-x locate-lib <RET> mm-view <RET>





Library is file /usr/share/emacs21/site-lisp/gnus/mm-view.elc



On approche :-). Ce qu'il faut savoir, c'est si ce répertoire
abrite la version de Gnus nouvellement installée, ou l'ancienne.
Si c'est l'ancienne (ce que je suspecte par les numéros de
versions), alors tu as un problème.



C'est la nouvelle. Le gnus.elc présent dans ce répertoire est compilé
depuis /usr/share/emacs21/site-lisp/gnus/gnus.el selon son en-tête. Et
ce gnus.el est bien celui de la version No Gnus 0.4.

Alors soit tu installes le répertoire de la nouvelle version
avant dans le 'load-path' grâce à quelque chose comme :

(push ".../ngnus-0.4/lisp" load-path)



J'ai essayé, ça ne change rien. Ce qui est logique (cf ci-dessus).
J'ai même sauvagement renommé le répertoire contenant l'ancienne
version en "vieux-gnus". Ca ne change rien non plus.

dans ton ~/.emacs.el. Soit tu rapportes le bug au mainteneur du
paquet Debian (ce qu'il faut en fait de toute façon faire), et tu
attends ...



Le bug en lui-même est déjà rapporté, mais la correction proposée
pose plus de problèmes qu'elle n'en résoud. Je vais donc rapporter
aussi.

L'alternative étant bien sûr d'installer temporairement No Gnus
0.4 en tête du 'load-path' le temps que le paquet soit corrigé.



Je ne vois pas bien la différence entre "installer avant dans le
load-path" et "installer en tête du load-path" ?

En tous cas merci pour ton aide,
--
Bernard Adrian http://bernadrian.free.fr
Avatar
Bernard Adrian
"drkm" a écrit :

Là, je ne comprend plus. Tu utilises No Gnus 0.4, et tu as une
erreur car il utilise une fonction qui a été supprimée depuis plus
d'un an (si je me souviens bien). Pour être vraiment sûr que la
définition de la fonction incriminée vient bien de No Gnus 0.4,
peux-tu suivre la procédure suivante ?

C-h f mm-inline-text-html-render-with-w3m <RET>

Dans la fenêtre d'aide, il est écrit quelque chose comme (au
début) : "defined in 'mm-view.el'". Le nom du fichier est clickable
(tu déplaces le point dessus, et <RET>). Tu atteris alors dans le
fichier. Si tu essayes d'ouvrir un nouveau fichier, par 'C-x C-f', il
te donnes le répertoire dans lequel tu te trouves. Est-ce bien le
même ?



Eh non :

Find file: /usr/share/emacs/site-lisp/gnus/lisp/

au total il y a des mm-view dans 3 répertoires différents !

Moui. Peux-être peux-tu essayer de créer un fichier '.nosearch'
dans le répertoire 'gnus' de l'ancienne version : '~> touch
.../gnus/.nosearch'.



C'est fait, et aussi dans le répertoire ci-dessus.

Bon. Franchement, je suis un peu perdu. Si Emacs te dit que la
fonction est bien définie par No Gnus 0.4, alors je ne vois vraiment
pas.



Ensuite, je suis sorti complètement d'emacs et au retour dans gnus, le
bug est toujours là. Bon ce n'est pas dramatique : ça ne pose un pb
que pour les mail en html, en général ce ne sont pas les plus
intéressants.

Merci !
--
Bernard Adrian
http://bernadrian.free.fr
Avatar
Sébastien Kirche
Le 7 août 2005 à 22:08, drkm a formulé :

C-h f mm-inline-text-html-render-with-w3m <RET>

Dans la fenêtre d'aide, il est écrit quelque chose comme (au
début) : "defined in 'mm-view.el'". Le nom du fichier est clickable
(tu déplaces le point dessus, et <RET>). Tu atteris alors dans le
fichier. Si tu essayes d'ouvrir un nouveau fichier, par 'C-x C-f', il
te donnes le répertoire dans lequel tu te trouves. Est-ce bien le
même ?



Au passage, pour être vraiment sûr de l'emplacement du fichier (si le
buffer correspond à un fichier), le mieux est C-h v buffer-file-name RET

Àma si Murphy est dans les parages la manip C-x C-f pourrait donner un
résultat faux si un autre fichier est ouvert entre temps ou si emacs
change de répertoire courant...

--
Sébastien Kirche
Avatar
Matthieu Moy
"drkm" writes:

Le répertoire courant est local au buffer. Dès que tu en changes,
le répertoire courant change. Mais il est vrai que 'C-x C-f' peut
avoir été modifié (il y a des packages standard qui font cela).

Et comme Murphy n'est jamais très loin ...



Un utilisateur vicieux peut remplacer Murphy : M-x cd RET ...

--
Matthieu
Avatar
Bernard Adrian
"drkm" a écrit :


Boh, il ne faut pas être très vicieux pour utilise 'cd'. Mais en
l'occurrence, la manip consistait à identifier le répertoire dans
lequel se trouvait un fichier, juste après l'avoir ouvert. Là, il
faudrait plutôt être masochiste (et un poil schizophrène) pour
utiliser 'cd' avant le 'C-x C-f'.



Bon, toutes vérifications faites c'est bien la dernière version de
mm-view qui est boguée. Comme je ne doute de rien, j'ai essayé de
bidouiller le fichier source :

(nconc (w3m-minor-mode-map) ;;;(mm-w3m-local-map-property)
;; Put the mark meaning this part was rendered by emacs-w3m.
'(mm-inline-text-html-with-w3m t))

après avoir lu dans le CVS de gnus que w3m-minor-mode-map remplace
mm-w3m-local-map-property

Mais bon, c'est pas encore ça. Je vais attendre le correctif.

Bonne soirée,
--
Bernard Adrian
http://bernadrian.free.fr
1 2 3