comparison src/glyphs.h @ 396:6719134a07c2 r21-2-13

Import from CVS: tag r21-2-13
author cvs
date Mon, 13 Aug 2007 11:12:05 +0200
parents aabb7f5b1c81
children 74fd4e045ea6
comparison
equal deleted inserted replaced
395:de2c2a7459d2 396:6719134a07c2
125 Lisp_Object val); 125 Lisp_Object val);
126 }; 126 };
127 127
128 /***** Calling an image-instantiator method *****/ 128 /***** Calling an image-instantiator method *****/
129 129
130 #define HAS_IIFORMAT_METH_P(mstruc, m) ((mstruc)->m##_method) 130 #define HAS_IIFORMAT_METH_P(mstruc, m) (((mstruc)->m##_method) != 0)
131 #define IIFORMAT_METH(mstruc, m, args) (((mstruc)->m##_method) args) 131 #define IIFORMAT_METH(mstruc, m, args) (((mstruc)->m##_method) args)
132 132
133 /* Call a void-returning specifier method, if it exists */ 133 /* Call a void-returning specifier method, if it exists */
134 #define MAYBE_IIFORMAT_METH(mstruc, m, args) \ 134 #define MAYBE_IIFORMAT_METH(mstruc, m, args) \
135 if (mstruc) \ 135 do { \
136 do { \ 136 struct image_instantiator_methods *MIM_mstruc = (mstruc); \
137 struct image_instantiator_methods *maybe_iiformat_meth_mstruc = (mstruc); \ 137 if (MIM_mstruc && HAS_IIFORMAT_METH_P (MIM_mstruc, m)) \
138 if (HAS_IIFORMAT_METH_P (maybe_iiformat_meth_mstruc, m)) \ 138 IIFORMAT_METH (MIM_mstruc, m, args); \
139 IIFORMAT_METH (maybe_iiformat_meth_mstruc, m, args); \ 139 } while (0)
140 } while (0) 140
141 141 #define MAYBE_IIFORMAT_DEVMETH(device, mstruc, m, args) \
142 #define MAYBE_IIFORMAT_DEVMETH(device, mstruc, m, args) \ 142 do { \
143 do { \ 143 struct image_instantiator_methods *MID_mstruc = \
144 struct image_instantiator_methods *_mstruc = decode_ii_device (device, mstruc); \ 144 decode_ii_device (device, mstruc); \
145 if (_mstruc) \ 145 if (MID_mstruc) \
146 MAYBE_IIFORMAT_METH(_mstruc, m, args); \ 146 MAYBE_IIFORMAT_METH(MID_mstruc, m, args); \
147 } while (0) 147 } while (0)
148 148
149 149
150 /* Call a specifier method, if it exists; otherwise return 150 /* Call a specifier method, if it exists; otherwise return
151 the specified value */ 151 the specified value */