Path: utzoo!attcan!telly!ziebmef!cks From: cks@ziebmef.uucp (Chris Siebenmann) Newsgroups: comp.sys.amiga.tech Subject: Re: New RKM:AutoDocs & Includes MAJOR problem! Message-ID: <1989Mar19.024539.20730@ziebmef.uucp> Date: 19 Mar 89 07:45:37 GMT References: <1467@percival.UUCP> <6195@cbmvax.UUCP> Reply-To: cks@ziebmef.UUCP (Chris Siebenmann) Organization: Ziebmef Public Access Unix, Toronto, Ontario Lines: 29 There's two orthagonal issues involved; how the libraries take their arguments, and how your compiler's stub functions (that call into the libraries) take theirs. For better or worse, the job of the RKM is to document how the libraries take their arguments, and in this context they are completely correct. Draw() only does look at the low 16 bits of some of its arguments. Now we come to Lattice. In the early days, Lattice had 32-bit-wide ints, so all arguments to functions were 32 bits wide, including arguments to RKM stub functions, and people wrote code to this assumption. Now along comes Manx, with either 16 or 32 bit ints. They could have chosen to define a new interface to the library functions, where shorts actually were passed as shorts in 16-bit int mode (and thus match the RKM descriptions), or maintain compatability with Lattice and make all parameters to libraries 32 bits wide. For better or for worse, they chose the latter, and lots of code has now been written that uses that fact. As Dave Haynie says, all these problems will got away when people move to function prototypes. -- "Though you may disappear, you're not forgotten here And I will say to you, I will do what I can do" Chris Siebenmann uunet!{utgpu!moore,attcan!telly}!ziebmef!cks cks@ziebmef.UUCP or .....!utgpu!{,ontmoh!,ncrcan!brambo!}cks