Gnus development mailing list
 help / color / mirror / Atom feed
* sorting: wrong number of arguments
@ 2011-01-13 15:46 Peter Münster
  2011-01-22  3:44 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 10+ messages in thread
From: Peter Münster @ 2011-01-13 15:46 UTC (permalink / raw)
  To: ding

Hello,

How could I sort the group buffer automatically when updating?

This:
(add-hook 'gnus-group-update-hook 'gnus-group-sort-groups)

results in an error:

Warning (initialization): An error occurred while loading
`/home/peter/.emacs':

Wrong number of arguments: #[(func &optional reverse) 303       !
"\210\304 \210\305 \210\306 \207 [gnus-group-sort-alist-function func
reverse gnus-make-sort-function gnus-group-unmark-all-groups
gnus-group-list-groups gnus-dribble-touch] 3
(/home/peter/todo/gnus/lisp/gnus-group.elc . 107955) (list
gnus-group-sort-function current-prefix-arg)], 0

TIA for any help,
-- 
Peter Münster

Contact information: http://pmrb.free.fr/contact/




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: sorting: wrong number of arguments
  2011-01-13 15:46 sorting: wrong number of arguments Peter Münster
@ 2011-01-22  3:44 ` Lars Ingebrigtsen
  2011-01-22  8:22   ` Peter Münster
  0 siblings, 1 reply; 10+ messages in thread
From: Lars Ingebrigtsen @ 2011-01-22  3:44 UTC (permalink / raw)
  To: ding

pmlists@free.fr (Peter Münster) writes:

> This:
> (add-hook 'gnus-group-update-hook 'gnus-group-sort-groups)

That function takes the real sorting function as a parameter.

So it should be something like

(add-hook 'gnus-group-update-hook
          (lambda ()
            (gnus-group-sort-groups 'gnus-group-sort-by-alphabet)))

or whatever.

-- 
(domestic pets only, the antidote for overdose, milk.)
  larsi@gnus.org * Lars Magne Ingebrigtsen




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: sorting: wrong number of arguments
  2011-01-22  3:44 ` Lars Ingebrigtsen
@ 2011-01-22  8:22   ` Peter Münster
  2011-01-22 18:09     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 10+ messages in thread
From: Peter Münster @ 2011-01-22  8:22 UTC (permalink / raw)
  To: ding

Lars Ingebrigtsen <larsi@gnus.org> writes:

> pmlists@free.fr (Peter Münster) writes:
>
>> This:
>> (add-hook 'gnus-group-update-hook 'gnus-group-sort-groups)
>
> That function takes the real sorting function as a parameter.
>
> So it should be something like
>
> (add-hook 'gnus-group-update-hook
>           (lambda ()
>             (gnus-group-sort-groups 'gnus-group-sort-by-alphabet)))

Thanks! I didn't see, that gnus-group-sort-function is only used
interactively...

How can I tell gnus-group-sort-groups to use gnus-group-sort-function
(which is a list of functions in my case) even in the update-hook?

(Unfortunately I haven't learned lisp yet... :(

-- 
Peter Münster

Contact information: http://pmrb.free.fr/contact/




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: sorting: wrong number of arguments
  2011-01-22  8:22   ` Peter Münster
@ 2011-01-22 18:09     ` Lars Ingebrigtsen
  2011-01-22 18:32       ` Peter Münster
  0 siblings, 1 reply; 10+ messages in thread
From: Lars Ingebrigtsen @ 2011-01-22 18:09 UTC (permalink / raw)
  To: ding

>> (add-hook 'gnus-group-update-hook
>>           (lambda ()
>>             (gnus-group-sort-groups 'gnus-group-sort-by-alphabet)))
>
> Thanks! I didn't see, that gnus-group-sort-function is only used
> interactively...
>
> How can I tell gnus-group-sort-groups to use gnus-group-sort-function
> (which is a list of functions in my case) even in the update-hook?

(add-hook 'gnus-group-update-hook
          (lambda ()
            (gnus-group-sort-groups gnus-group-sort-function)))

-- 
(domestic pets only, the antidote for overdose, milk.)
  larsi@gnus.org * Lars Magne Ingebrigtsen




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: sorting: wrong number of arguments
  2011-01-22 18:09     ` Lars Ingebrigtsen
@ 2011-01-22 18:32       ` Peter Münster
  2011-01-22 18:47         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 10+ messages in thread
From: Peter Münster @ 2011-01-22 18:32 UTC (permalink / raw)
  To: ding

Lars Ingebrigtsen <larsi@gnus.org> writes:

>> How can I tell gnus-group-sort-groups to use gnus-group-sort-function
>> (which is a list of functions in my case) even in the update-hook?
>
> (add-hook 'gnus-group-update-hook
>           (lambda ()
>             (gnus-group-sort-groups gnus-group-sort-function)))

That's what I'd tried, but:
"error: Variable binding depth exceeds max-specpdl-size"

My setup:
(setq gnus-group-sort-function
      '(gnus-group-sort-by-real-name (not gnus-group-sort-by-unread)
              gnus-group-sort-by-method))

-- 
Peter Münster

Contact information: http://pmrb.free.fr/contact/




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: sorting: wrong number of arguments
  2011-01-22 18:32       ` Peter Münster
@ 2011-01-22 18:47         ` Lars Ingebrigtsen
  2011-01-22 20:35           ` Peter Münster
  0 siblings, 1 reply; 10+ messages in thread
From: Lars Ingebrigtsen @ 2011-01-22 18:47 UTC (permalink / raw)
  To: ding

pmlists@free.fr (Peter Münster) writes:

> That's what I'd tried, but:
> "error: Variable binding depth exceeds max-specpdl-size"

Try setting debug-on-error and see where it infloops.

-- 
(domestic pets only, the antidote for overdose, milk.)
  larsi@gnus.org * Lars Magne Ingebrigtsen




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: sorting: wrong number of arguments
  2011-01-22 18:47         ` Lars Ingebrigtsen
@ 2011-01-22 20:35           ` Peter Münster
  2011-01-22 20:37             ` Lars Ingebrigtsen
  0 siblings, 1 reply; 10+ messages in thread
From: Peter Münster @ 2011-01-22 20:35 UTC (permalink / raw)
  To: ding

Lars Ingebrigtsen <larsi@gnus.org> writes:

> pmlists@free.fr (Peter Münster) writes:
>
>> That's what I'd tried, but:
>> "error: Variable binding depth exceeds max-specpdl-size"
>
> Try setting debug-on-error and see where it infloops.

This seems to be the important part of the backtrace:

--8<---------------cut here---------------start------------->8---
  display-warning(bytecomp "Variable binding depth exceeds
    max-specpdl-size" :error "*Compile-Log*")
  byte-compile-log-warning("Variable binding depth exceeds
    max-specpdl-size" nil :error)
  byte-compile-report-error((error "Variable binding depth exceeds
    max-specpdl-size"))
  byte-compile((lambda (t1 t2) (or (gnus-group-sort-by-method t1 t2)
    (and ... ...))))
  gnus-byte-compile((lambda (t1 t2) (or (gnus-group-sort-by-method t1
    t2) (and ... ...))))
  gnus-make-sort-function((gnus-group-sort-by-real-name (not
    gnus-group-sort-by-unread) gnus-group-sort-by-method))
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not
    gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
--8<---------------cut here---------------end--------------->8---

(the whole backtrace is 152 lines)

-- 
Peter Münster

Contact information: http://pmrb.free.fr/contact/




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: sorting: wrong number of arguments
  2011-01-22 20:35           ` Peter Münster
@ 2011-01-22 20:37             ` Lars Ingebrigtsen
  2011-01-22 20:48               ` Peter Münster
  0 siblings, 1 reply; 10+ messages in thread
From: Lars Ingebrigtsen @ 2011-01-22 20:37 UTC (permalink / raw)
  To: ding

pmlists@free.fr (Peter Münster) writes:

> (the whole backtrace is 152 lines)

Please post the entire backtrace.

-- 
(domestic pets only, the antidote for overdose, milk.)
  larsi@gnus.org * Lars Magne Ingebrigtsen




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: sorting: wrong number of arguments
  2011-01-22 20:37             ` Lars Ingebrigtsen
@ 2011-01-22 20:48               ` Peter Münster
  2011-01-22 20:52                 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 10+ messages in thread
From: Peter Münster @ 2011-01-22 20:48 UTC (permalink / raw)
  To: ding

Lars Ingebrigtsen <larsi@gnus.org> writes:

> pmlists@free.fr (Peter Münster) writes:
>
>> (the whole backtrace is 152 lines)
>
> Please post the entire backtrace.

All right:

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (error "Variable binding depth exceeds max-specpdl-size")
  file-truename("/usr/share" (95) (nil))
  file-truename("/usr/share/emacs" (95) (nil))
  file-truename("/usr/share/emacs/23.1" (95) (nil))
  file-truename("/usr/share/emacs/23.1/lisp" (95) (nil))
  file-truename("/usr/share/emacs/23.1/lisp/emacs-lisp" (95) (nil))
  file-truename("/usr/share/emacs/23.1/lisp/emacs-lisp/warnings.elc")
  display-warning(bytecomp "Variable binding depth exceeds max-specpdl-size" :error "*Compile-Log*")
  byte-compile-log-warning("Variable binding depth exceeds max-specpdl-size" nil :error)
  byte-compile-report-error((error "Variable binding depth exceeds max-specpdl-size"))
  byte-compile((lambda (t1 t2) (or (gnus-group-sort-by-method t1 t2) (and ... ...))))
  gnus-byte-compile((lambda (t1 t2) (or (gnus-group-sort-by-method t1 t2) (and ... ...))))
  gnus-make-sort-function((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups()
  gnus-group-sort-groups((gnus-group-sort-by-real-name (not gnus-group-sort-by-unread) gnus-group-sort-by-method))
  (lambda nil (gnus-group-sort-groups gnus-group-sort-function))()
  run-hooks(gnus-group-update-hook)
  apply(run-hooks gnus-group-update-hook)
  gnus-run-hooks(gnus-group-update-hook)
  gnus-group-insert-group-line("abi91" 3 ((seen (1 . 8)) (expire 7)) 0 nil)
  gnus-group-prepare-flat(5 nil nil)
  gnus-group-list-groups(nil)
  gnus-group-get-new-news(nil)
  call-interactively(gnus-group-get-new-news nil nil)
--8<---------------cut here---------------end--------------->8---

-- 
Peter Münster

Contact information: http://pmrb.free.fr/contact/




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: sorting: wrong number of arguments
  2011-01-22 20:48               ` Peter Münster
@ 2011-01-22 20:52                 ` Lars Ingebrigtsen
  0 siblings, 0 replies; 10+ messages in thread
From: Lars Ingebrigtsen @ 2011-01-22 20:52 UTC (permalink / raw)
  To: ding

The problem here is that gnus-group-update-hook is called from
-list-groups, and -sort-groups calls -list-groups, so it recurses
endlessly.

So you have to do it from a different hook.  For instance,
`gnus-after-getting-new-news-hook'.

-- 
(domestic pets only, the antidote for overdose, milk.)
  larsi@gnus.org * Lars Magne Ingebrigtsen




^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2011-01-22 20:52 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-13 15:46 sorting: wrong number of arguments Peter Münster
2011-01-22  3:44 ` Lars Ingebrigtsen
2011-01-22  8:22   ` Peter Münster
2011-01-22 18:09     ` Lars Ingebrigtsen
2011-01-22 18:32       ` Peter Münster
2011-01-22 18:47         ` Lars Ingebrigtsen
2011-01-22 20:35           ` Peter Münster
2011-01-22 20:37             ` Lars Ingebrigtsen
2011-01-22 20:48               ` Peter Münster
2011-01-22 20:52                 ` Lars Ingebrigtsen

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 NNTP newsgroup(s).