[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
special Emacs internal symbol named "unbound" can escape causing mayhem
From: |
Joe Wells |
Subject: |
special Emacs internal symbol named "unbound" can escape causing mayhem |
Date: |
Tue, 17 Jan 2006 03:51:16 +0000 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
In certain circumstances, the special Emacs internal symbol named
"unbound" (not interned in the standard obarray) can be obtained as a
value by ordinary Lisp code. This causes various failures, especially
by Lisp code that tries to print this value.
Note that at least under some circumstances, the expression
(cdr (assq 'icon-top (cadadr (current-frame-configuration))))
will return this special internal symbol.
To reproduce this bug (at least this is how I encountered it):
1. Type "C-x r f x" (frame-configuration-to-register). This stores
a value including the return value of
(current-frame-configuration) in a register.
2. Type "M-x desktop-save RET RET". This tries to save various
aspects of Emacs's state in a file, including the value of
register-alist. This fails midway through formatting the contents
of the file when it tries to print the special internal symbol
named "unbound". Of course, the problem is that the Lisp code
stores this special symbol in some variable, which is then
considered to be unbound and an error is raised when the Lisp code
tries to use the value of the variable.
I'm using the Gentoo ebuild app-editors/emacs-22.0.50_pre20050225
which is based on a CVS snapshot from 2005-02-25.
--
Joe Wells
======================================================================
In GNU Emacs 22.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.6.8)
of 2005-08-06 on colinux
Distributor `The Cygwin/X Project', version 11.0.60802000
configured using `configure '--prefix=/usr' '--host=i686-pc-linux-gnu'
'--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share'
'--sysconfdir=/etc' '--localstatedir=/var/lib' '--build=i686-pc-linux-gnu'
'--enable-debug' '--program-suffix=.emacs-22.0.50' '--without-carbon'
'--disable-nls' '--with-x' '--with-xpm' '--with-toolkit-scroll-bars'
'--with-jpeg' '--with-tiff' '--with-gif' '--with-png' '--with-x-toolkit=gtk'
'CFLAGS= -march=pentium4 -O2 -pipe' 'build_alias=i686-pc-linux-gnu'
'host_alias=i686-pc-linux-gnu''
- special Emacs internal symbol named "unbound" can escape causing mayhem,
Joe Wells <=