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

Reply via email to