After staring at it a little, I figured it out. It should be passing
(object *) to mkvalue(), not (object **) in listobject.c:cmp().
Here's the patch:
*** listobject.c.Save Thu Jul 29 01:25:08 1993
--- listobject.c Fri Aug 6 12:33:24 1993
***************
*** 520,526
return cmpobject(* (object **) v, * (object **) w);
/* Call the user-supplied comparison function */
! t = mkvalue("OO", v, w);
if (t == NULL)
return 0;
res = call_object(cmpfunc, t);
--- 520,526 -----
return cmpobject(* (object **) v, * (object **) w);
/* Call the user-supplied comparison function */
! t = mkvalue("OO", * (object **) v, * (object **) w);
if (t == NULL)
return 0;
res = call_object(cmpfunc, t);
Have fun,
-Jaap-