From: Clemens Heitzinger <address@hidden>
Date: Fri Jan 10, 2003 1:56:25 AM US/Pacific
To: address@hidden
Cc: address@hidden
Subject: Bug in xfaces.c (MacOSX, color-theme.el)
Dear Andrew,
Dear Steven,
I write to you since you are the main contributors to Carbon Emacs.
Thanks for your work. I compiled it from CVS and noticed that when I
load color-theme.el 6.5.0 and do, e.g., M-x color-theme-dark-blue2, I
get the following error:
Debugger entered--Lisp error: (wrong-type-argument symbolp 0)
internal-set-lisp-face-attribute(scroll-bar :background "grey75" 0)
set-face-attribute(scroll-bar nil :background "grey75")
face-spec-set(scroll-bar ((t (:background "grey75"))) nil)
color-theme-install-faces[...snipped...]
* call-interactively(color-theme-dark-blue2)
execute-extended-command(nil)
* call-interactively(execute-extended-command)
Thus I had a look at xfaces.c and noticed the following:
DEFUN ("internal-set-lisp-face-attribute",
Finternal_set_lisp_face_attribute,
Sinternal_set_lisp_face_attribute, 3, 4, 0,
doc: /* Set attribute ATTR of FACE to VALUE.
FRAME being a frame means change the face on that frame.
FRAME nil means change the face of the selected frame.
FRAME t means change the default for new frames.
FRAME 0 means change the face on all frames, and change the default
for new frames. */)
(face, attr, value, frame)
Lisp_Object face, attr, value, frame;
{
Lisp_Object lface;
Lisp_Object old_value = Qnil;
/* Set 1 if ATTR is QCfont. */
int font_attr_p = 0;
/* Set 1 if ATTR is one of font-related attributes other than
QCfont. */
int font_related_attr_p = 0;
CHECK_SYMBOL (face);
CHECK_SYMBOL (attr);
face = resolve_face_name (face);
/* If FRAME is 0, change face on all frames, and change the
default for new frames. */
if (INTEGERP (frame) && XINT (frame) == 0)
{
Lisp_Object tail;
Finternal_set_lisp_face_attribute (face, attr, value, Qt);
FOR_EACH_FRAME (tail, frame)
Finternal_set_lisp_face_attribute (face, attr, value, frame);
return face;
}
FOR_EACH_FRAME is supposed to iterate over all frames, but in this
last block "frame" is an integer. Maybe this is the problem. Anyway,
it works if I build it for X11.
Best regards,
Clemens
--
Dipl.-Ing. Dr. Clemens Heitzinger Research Scientist
Institute for Microelectronics, Technical University of Vienna, Austria
Phone +43-1-58801/36035, Fax +43-1-58801/36099
Email <mailto:address@hidden>