comparison src/xfaces.c @ 9944:dd9afae74baf

(Fpixmap_spec_p): Avoid function calls and assignments as arguments to a type-test macro.
author Karl Heuer <kwzh@gnu.org>
date Tue, 15 Nov 1994 22:53:26 +0000
parents 32ed712a45a3
children b4bfe218c4ca
comparison
equal deleted inserted replaced
9943:4e6e0478baef 9944:dd9afae74baf
390 { 390 {
391 Lisp_Object height, width; 391 Lisp_Object height, width;
392 392
393 return ((STRINGP (arg) 393 return ((STRINGP (arg)
394 || (CONSP (arg) 394 || (CONSP (arg)
395 && CONSP (Fcdr (arg)) 395 && CONSP (XCONS (arg)->cdr)
396 && CONSP (Fcdr (Fcdr (arg))) 396 && CONSP (XCONS (XCONS (arg)->cdr)->cdr)
397 && NILP (Fcdr (Fcdr (Fcdr (arg)))) 397 && NILP (XCONS (XCONS (XCONS (arg)->cdr)->cdr)->cdr)
398 && INTEGERP (width = Fcar (arg)) 398 && (width = XCONS (arg)->car, INTEGERP (width))
399 && INTEGERP (height = Fcar (Fcdr (arg))) 399 && (height = XCONS (XCONS (arg)->cdr)->car, INTEGERP (height))
400 && STRINGP (Fcar (Fcdr (Fcdr (arg)))) 400 && STRINGP (XCONS (XCONS (XCONS (arg)->cdr)->cdr)->car)
401 && XINT (width) > 0 401 && XINT (width) > 0
402 && XINT (height) > 0 402 && XINT (height) > 0
403 /* The string must have enough bits for width * height. */ 403 /* The string must have enough bits for width * height. */
404 && (XINT (width) * XINT (height) 404 && ((XSTRING (XCONS (XCONS (XCONS (arg)->cdr)->cdr)->car)->size
405 <= (XSTRING (Fcar (Fcdr (Fcdr (arg))))->size 405 * (INTBITS / sizeof (int)))
406 * (INTBITS / sizeof (int)))))) 406 >= XFASTINT (width) * XFASTINT (height))))
407 ? Qt : Qnil); 407 ? Qt : Qnil);
408 } 408 }
409 409
410 /* Load a bitmap according to NAME (which is either a file name 410 /* Load a bitmap according to NAME (which is either a file name
411 or a pixmap spec). Return the bitmap_id (see xfns.c) 411 or a pixmap spec). Return the bitmap_id (see xfns.c)