From xemacs-m  Sat Jun 28 13:12:30 1997
Received: from jagor.srce.hr (hniksic@jagor.srce.hr [161.53.2.130])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id NAA16849
	for <xemacs-beta@xemacs.org>; Sat, 28 Jun 1997 13:12:29 -0500 (CDT)
Received: (from hniksic@localhost)
          by jagor.srce.hr (8.8.5/8.8.4)
	  id UAA27961; Sat, 28 Jun 1997 20:12:30 +0200 (MET DST)
To: XEmacs Developers <xemacs-beta@xemacs.org>
Subject: Re: XEmacs internal corruption integer `0' plist -- test case
References: <m2k9jeppxm.fsf@altair.xemacs.org>
X-Attribution: Hrv
X-Face: Mie8:rOV<\c/~z{s.X4A{!?vY7{drJ([U]0O=W/<W*SMo/Mv:58:*_y~ki>xDi&N7XG
        KV^$k0m3Oe/)'e%3=$PCR&3ITUXH,cK>]bci&<qQ>Ff%x_>1`T(+M2Gg/fgndU%k*ft
        [(7._6e0n-V%|%'[c|q:;}td$#INd+;?!-V=c8Pqf}3J
From: Hrvoje Niksic <hniksic@srce.hr>
Date: 28 Jun 1997 20:12:30 +0200
In-Reply-To: Steven L Baur's message of "28 Jun 1997 11:01:25 -0700"
Message-ID: <kig90zuvbox.fsf@jagor.srce.hr>
Lines: 54
X-Mailer: Gnus v5.4.59/XEmacs 20.3(beta9) - "Sofia"

Steven L Baur <steve@xemacs.org> writes:

> (mapatoms (lambda (symbol)
> 	    (condition-case nil
> 		(get symbol 'custom-group)
> 	      (t (message "Bad plist in %s, %s"
> 			  (symbol-name symbol)
> 			  (prin1-to-string (object-plist symbol)))))))

Even simpler (and faster, as it doesn't involve `condition-case':

(let (x)
  (mapatoms (lambda (s)
              (or (listp (object-plist s))
                  (push s x))))
  x)

This will return a list of naughty symbols.  BTW, both versions print
nothing for me.

> This problem has probably been around for (at least) a couple weeks
> now.

We need to know what package destroys the plists.  Since symbols are
the only objects that you can set plists to explicitly, I'd say a
stray `setplist' is the source of the problem.  Using shotgun
approach:

$ egrep setplist **/*.el
cl/cl-extra.el:  (setplist '--cl-getf-symbol-- plist)
cl/cl-extra.el: (progn (setplist sym (cdr (cdr plist))) t)
cl/cl-macs.el:(defsetf symbol-plist setplist)
hyperbole/hbut.el:        (setplist hbut sublist))
hyperbole/hbut.el:      (setplist hbut nil)
hyperbole/hbut.el:    (setplist to-hbut (copy-sequence (symbol-plist from-hbut))))
hyperbole/hbut.el:       (setplist '(, sym) (, property-list))
hyperbole/hbut.el:    (setplist sym nil)
hyperbole/kotl/kotl-mode.el:              (setplist local-cmd (symbol-plist cmd)) 
hyperbole/kotl/kotl-mode.el:            (setplist local-cmd (symbol-plist cmd)) 
ilisp/ilisp-menu.el:       (setplist 'lisp-command-menu nil)
ilisp/ilisp-menu.el:       (setplist 'documentation-lisp-command-menu nil)
ilisp/ilisp-mnb.el:;;;(setplist 'lisp-command-menu nil)
ilisp/ilisp-mnb.el:;;;(setplist 'documentation-lisp-command-menu nil)
modes/abbrev.el:    (setplist sym (or count 0))
packages/vc-hooks.el:  (setplist (intern file vc-file-prop-obarray) nil))

As I suspected, the one in abbrev.el looks *very* /very/ _very_
_*very*_ suspicious to me (does the 0 look familiar?)

-- 
Hrvoje Niksic <hniksic@srce.hr> | Student at FER Zagreb, Croatia
--------------------------------+--------------------------------
Unspeakable horrors from outer space paralyze the living and
resurrect the dead!

