Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gnus et rss : wrong type argument hash-table-p nil

5 réponses
Avatar
Ph. Idlavi
Bonjour,

Ayant un peu de temps pour continuer ma configuration d'Emacs sous
Debian, je me suis aperçu que lors du redémarrage de Gnus (et seulement
lors du redémarrage) j'obtiens un message d'erreur lors de la lecture d'un fil
RSS (et seulement lors de la lecture d'un RSS):

Debugger entered--Lisp error: (wrong-type-argument hash-table-p nil)
gethash("http://www.afp.com/francais/news/stories/051106120224.zay6ktow.html" nil)
nnrss-check-group("AFP - Actualite" "")
nnrss-request-group("AFP - Actualite" "" nil)
gnus-activate-group("nnrss:AFP - Actualite" scan)
gnus-get-unread-articles(nil)
gnus-setup-news(nil nil nil)
byte-code("..." [dont-connect did-connect gnus-startup-file gnus-current-startup-file gnus-slave gnus-use-dribble-file gnus-group-quit gnus-run-hooks gnus-startup-hook gnus-make-newsrc-file gnus-dribble-read-file gnus-request-create-group "queue" (nndraft "") "drafts" (nndraft "") gnus-setup-news nil gnus-setup-news-hook gnus-start-draft-setup gnus-group-list-groups gnus-group-first-unread-group gnus-configure-windows group gnus-group-set-mode-line gnus-started-hook gnus-agent level] 4)
gnus-1(nil nil nil)
gnus(nil)
* call-interactively(gnus)
execute-extended-command(nil)
call-interactively(execute-extended-command)

En fait, dans le .gnus.el j'ai :
(when (load "nnrss" t t)
...
)

et même en mettant juste :
(when (load "nnrss" t t))
l'erreur se produit alors que si je supprime cette ligne il n'y a plus
de problème.

J'en ai pourtant besoin de ce (load "nnrss" t t).

Quelqu'un aurait-il une idée ?

Bonne soirée,
--
Philippe I.

5 réponses

Avatar
Sébastien Kirche
Le 6 novembre 2005 à 20:11, Ph. Idlavi a dit :

J'en ai pourtant besoin de ce (load "nnrss" t t).

Quelqu'un aurait-il une idée ?



J'utilise Gnus et nnrss mais je n'ai jamais rencontré ce problème donc
je n'ai pas d'idée précisément là-dessus.

Par contre je peux te proposer une idée, pour continuer à charger nnrss
une seule fois : tester la présence de la feature nnrss (qui correspond
au (provide 'nnrss) qui se trouve en fin du fichier.

(unless (featurep 'nnrss)
(when (load "nnrss" t t)
...))

À moins qu'une solution plus élégante ne soit possible avec un
autoload ?

Je laisse le soin aux camarades du groupe de me corriger :)
--
Sébastien Kirche
Avatar
Ph. Idlavi
Le 06 Novembre 2005 à 22h08:24,
Sébastien Kirche écrivit :


J'utilise Gnus et nnrss mais je n'ai jamais rencontré ce problème donc
je n'ai pas d'idée précisément là-dessus.



Sous Mandriva je n'ai aucun problème de ce côté (même version de Gnus).


Par contre je peux te proposer une idée, pour continuer à charger nnrss
une seule fois : tester la présence de la feature nnrss (qui correspond
au (provide 'nnrss) qui se trouve en fin du fichier.

(unless (featurep 'nnrss)
(when (load "nnrss" t t)
...))

À moins qu'une solution plus élégante ne soit possible avec un
autoload ?



En tout cas ça marche bien maintenant.
Merci.


Je laisse le soin aux camarades du groupe de me corriger :)



--
Philippe I.
Avatar
Matthieu Moy
Sébastien Kirche writes:

(unless (featurep 'nnrss)
(when (load "nnrss" t t)
...))

À moins qu'une solution plus élégante ne soit possible avec un
autoload ?



C-h f require RET

?

--
Matthieu
Avatar
drkm
Sébastien Kirche writes:

(unless (featurep 'nnrss)
(when (load "nnrss" t t)
...))



C'est grosso-modo ce que fait 'require'. Lorsque tu requières
une fonctionnalité, soit elle est n'est pas encore disponible et
'require' essayera de la charger, soit elle l'est déjà et il ne
se passe rien. Donc :

(require 'nnrss)

ou :

(when (require 'nnrss nil t)
...)

si tu ne requières pas inconditionnellement la fonctionnalité (et
veux entreprendre des actions dans le cas où elle est disponible).

--drkm
Avatar
Sébastien Kirche
Le 7 novembre 2005 à 01:11, drkm a dit :

Sébastien Kirche writes:

> (unless (featurep 'nnrss)
> (when (load "nnrss" t t)
> ...))

C'est grosso-modo ce que fait 'require'. Lorsque tu requières
une fonctionnalité, soit elle est n'est pas encore disponible et
'require' essayera de la charger, soit elle l'est déjà et il ne
se passe rien. Donc :

(require 'nnrss)

ou :

(when (require 'nnrss nil t)
...)

si tu ne requières pas inconditionnellement la fonctionnalité (et
veux entreprendre des actions dans le cas où elle est disponible).



Ah ben très bien : c'est déjà ce que je fais dans ma propre config.

En fait j'ai bêtement proposé une rustine sur la forme au lieu
d'indiquer un remplacement du fond.

Merci pour vos commentaires.
--
Sébastien Kirche