[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