* fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive case.

Fixes: debbugs:9752
This commit is contained in:
Chong Yidong 2012-06-09 15:27:15 +08:00
parent 6175e34b61
commit 4428609619
2 changed files with 14 additions and 5 deletions

View file

@ -1,3 +1,8 @@
2012-06-09 Chong Yidong <cyd@gnu.org>
* fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
case (Bug#9752).
2012-06-08 Paul Eggert <eggert@cs.ucla.edu>
* xdisp.c (vmessage): Treat frame message as multibyte.

View file

@ -1671,23 +1671,27 @@ If FACE is nil, reset face to default fringe face. */)
(Lisp_Object bitmap, Lisp_Object face)
{
int n;
int face_id;
CHECK_SYMBOL (bitmap);
n = lookup_fringe_bitmap (bitmap);
if (!n)
error ("Undefined fringe bitmap");
/* The purpose of the following code is to signal an error if FACE
is not a face. This is for the caller's convenience only; the
redisplay code should be able to fail gracefully. Skip the check
if FRINGE_FACE_ID is unrealized (as in batch mode and during
daemon startup). */
if (!NILP (face))
{
face_id = lookup_derived_face (SELECTED_FRAME (), face,
FRINGE_FACE_ID, 1);
if (face_id < 0)
struct frame *f = SELECTED_FRAME ();
if (FACE_FROM_ID (f, FRINGE_FACE_ID)
&& lookup_derived_face (f, face, FRINGE_FACE_ID, 1) < 0)
error ("No such face");
}
fringe_faces[n] = face;
return Qnil;
}