(nbuttons)
Lisp_Object nbuttons;
{
+ int n;
+
CHECK_NUMBER (nbuttons, 0);
- mouse_setup_buttons (XINT (nbuttons));
+ n = XINT (nbuttons);
+ if (n < 2 || n > 3)
+ Fsignal (Qargs_out_of_range,
+ Fcons (build_string ("only 2 or 3 mouse buttons are supported"),
+ Fcons (nbuttons, Qnil)));
+ mouse_setup_buttons (n);
return Qnil;
}
fg = bg;
bg = tem;
}
+ /* If the user requested inverse video, obey. */
+ if (inverse_video)
+ {
+ unsigned long tem2 = fg;
+
+ fg = bg;
+ bg = tem2;
+ }
if (termscript)
fprintf (termscript, "<FACE %d%s: %d/%d[FG:%d/BG:%d]>", face,
highlight ? "H" : "", fp->foreground, fp->background, fg, bg);
register GLYPH g = GLYPH_FROM_CHAR_GLYPH (*str);
int glyph_not_in_table = 0;
+ /* If g is negative, it means we have a multibyte character
+ in *str. That's what GLYPH_FROM_CHAR_GLYPH returns for
+ multibyte characters. */
if (g < 0 || g >= tlen)
{
/* This glyph doesn't have an entry in Vglyph_table. */
/* If the face of this glyph is different from the current
screen face, update the screen attribute byte. */
- cf = FAST_GLYPH_FACE (g);
+ cf = str->face_id;
if (cf != screen_face)
IT_set_face (cf); /* handles invalid faces gracefully */