Further investigations.
1. strfnd() was originally in the c68 library/ies with three parameters
as I originally suspected. I don't know when it changed to lose the last
parameter which allows continuations, but when I grepped for strfnd in
the whole of the c68 include directory on my "hard disk" I found this:
string_h: int strfnd _p_((const char *, const char *));
cport_h: #define sd_instr(str,pattern) (strfnd(pattern,str,0)+1)
So it has changed at some point since 1992! Unfortiunately, it's
b*ggered the libguide. :-(
2. The undefined reference to _oserr in the linker MAP file is
definitely a bug in the libdbas_a library. When I compile a minimum
application to open the libguide as a file (FILE *) and close it, there
are no undefined references.
When I subsequently open and close it as a dbas database, there is. So
this is a problem in the DBAS system and as I no longer seem to have
SP07 for the dbas 2.12 version, I can't fix it. :-(
I can sort of get around it by defining an "int oserr" in my own code so
the extern int oserr in libdbas finds it, but I can't do anything with
it unfortunately.
A bit more testing, setting my oserr to 666 before every system call
shows that every dbas routine, that I tested, seems to reset my oserr to
0 if it worked.
Sigh.
Cheers,
Norm.
--
Norman Dunbar
Dunbar IT Consultants Ltd
Registered address:
Thorpe House
61 Richardshaw Lane
Pudsey
West Yorkshire
United Kingdom
LS28 7EL
Company Number: 05132767
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm