* Local values of PC-word-delimiters.
@ 2006-04-15 14:05 Michaël Cadilhac
2006-04-17 16:22 ` Kevin Rodgers
0 siblings, 1 reply; 5+ messages in thread
From: Michaël Cadilhac @ 2006-04-15 14:05 UTC (permalink / raw)
[-- Attachment #1.1: Type: text/plain, Size: 1115 bytes --]
Hi !
I've a problem I can't solve in a clean way, here.
I want that when `gnus-group-jump-to-group' is called, its
completing-read (PC enabled) uses `:' as PC-word-delimiters.
Easy you say ? Thought so ;-)
I first tried
(add-hook 'gnus-group-mode
(lambda ()
(set (make-local-variable 'PC-word-delimiters) ":")))
But it was no use since we're in the minibuffer when
PC-word-delimiters is read.
I then tried
(defadvice gnus-group-jump-to-group (around dummy-name activate)
(let ((PC-word-delimiters ":"))
ad-do-it))
But since `gnus-group-jump-to-group' uses completing-read in its
`interactive' part, the advice is executed AFTER it.
Do you have any clean solution ?
Thanks.
--
| Michaël `Micha' Cadilhac | Mieux vaut se taire |
| Epita/LRDE Promo 2007 | Que de parler trop fort. |
| http://www.lrde.org/~cadilh_m | -- As de trèfle |
`-- - JID: micha@amessage.be --' - --'
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 152 bytes --]
_______________________________________________
help-gnu-emacs mailing list
help-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-emacs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Local values of PC-word-delimiters.
2006-04-15 14:05 Local values of PC-word-delimiters Michaël Cadilhac
@ 2006-04-17 16:22 ` Kevin Rodgers
2006-04-17 17:03 ` Michaël Cadilhac
0 siblings, 1 reply; 5+ messages in thread
From: Kevin Rodgers @ 2006-04-17 16:22 UTC (permalink / raw)
Michaël Cadilhac wrote:
> I've a problem I can't solve in a clean way, here.
>
> I want that when `gnus-group-jump-to-group' is called, its
> completing-read (PC enabled) uses `:' as PC-word-delimiters.
>
> Easy you say ? Thought so ;-)
>
> I first tried
>
> (add-hook 'gnus-group-mode
> (lambda ()
> (set (make-local-variable 'PC-word-delimiters) ":")))
>
> But it was no use since we're in the minibuffer when
> PC-word-delimiters is read.
>
> I then tried
>
> (defadvice gnus-group-jump-to-group (around dummy-name activate)
> (let ((PC-word-delimiters ":"))
> ad-do-it))
>
> But since `gnus-group-jump-to-group' uses completing-read in its
> `interactive' part, the advice is executed AFTER it.
>
> Do you have any clean solution ?
Does this work?
(defadvice gnus-group-jump-to-group (before PC-word-delimiters activate)
"Temporarily bind `PC-word-delimiters' while reading GROUP."
(interactive
(let ((PC-word-delimiters ":"))
(call-interactively
`(lambda (&rest args)
,(interactive-form 'gnus-group-jump-to-group)
args)))))
--
Kevin Rodgers
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Local values of PC-word-delimiters.
2006-04-17 16:22 ` Kevin Rodgers
@ 2006-04-17 17:03 ` Michaël Cadilhac
2006-04-18 10:05 ` Michaël Cadilhac
0 siblings, 1 reply; 5+ messages in thread
From: Michaël Cadilhac @ 2006-04-17 17:03 UTC (permalink / raw)
Cc: help-gnu-emacs
[-- Attachment #1.1: Type: text/plain, Size: 1794 bytes --]
Kevin Rodgers <ihs_4664@yahoo.com> writes:
> Michaël Cadilhac wrote:
>> I've a problem I can't solve in a clean way, here.
>>
>> I want that when `gnus-group-jump-to-group' is called, its
>> completing-read (PC enabled) uses `:' as PC-word-delimiters.
>>
>
> Does this work?
>
> (defadvice gnus-group-jump-to-group (before PC-word-delimiters activate)
> "Temporarily bind `PC-word-delimiters' while reading GROUP."
> (interactive
> (let ((PC-word-delimiters ":"))
> (call-interactively
> `(lambda (&rest args)
> ,(interactive-form 'gnus-group-jump-to-group)
> args)))))
Nice try :-)
Well, it doesn't. It complains about infinite recursion. I think it's
due to infinite evaluation of the advice on the « interactive-form ».
However, with a « before » advice, I think jump-to-group would have
been called twice.
But you made the thing : just use (interactive) to make the call.
Arg. The following works :
(defadvice gnus-group-jump-to-group (around PC-word-delimiters activate)
"Temporarily bind `PC-word-delimiters' while reading GROUP."
(interactive
(let ((PC-word-delimiters ":"))
(ad-deactivate 'gnus-group-jump-to-group)
(call-interactively 'gnus-group-jump-to-group)
(ad-activate 'gnus-group-jump-to-group))))
It seems that ad-do-it can't be used in the interactive part, however.
Not so clean, but it works at least :-)
--
| Michaël `Micha' Cadilhac | Would someone please DTRT with this |
| Epita/LRDE Promo 2007 | then ACK? |
| http://www.lrde.org/~cadilh_m | -- Richard Stallman |
`-- - JID: micha@amessage.be --' - --'
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 152 bytes --]
_______________________________________________
help-gnu-emacs mailing list
help-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-emacs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Local values of PC-word-delimiters.
2006-04-17 17:03 ` Michaël Cadilhac
@ 2006-04-18 10:05 ` Michaël Cadilhac
2006-04-19 16:14 ` Kevin Rodgers
0 siblings, 1 reply; 5+ messages in thread
From: Michaël Cadilhac @ 2006-04-18 10:05 UTC (permalink / raw)
[-- Attachment #1.1: Type: text/plain, Size: 2426 bytes --]
michael.cadilhac@lrde.org (Michaël Cadilhac) writes:
> Kevin Rodgers <ihs_4664@yahoo.com> writes:
>
>> Michaël Cadilhac wrote:
>>> I've a problem I can't solve in a clean way, here.
>>>
>>> I want that when `gnus-group-jump-to-group' is called, its
>>> completing-read (PC enabled) uses `:' as PC-word-delimiters.
>>>
>>
>> Does this work?
>>
>> (defadvice gnus-group-jump-to-group (before PC-word-delimiters activate)
>> "Temporarily bind `PC-word-delimiters' while reading GROUP."
>> (interactive
>> (let ((PC-word-delimiters ":"))
>> (call-interactively
>> `(lambda (&rest args)
>> ,(interactive-form 'gnus-group-jump-to-group)
>> args)))))
>
> Nice try :-)
>
> Well, it doesn't. It complains about infinite recursion. I think it's
> due to infinite evaluation of the advice on the « interactive-form ».
>
> However, with a « before » advice, I think jump-to-group would have
> been called twice.
Okey, this remark was silly, I didn't read as I should your
proposition, TITS with a lot of attention ;-)
The following doesn't work:
> (defadvice gnus-group-jump-to-group (around PC-word-delimiters activate)
> "Temporarily bind `PC-word-delimiters' while reading GROUP."
> (interactive
> (let ((PC-word-delimiters ":"))
> (ad-deactivate 'gnus-group-jump-to-group)
> (call-interactively 'gnus-group-jump-to-group)
> (ad-activate 'gnus-group-jump-to-group))))
And is really dirty.
One can fix your proposal, which is a really great one, by the
following :
(defadvice gnus-group-jump-to-group (before PC-word-delimiters activate)
"Temporarily bind `PC-word-delimiters' while reading GROUP."
(interactive
(progn (ad-deactivate 'gnus-group-jump-to-group)
(let* ((PC-word-delimiters ":")
(retval (call-interactively
`(lambda (&rest args)
,(interactive-form 'gnus-group-jump-to-group)
args))))
(ad-activate 'gnus-group-jump-to-group)
retval))))
Thank you again, now it seems fine !
--
| Michaël `Micha' Cadilhac | Pour les 35-40 ans, l'humour |
| Epita/LRDE Promo 2007 | c'est une plus-value. |
| http://www.lrde.org/~cadilh_m | -- Guillaume L. |
`-- - JID: micha@amessage.be --' - --'
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 152 bytes --]
_______________________________________________
help-gnu-emacs mailing list
help-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-emacs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Local values of PC-word-delimiters.
2006-04-18 10:05 ` Michaël Cadilhac
@ 2006-04-19 16:14 ` Kevin Rodgers
0 siblings, 0 replies; 5+ messages in thread
From: Kevin Rodgers @ 2006-04-19 16:14 UTC (permalink / raw)
Michaël Cadilhac wrote:
> (defadvice gnus-group-jump-to-group (before PC-word-delimiters activate)
> "Temporarily bind `PC-word-delimiters' while reading GROUP."
> (interactive
> (progn (ad-deactivate 'gnus-group-jump-to-group)
> (let* ((PC-word-delimiters ":")
> (retval (call-interactively
> `(lambda (&rest args)
> ,(interactive-form 'gnus-group-jump-to-group)
> args))))
> (ad-activate 'gnus-group-jump-to-group)
> retval))))
(defadvice gnus-group-jump-to-group (before PC-word-delimiters activate)
"Temporarily bind `PC-word-delimiters' while reading GROUP."
(interactive
(let ((PC-word-delimiters ":"))
(prog2 (ad-deactivate 'gnus-group-jump-to-group)
(call-interactively
`(lambda (&rest args)
,(interactive-form 'gnus-group-jump-to-group)
args))
(ad-activate 'gnus-group-jump-to-group)))))
--
Kevin Rodgers
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-04-19 16:14 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-15 14:05 Local values of PC-word-delimiters Michaël Cadilhac
2006-04-17 16:22 ` Kevin Rodgers
2006-04-17 17:03 ` Michaël Cadilhac
2006-04-18 10:05 ` Michaël Cadilhac
2006-04-19 16:14 ` Kevin Rodgers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).