--E39vaYmALEf/7YXx Content-Type: text/plain; charset=us-ascii Content-Disposition: inline
Hi, On Sat, Apr 12, 2003 at 08:09:22PM -0500, Dave Huang wrote: > On Sat, Apr 12, 2003 at 01:51:11PM +0200, Henning Meier-Geinitz wrote: > > But this is with "./configure --enable-warnings", the default setting > > in the CVS version of SANE. > > Ah, okay... I used --enable-warnings and see the warnings now :) > It's complaining about the casts not having a full prototype for the > function arguments. Changing > status = (*(SANE_Status(*)())be->op[OP_INIT]) (&version, auth_callback); > to > status = (*(SANE_Status(*)(SANE_Int *, SANE_Auth_Callback))be->op[OP_INIT]) > (&version, auth_callback); > > fixes the warning. However, it's messy and hard to read :) David > Stevenson's suggestion to use typedefs is a good one... so what about > the following patch? I think that one is ok. Thanks. I'll do some more testing on different platforms but I don't expect problems. > Also, a question about sane_open()... its second argument is declared as > SANE_Handle * in the backends, but the dll backend is passing &handle, > which is a SANE_Handle **. You are right. You've found a very old bug. It hasn't caused trouble because a pointer to a pointer is still a pointer but anyway, the fix is simple: Use SANE_Handle handle; instead of SANE_Handle *handle; in sane_open(). I have fixed some more warnings that happen with static linking. Could you please try on your 68k system if compiling with ./configure --disable-shared also works? I'll attach the complete dll backend because there have been some other (minor) changes. I've applied the code to CVS now. Bye, Henning --E39vaYmALEf/7YXx Content-Type: application/octet-stream Content-Disposition: attachment; filename="dll.c.gz" Content-Transfer-Encoding: base64 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 --E39vaYmALEf/7YXx--