this stuff was probably there to speed things up (Nat! is a
well-respected speed optimization fanatic).
You can use the following on Apple/GNUstep:
#ifndef GNU_RUNTIME /* NeXT RUNTIME */
#define EDObjcMsgSend(obj, sel) objc_msgSend((obj), (sel))
#define EDObjcMsgSend1(obj, sel, obj1) objc_msgSend((obj), (sel),
(obj1))
#define EDObjcMsgSend2(obj, sel, obj1, obj2) objc_msgSend((obj),
#(sel),
(obj1), (obj2))
#define EDObjcMsgSend3(obj, sel, obj1, obj2, obj3)
#objc_msgSend((obj),
(sel), (obj1), (obj2), (obj3))
#else /* GNU_RUNTIME */
#define EDObjcMsgSend(obj, sel) objc_msg_lookup((obj), (sel))((obj),
(sel))
#define EDObjcMsgSend1(obj, sel, obj1) objc_msg_lookup((obj),
(sel))((obj), (sel), (obj1))
#define EDObjcMsgSend2(obj, sel, obj1, obj2) objc_msg_lookup((obj),
(sel))((obj), (sel), (obj1), (obj2))
#define EDObjcMsgSend3(obj, sel, obj1, obj2, obj3)
objc_msg_lookup((obj), (sel))((obj), (sel), (obj1), (obj2), (obj3))
#endif