emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fwd: Bug in xfaces.c


From: Steven Tamm
Subject: Fwd: Bug in xfaces.c
Date: Fri, 10 Jan 2003 07:53:43 -0800

Anyone else seen this error. Is it reproducible on platforms other than Mac OS X?

-Steven

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>






reply via email to

[Prev in Thread] Current Thread [Next in Thread]