info-gnus-english
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why does this hook not work


From: Cecil Westerhof
Subject: Re: Why does this hook not work
Date: Thu, 25 Oct 2012 13:00:53 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)

Op woensdag 24 okt 2012 12:44 CEST schreef Stephen Leake:

> Cecil Westerhof <Cecil@decebal.nl> writes:
>
>> I wanted to go a step further. A lot of times I open messages in the
>> browser and expire them. For this I defined the following hook:
>> (add-hook 'gnus-article-mode-hook
>> (lambda ()
>> (define-key gnus-browse-mode-map "v"
>>
>> But this does not work. The v key keeps undefined. What am I doing
>> wrong?
>
> I haven't tried this, but it appears you are defining this key in the
> wrong map; use gnus-article-mode-map

Spot on. That is the problem with copy/paste: you can forget to
change a part of the code. It works with one hitch: after this
gnus-summary-mode is selected. I think this is a bug: when something
is executed interactive or in a batch there should be no difference in
the outcome. That is why I changed it to:
    (add-hook 'gnus-article-mode-hook
              (lambda ()
                (define-key gnus-article-mode-map "v"
                  `(lambda ()
                     "Open article in browser and expire it"
                     (interactive)
                     (gnus-article-browse-html-article)
                     (gnus-summary-mark-as-expirable 1)
                     (when (string= major-mode "gnus-summary-mode")
                       (gnus-summary-next-page)
                       (gnus-summary-select-article-buffer))))))

I put in the when so that the function still works when the bug is
solved. ;-)

--
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof


reply via email to

[Prev in Thread] Current Thread [Next in Thread]