[comp.sys.mac.programmer] MPW C Glue problem

nopuklic@ndsuvax.UUCP (Blayne Puklich) (06/15/88)

     One more posting today before I go home.  I have what I think may
be a problem with the MPW C glue for the Toolbox routine SetItemCmd (IM
vol V).  What I see happen is when I pass it a short having the value
$1B to tack on a hierarchical menu (for the third parameter, a Pascal
character), the glue pushes a byte onto the stack, which is the $1B.
When SetItemCmd comes to MOVE.B the character into place, it grabs the
byte just after the $1B.  This happens no matter how I declare the short.
I have even tried to use a char, *char, *short, almost anything logical
I could think of.  What the heck am I missing?  According to what I found
in the MPW C manual I'm supposed to use a short in place of Pascal
characters, and I tried that.  But I shouldn't have to worry about it
when the glue should be taking care of it for me.
     The MPW C header for the routine (in Menus.h) shows that it should
be a char.  I've tried to use a char, it doesn't work.  This is pretty
frustrating because there is nothing I can do short of DelMenuItem and
InsMenuItem, redoing the whole menu item.  I should be able to get by
with just stuffing that byte into the MenuInfo record using SetItemCmd, but
it just doesn't work.
     Matter of fact, when I use GetItemCmd to see if the state the user
left the menu in had hierarchical menus, I have to play with some
address arithmetic.  What am I supposed to use for a type with these
routines?  char doesn't work, neither does short, nor does a pointer
to any of these types.  Show me what I'm missing so I can feel like an
idiot for a few days...
     Thanks!

||+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++||
||	Blayne Puklich			ndsuvax!nopuklic		   ||
||	NDSU Student ACM     use this-> NU087763@NDSUVM1.bitnet		   ||
||	Chairperson		  North Dakota State University, Fargo, ND ||
||									   ||
||		"Everyone should have a Corvette, I think."		   ||
||-------------------------------------------------------------------------||