Gnus development mailing list
 help / color / mirror / Atom feed
* Can't customize nnimap groups
@ 2000-01-27  6:01 Hal Snyder
  2000-01-27 10:13 ` Kai Großjohann
  2000-01-27 21:29 ` Simon Josefsson
  0 siblings, 2 replies; 5+ messages in thread
From: Hal Snyder @ 2000-01-27  6:01 UTC (permalink / raw)


For quite some time now I haven't been able to customize groups
fetched via nnimap. Editor is Xemacs 21.1.7 or 8. Gnus is anything
from the last few months.

Doing "G c" on an nnimap group in the Group buffer builds the
customize screen up to "highlight regexps." then displays

  Wrong type argument: listp "428571428"

in the minibuffer. I can make changes in the buffer, but attempts to
save fail with "symbol's definition is void: nil" and it's necessary
to abort to get out of the buffer.

Ideas?


Here's the backtrace from debug-on-error:

Signaling: (wrong-type-argument listp "428571428")
  widget-match-inline((sexp :value "nil" :tag "Value") "428571428")
  widget-group-match-inline((list :format "%v" :value (nil nil) :args ((symbol :value "nil" :tag "Variable") (sexp :value "nil" :tag "Value"))) (uidvalidity . "428571428"))
  widget-group-match((list :format "%v" :value (nil nil) :args ((symbol :value "nil" :tag "Variable") (sexp :value "nil" :tag "Value"))) (uidvalidity . "428571428"))
  widget-apply((list :format "%v" :value (nil nil) :args ((symbol :value "nil" :tag "Variable") (sexp :value "nil" :tag "Value"))) :match (uidvalidity . "428571428"))
  widget-match-inline((list :format "%v" :value (nil nil) :args ((symbol :value "nil" :tag "Variable") (sexp :value "nil" :tag "Value"))) ((uidvalidity . "428571428")))
  widget-editable-list-match-inline((repeat :inline t :tag "Variables" :format "%t:\n%h%v%i\n\n" :doc "Set variables local to the group you are entering.\n\nIf you want to turn threading off in `news.answers', you could put\n`(gnus-show-threads nil)' in the group parameters of that group.\n`gnus-show-threads' will be made into a local variable in the summary\nbuffer you enter, and the form `nil' will be `eval'ed there.\n\nThis can also be used as a group-specific hook function, if you'd\nlike.  If you want to hear a beep when you enter a group, you could\nput something like `(dummy-variable (ding))' in the parameters of that\ngroup.  `dummy-variable' will be set to the result of the `(ding)'\nform, but who cares?" :args ((list :format "%v" :value ... :args ...))) ((uidvalidity . "428571428")))
  widget-apply((repeat :inline t :tag "Variables" :format "%t:\n%h%v%i\n\n" :doc "Set variables local to the group you are entering.\n\nIf you want to turn threading off in `news.answers', you could put\n`(gnus-show-threads nil)' in the group parameters of that group.\n`gnus-show-threads' will be made into a local variable in the summary\nbuffer you enter, and the form `nil' will be `eval'ed there.\n\nThis can also be used as a group-specific hook function, if you'd\nlike.  If you want to hear a beep when you enter a group, you could\nput something like `(dummy-variable (ding))' in the parameters of that\ngroup.  `dummy-variable' will be set to the result of the `(ding)'\nform, but who cares?" :args ((list :format "%v" :value ... :args ...))) :match-inline ((uidvalidity . "428571428")))
  widget-match-inline((repeat :inline t :tag "Variables" :format "%t:\n%h%v%i\n\n" :doc "Set variables local to the group you are entering.\n\nIf you want to turn threading off in `news.answers', you could put\n`(gnus-show-threads nil)' in the group parameters of that group.\n`gnus-show-threads' will be made into a local variable in the summary\nbuffer you enter, and the form `nil' will be `eval'ed there.\n\nThis can also be used as a group-specific hook function, if you'd\nlike.  If you want to hear a beep when you enter a group, you could\nput something like `(dummy-variable (ding))' in the parameters of that\ngroup.  `dummy-variable' will be set to the result of the `(ding)'\nform, but who cares?" :args ((list :format "%v" :value ... :args ...))) ((uidvalidity . "428571428")))
  widget-group-value-create((group :value ((uidvalidity . "428571428") (gcc-self . t)) :args ((set :inline t :greedy t :tag "Parameters" :format "%t:\n%h%v" :doc "These special parameters are recognized by Gnus.\nCheck the [ ] for the parameters you want to apply to this group or\nto the groups in this topic, then edit the value to suit your taste." :args ...) (repeat :inline t :tag "Variables" :format "%t:\n%h%v%i\n\n" :doc "Set variables local to the group you are entering.\n\nIf you want to turn threading off in `news.answers', you could put\n`(gnus-show-threads nil)' in the group parameters of that group.\n`gnus-show-threads' will be made into a local variable in the summary\nbuffer you enter, and the form `nil' will be `eval'ed there.\n\nThis can also be used as a group-specific hook function, if you'd\nlike.  If you want to hear a beep when you enter a group, you could\nput something like `(dummy-variable (ding))' in the parameters of that\ngroup.  `dummy-variable' will
  !
!
be set to the result of the `(ding)'\nform, but who cares?" :args ...) (repeat :inline t :tag "Unknown entries" :args ...))))
  widget-apply((group :value ((uidvalidity . "428571428") (gcc-self . t)) :args ((set :inline t :greedy t :tag "Parameters" :format "%t:\n%h%v" :doc "These special parameters are recognized by Gnus.\nCheck the [ ] for the parameters you want to apply to this group or\nto the groups in this topic, then edit the value to suit your taste." :args ...) (repeat :inline t :tag "Variables" :format "%t:\n%h%v%i\n\n" :doc "Set variables local to the group you are entering.\n\nIf you want to turn threading off in `news.answers', you could put\n`(gnus-show-threads nil)' in the group parameters of that group.\n`gnus-show-threads' will be made into a local variable in the summary\nbuffer you enter, and the form `nil' will be `eval'ed there.\n\nThis can also be used as a group-specific hook function, if you'd\nlike.  If you want to hear a beep when you enter a group, you could\nput something like `(dummy-variable (ding))' in the parameters of that\ngroup.  `dummy-variable' will be set to th
 e!
!
 result of the `(ding)'\nform, but who cares?" :args ...) (repeat :inline t :tag "Unknown entries" :args ...))) :value-create)
  widget-default-create((group :value ((uidvalidity . "428571428") (gcc-self . t)) :args ((set :inline t :greedy t :tag "Parameters" :format "%t:\n%h%v" :doc "These special parameters are recognized by Gnus.\nCheck the [ ] for the parameters you want to apply to this group or\nto the groups in this topic, then edit the value to suit your taste." :args ...) (repeat :inline t :tag "Variables" :format "%t:\n%h%v%i\n\n" :doc "Set variables local to the group you are entering.\n\nIf you want to turn threading off in `news.answers', you could put\n`(gnus-show-threads nil)' in the group parameters of that group.\n`gnus-show-threads' will be made into a local variable in the summary\nbuffer you enter, and the form `nil' will be `eval'ed there.\n\nThis can also be used as a group-specific hook function, if you'd\nlike.  If you want to hear a beep when you enter a group, you could\nput something like `(dummy-variable (ding))' in the parameters of that\ngroup.  `dummy-variable' will be 
 s!
!
et to the result of the `(ding)'\nform, but who cares?" :args ...) (repeat :inline t :tag "Unknown entries" :args ...))))
  widget-apply((group :value ((uidvalidity . "428571428") (gcc-self . t)) :args ((set :inline t :greedy t :tag "Parameters" :format "%t:\n%h%v" :doc "These special parameters are recognized by Gnus.\nCheck the [ ] for the parameters you want to apply to this group or\nto the groups in this topic, then edit the value to suit your taste." :args ...) (repeat :inline t :tag "Variables" :format "%t:\n%h%v%i\n\n" :doc "Set variables local to the group you are entering.\n\nIf you want to turn threading off in `news.answers', you could put\n`(gnus-show-threads nil)' in the group parameters of that group.\n`gnus-show-threads' will be made into a local variable in the summary\nbuffer you enter, and the form `nil' will be `eval'ed there.\n\nThis can also be used as a group-specific hook function, if you'd\nlike.  If you want to hear a beep when you enter a group, you could\nput something like `(dummy-variable (ding))' in the parameters of that\ngroup.  `dummy-variable' will be set to th
 e!
!
 result of the `(ding)'\nform, but who cares?" :args ...) (repeat :inline t :tag "Unknown entries" :args ...))) :create)
  widget-create(group :value ((uidvalidity . "428571428") (gcc-self . t)) (set :inline t :greedy t :tag "Parameters" :format "%t:\n%h%v" :doc "These special parameters are recognized by Gnus.\nCheck the [ ] for the parameters you want to apply to this group or\nto the groups in this topic, then edit the value to suit your taste." (cons :format "%v%h\n" :doc "This will be used when doing followups and posts.\n\nThis is primarily useful in mail groups that represent closed\nmailing lists--mailing lists where it's expected that everybody that\nwrites to the mailing list is subscribed to it.  Since using this\nparameter ensures that the mail only goes to the mailing list itself,\nit means that members won't receive two copies of your followups.\n\nUsing `to-address' will actually work whether the group is foreign or\nnot.  Let's say there's a group on the server that is called\n`fa.4ad-l'.  This is a real newsgroup, but the server has gotten the\narticles from a mail-to-news gate
 w!
!
ay.  Posting directly to this group\nis therefore impossible--you have to send mail to the mailing list\naddress instead.\n\nThe gnus-group-split mail splitting mechanism will behave as if this\naddress was listed in gnus-group-split Addresses (see below)." (const :format "" to-address) (gnus-email-address :tag "To Address")) (cons :format "%v%h\n" :doc "This address will be used when doing a `a' in the group.\n\nIt is totally ignored when doing a followup--except that if it is\npresent in a news group, you'll get mail group semantics when doing\n`f'.\n\nThe gnus-group-split mail splitting mechanism will behave as if this\naddress was listed in gnus-group-split Addresses (see below)." (const :format "" to-list) (gnus-email-address :tag "To List")) (cons :format "%v%h\n" :doc "Store messages posted from or to this address in this group.\n\nYou must be using gnus-group-split for this to work.  The VALUE of the\nnnmail-split-fancy SPLIT generated for this group will match these\
 n!
!
addresses." (const :format "" extra-aliases) (choice :tag "!
Extra Aliases" ... ...)) (cons :format "%v%h\n" :doc "Like gnus-group-split Address, but expects a regular expression." (const :format "" split-regexp) (regexp :tag "gnus-group-split Regular Expression")) (cons :format "%v%h\n" :doc "Regular expression that cancels gnus-group-split matches.\n\nEach entry is added to the nnmail-split-fancy SPLIT as a separate\nRESTRICT clause." (const :format "" split-exclude) (list :tag "gnus-group-split Restricts" ...)) (cons :format "%v%h\n" :doc "Override all other gnus-group-split fields.\n\nIn `Fancy Split', you can enter any nnmail-split-fancy SPLIT.  Note\nthat the name of this group won't be automatically assumed, you have\nto add it to the SPLITs yourself.  This means you can use such splits\nto split messages to other groups too.\n\nIf you select `Catch All', this group will get postings for any\nmessages not matched in any other group.  It overrides the variable\ngnus-group-split-default-catch-all-group.\n\nSelecting `Ignore' force
 s!
!
 no SPLIT to be generated for this group,\ndisabling all other gnus-group-split fields." (const :format "" split-spec) (choice :tag "gnus-group-split Overrider" ... ... ...)) (cons :format "%v%h\n" :doc "Ignore `Reply-To' headers in this group.\n\nThat can be useful if you're reading a mailing list group where the\nlistserv has inserted `Reply-To' headers that point back to the\nlistserv itself.  This is broken behavior.  So there!" (const :format "" broken-reply-to) (const :tag "Broken Reply To" t)) (cons :format "%v%h\n" :doc "All posts will be send to the specified group." (const :format "" to-group) (string :tag "To Group")) (cons :format "%v%h\n" :doc "Specify default value for GCC header.\n\nIf this symbol is present in the group parameter list and set to `t',\nnew composed messages will be `Gcc''d to the current group.  If it is\npresent and set to `none', no `Gcc:' header will be generated, if it\nis present and a string, this string will be inserted literally as a\n`
 g!
!
cc' header (this symbol takes precedence over any default `!
Gcc'\nrules as described later)." (const :format "" gcc-self) (choice :tag "GCC" :value t ... ... ...)) (cons :format "%v%h\n" :doc "Banner to be removed from articles." (const :format "" banner) (choice :tag "Banner" ... string ...)) (cons :format "%v%h\n" :doc "All articles that are read will be marked as expirable." (const :format "" auto-expire) (const :tag "Automatic Expire" t)) (cons :format "%v%h\n" :doc "All read articles will be put through the expiry process\n\nThis happens even if they are not marked as expirable.\nUse with caution." (const :format "" total-expire) (const :tag "Total Expire" t)) (cons :format "%v%h\n" :doc "When to expire.\n\nOverrides any `nnmail-expiry-wait' and `nnmail-expiry-wait-function'\nwhen expiring expirable messages.  The value can either be a number of\ndays (not necessarily an integer) or the symbols `never' or\n`immediate'." (const :format "" expiry-wait) (choice :tag "Expire Wait" :value never ... ... ...)) (cons :format "%v%h\n" :do
 c!
!
 "Make the specified file into the current score file.\nThis means that all score commands you issue will end up in this file." (const :format "" score-file) (file :tag "Score File")) (cons :format "%v%h\n" :doc "Make the specified file into the current adaptive file.\nAll adaptive score entries will be put into this file." (const :format "" adapt-file) (file :tag "Adapt File")) (cons :format "%v%h\n" :doc "Administration address for a mailing list.\n\nWhen unsubscribing to a mailing list you should never send the\nunsubscription notice to the mailing list itself.  Instead, you'd\nsend messages to the administrative address.  This parameter allows\nyou to put the admin address somewhere convenient." (const :format "" admin-address) (gnus-email-address :tag "Admin Address")) (cons :format "%v%h\n" :doc "Which articles to display on entering the group.\n\n`all'\n     Display all articles, both read and unread.\n\n`default'\n     Display the default visible articles, which norma
 l!
!
ly includes\n     unread and ticked articles." (const :form!
at "" display) (choice :tag "Display" :value default ... ...)) (cons :format "%v%h\n" :doc "An arbitrary comment on the group." (const :format "" comment) (string :tag "Comment")) (cons :format "%v%h\n" :doc "Always display this group, even when there are no unread articles\nin it.." (const :format "" visible) (const :tag "Permanently visible" t)) (cons :format "%v%h\n" :doc "The default charset to use in the group." (const :format "" charset) (symbol :tag "Charset")) (cons :format "%v%h\n" :doc "List of charsets that should be ignored.\n\nWhen these charsets are used in the \"charset\" parameter, the\ndefault charset will be used instead." (const :format "" ignored-charsets) (choice :tag "Ignored charsets" :value nil ...)) (cons :format "%v%h\n" :doc "highlight regexps.\nSee gnus-emphasis-alist." (const :format "" highlight-words) (choice :tag "Highlight words" :value nil ...))) (repeat :inline t :tag "Variables" :format "%t:\n%h%v%i\n\n" :doc "Set variables local to the gro
 u!
!
p you are entering.\n\nIf you want to turn threading off in `news.answers', you could put\n`(gnus-show-threads nil)' in the group parameters of that group.\n`gnus-show-threads' will be made into a local variable in the summary\nbuffer you enter, and the form `nil' will be `eval'ed there.\n\nThis can also be used as a group-specific hook function, if you'd\nlike.  If you want to hear a beep when you enter a group, you could\nput something like `(dummy-variable (ding))' in the parameters of that\ngroup.  `dummy-variable' will be set to the result of the `(ding)'\nform, but who cares?" (list :format "%v" :value (nil nil) (symbol :tag "Variable") (sexp :tag "Value"))) (repeat :inline t :tag "Unknown entries" sexp))
  #<compiled-function (group &optional topic) "...(260)" [nil mapcar #<compiled-function ... "...(19)" ... 9> append gnus-group-parameters group gnus-extra-group-parameters gnus-extra-topic-parameters types info topic error "No group on current line" "Both a group an topic on current line" 2 intern-soft gnus-newsrc-hashtb "Killed group; can't be edited" kill-buffer gnus-get-buffer-create "*Gnus Customize*" switch-to-buffer gnus-custom-mode make-local-variable gnus-custom-group gnus-custom-topic widget-insert "Customize the " widget-create info-link :help-echo "Push me to learn more." :tag "group parameters" "(gnus)Group Parameters" "topic parameters" "(gnus)Topic Parameters" " for <" "> and press " push-button "done" "Push me when done customizing." :action gnus-group-customize-done ".\n\n" gnus-custom-params :value 5 gnus-topic-parameters set ...] 16 ("/home/hal/gnus/lisp/gnus-cus.elc" . 8829) (list (gnus-group-group-name) (gnus-group-topic-name))>("nnimap+gator:INBOX.spam" 
 n!
!
il)
  call-interactively(gnus-group-customize)

-- 
Hal Snyder
Vail Systems, Inc



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

* Re: Can't customize nnimap groups
  2000-01-27  6:01 Can't customize nnimap groups Hal Snyder
@ 2000-01-27 10:13 ` Kai Großjohann
  2000-01-27 21:29 ` Simon Josefsson
  1 sibling, 0 replies; 5+ messages in thread
From: Kai Großjohann @ 2000-01-27 10:13 UTC (permalink / raw)
  Cc: ding

Try `G p' on the group and remove the (uidvalidity ...) thing.  Take
care to remove exactly one pair of parens.  Does that help?

Maybe nnimap should use a different format for storing the uidvalidity
stuff? 
kai
-- 
A large number of young women don't trust men with beards.  (BFBS Radio)



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

* Re: Can't customize nnimap groups
  2000-01-27  6:01 Can't customize nnimap groups Hal Snyder
  2000-01-27 10:13 ` Kai Großjohann
@ 2000-01-27 21:29 ` Simon Josefsson
  2000-02-02  9:23   ` Christoph Rohland
  1 sibling, 1 reply; 5+ messages in thread
From: Simon Josefsson @ 2000-01-27 21:29 UTC (permalink / raw)
  Cc: ding

Hal Snyder <hal@vailsys.com> writes:

> Doing "G c" on an nnimap group in the Group buffer builds the
> customize screen up to "highlight regexps." then displays
> 
>   Wrong type argument: listp "428571428"
> 
> in the minibuffer. I can make changes in the buffer, but attempts to
> save fail with "symbol's definition is void: nil" and it's necessary
> to abort to get out of the buffer.

I tracked this down as a Customize or a Customize-usage problem in
Gnus (I don't know the first thing about Customize so I couldn't tell
the difference, even after edebuging through the lot of it), I think I
mailed a bug report about it somewhere.

It should be possible to reproduce this problem simply by putting a
group parameter such as

((foo . "42"))

or something, and invoke `gnus-group-customize'.



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

* Re: Can't customize nnimap groups
  2000-01-27 21:29 ` Simon Josefsson
@ 2000-02-02  9:23   ` Christoph Rohland
  2000-02-02 11:04     ` Per Abrahamsen
  0 siblings, 1 reply; 5+ messages in thread
From: Christoph Rohland @ 2000-02-02  9:23 UTC (permalink / raw)
  Cc: Hal Snyder, ding

Simon Josefsson <jas@pdc.kth.se> writes:

> Hal Snyder <hal@vailsys.com> writes:
> 
> > Doing "G c" on an nnimap group in the Group buffer builds the
> > customize screen up to "highlight regexps." then displays
> > 
> >   Wrong type argument: listp "428571428"
> > 
> > in the minibuffer. I can make changes in the buffer, but attempts to
> > save fail with "symbol's definition is void: nil" and it's necessary
> > to abort to get out of the buffer.
> 
> I tracked this down as a Customize or a Customize-usage problem in
> Gnus (I don't know the first thing about Customize so I couldn't tell
> the difference, even after edebuging through the lot of it), I think I
> mailed a bug report about it somewhere.
> 
> It should be possible to reproduce this problem simply by putting a
> group parameter such as
> 
> ((foo . "42"))

But this is only supported for know group parameters. Other variables
should be set with ((foo "42)). That's how I read the info file.

Greetings
		Christoph



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

* Re: Can't customize nnimap groups
  2000-02-02  9:23   ` Christoph Rohland
@ 2000-02-02 11:04     ` Per Abrahamsen
  0 siblings, 0 replies; 5+ messages in thread
From: Per Abrahamsen @ 2000-02-02 11:04 UTC (permalink / raw)


Christoph Rohland <hans-christoph.rohland@sap.com> writes:

> But this is only supported for know group parameters. Other variables
> should be set with ((foo "42)). That's how I read the info file.

Actually, it is both.  Variables are supposed to be of the form above,
but customize is supposed to be robust enough to handle unknown group
parameters.   

This patch should fix the problem.

2000-02-02  Per Abrahamsen  <abraham@dina.kvl.dk>

	* wid-edit.el (widget-match-inline): An atom never matches a
          list.  

Index: wid-edit.el
===================================================================
RCS file: /gd/gnu/cvsroot/emacs/lisp/wid-edit.el,v
retrieving revision 1.62
diff -c -r1.62 wid-edit.el
*** wid-edit.el	1999/11/09 13:42:34	1.62
--- wid-edit.el	2000/02/02 10:56:09
***************
*** 1,6 ****
  ;;; wid-edit.el --- Functions for creating and using widgets.
  ;;
! ;; Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
  ;;
  ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
  ;; Maintainer: FSF
--- 1,6 ----
  ;;; wid-edit.el --- Functions for creating and using widgets.
  ;;
! ;; Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
  ;;
  ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
  ;; Maintainer: FSF
***************
*** 492,498 ****
    "In WIDGET, match the start of VALS."
    (cond ((widget-get widget :inline)
  	 (widget-apply widget :match-inline vals))
! 	((and vals
  	      (widget-apply widget :match (car vals)))
  	 (cons (list (car vals)) (cdr vals)))
  	(t nil)))
--- 492,498 ----
    "In WIDGET, match the start of VALS."
    (cond ((widget-get widget :inline)
  	 (widget-apply widget :match-inline vals))
! 	((and (listp vals)
  	      (widget-apply widget :match (car vals)))
  	 (cons (list (car vals)) (cdr vals)))
  	(t nil)))



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

end of thread, other threads:[~2000-02-02 11:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-01-27  6:01 Can't customize nnimap groups Hal Snyder
2000-01-27 10:13 ` Kai Großjohann
2000-01-27 21:29 ` Simon Josefsson
2000-02-02  9:23   ` Christoph Rohland
2000-02-02 11:04     ` Per Abrahamsen

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).