## Rules for the TADS 3 test suite. ## Set up some env. variables needed by the test scripts. We must ## always use absolute paths here, as the scripts might 'cd'. ## TESTS_ENVIRONMENT = \ T3_DAT="@abs_srcdir@/tads3/test/data" \ T3_LOG="@abs_srcdir@/tads3/test/log" \ T3_OUT="@abs_builddir@/test/out" \ T3_RESDIR="@abs_srcdir@/tads3" \ T3_INCDIR="@abs_srcdir@/tads3/include" \ T3_LIBDIR="@abs_srcdir@/tads3/lib" \ SCRIPTS="@abs_srcdir@/testscripts" \ TESTPROGS="@abs_builddir@/test" \ t3make="@abs_builddir@/t3make" ## The test binaries. We'll also build the 't3pre' utility, since it's ## required by the test suite. ## check_PROGRAMS = \ test/t3pre \ test/test_pool \ test/test_utf8 \ test/test_chr \ test/test_gets \ test/test_err \ test/test_regex \ test/test_obj \ test/test_sort \ test/test_write \ test/test_exec \ test/test_tok \ test/test_prs \ test/test_sym \ test/test_prs_top \ test/test_comp_obj \ test/test_link ## Test programs to be executed (can be both scripts and binaries). ## TESTS = \ test/test_obj \ testscripts/test_pp.sh \ testscripts/test_ex.sh \ testscripts/all_make.sh \ testscripts/test_pre.sh # Extra compiler sources for dynamic code compilation in interpreter. # DYN_COMP_OBJS = \ tads3/vmrunsym.cpp \ tads3/tcprs.cpp \ tads3/tcprs_rt.cpp \ tads3/tcprsnf.cpp \ tads3/tcprsstm.cpp \ tads3/tcprsnl.cpp \ tads3/tcgen.cpp \ tads3/tcglob.cpp \ tads3/tcerr.cpp \ tads3/tcerrmsg.cpp \ tads3/tctok.cpp \ tads3/tcmain.cpp \ tads3/tcsrc.cpp \ tads3/tchostsi.cpp \ tads3/tclibprs.cpp \ tads3/tccmdutl.cpp REG_BUILTIN_CHAR = tads3/vmbifreg.cpp REG_BUILTIN_CHARNET = tads3/vmbifregn.cpp REG_BUILTIN_HTML = tads3/vmbifregx.cpp REG_BUILTIN_HTMLNET = tads3/vmbifregxn.cpp REG_METACLASS = tads3/vmmcreg.cpp TARGET_OBJS_BASE = \ tads3/tct3.cpp \ tads3/tct3stm.cpp \ tads3/tct3unas.cpp TARGET_OBJS_NO_RT = \ $(TARGET_OBJS_BASE) \ tads3/tct3nl.cpp \ tads3/tct3_d.cpp TARGET_OBJS_NO_LINK = \ $(TARGET_OBJS_BASE) \ tads3/tct3nl.cpp \ tads3/tct3_d.cpp TARGET_OBJS_SYM = \ $(TARGET_OBJS_BASE) \ tads3/tct3nl.cpp \ tads3/tct3prg.cpp TARGET_OBJS = \ $(TARGET_OBJS_BASE) \ tads3/tct3img.cpp \ tads3/tct3prg.cpp test_t3pre_SOURCES = tads3/test/test_pre.cpp \ src/osportable.cc \ src/missing.cc \ src/ost3comp.cc \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/charmap.cpp \ tads3/resload.cpp \ tads3/resldexe.cpp \ tads3/vmwrtimg.cpp \ tads3/vminit.cpp \ tads3/vmini_nd.cpp \ tads3/vminitim.cpp \ tads3/vmcfgmem.cpp \ tads3/vmobj.cpp \ tads3/vmundo.cpp \ tads3/vmtobj.cpp \ tads3/vmpat.cpp \ tads3/vmstrcmp.cpp \ tads3/vmdict.cpp \ tads3/vmgram.cpp \ tads3/vmstr.cpp \ tads3/vmcoll.cpp \ tads3/vmiter.cpp \ tads3/vmfref.cpp \ tads3/vmlst.cpp \ tads3/vmsort.cpp \ tads3/vmsortv.cpp \ tads3/vmbignum.cpp \ tads3/vmvec.cpp \ tads3/vmintcls.cpp \ tads3/vmanonfn.cpp \ tads3/vmlookup.cpp \ tads3/vmstrbuf.cpp \ tads3/vmdynfunc.cpp \ tads3/vmbytarr.cpp \ tads3/vmcset.cpp \ tads3/vmfilobj.cpp \ tads3/vmtmpfil.cpp \ tads3/vmpack.cpp \ tads3/vmhttpdum.cpp \ tads3/vmnetfillcl.cpp \ tads3/vmstack.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/vmpool.cpp \ tads3/vmpoolim.cpp \ tads3/vmtype.cpp \ tads3/vmtypedh.cpp \ tads3/utf8.cpp \ tads3/vmglob.cpp \ tads3/vmrun.cpp \ tads3/vmfunc.cpp \ tads3/vmmeta.cpp \ tads3/vmpreini.cpp \ tads3/vmimgrb.cpp \ tads3/vmbif.cpp \ tads3/vmbifc.cpp \ tads3/vmimage.cpp \ tads3/vmimg_nd.cpp \ tads3/vmsrcf.cpp \ tads3/vmfile.cpp \ tads3/vmbiftad.cpp \ tads3/vmisaac.cpp \ tads3/vmbiftio.cpp \ tads3/askf_tx3.cpp \ tads3/indlg_tx3.cpp \ tads3/vmsave.cpp \ tads3/vmcrc.cpp \ tads3/vmbift3.cpp \ tads3/vmbt3_nd.cpp \ tads3/vmregex.cpp \ tads3/vmconsol.cpp \ tads3/vmconmor.cpp \ tads3/vmconhmp.cpp \ tads3/os_stdio.cpp \ tads3/vmhosttx.cpp \ tads3/vmhostsi.cpp \ tads3/vmhash.cpp \ tads3/sha2.cpp \ tads3/md5.cpp \ tads3/vmlog.cpp \ tads3/vmbignumlib.cpp \ tads3/vmtz.cpp \ tads3/vmtzobj.cpp \ tads3/vmdate.cpp \ tads3/vmfilnam.cpp \ tads3/vmop.cpp \ $(DYN_COMP_OBJS) \ $(REG_METACLASS) \ $(REG_BUILTIN_CHAR) \ tads3/derived/vmuni_cs.cpp \ tads2/osifc.c \ tads2/osnoui.c \ tads2/osrestad.c \ tads2/osstzprs.c \ tads2/ostzposix.c \ $(TARGET_OBJS_NO_LINK) test_test_utf8_SOURCES = tads3/test/test_utf8.cpp \ tads3/utf8.cpp test_test_chr_SOURCES = tads3/test/test_chr.cpp \ src/osportable.cc \ src/missing.cc \ tads2/osnoui.c \ tads2/osstzprs.c \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/utf8.cpp \ tads3/charmap.cpp \ tads3/resload.cpp \ tads3/resnoexe.cpp \ tads3/derived/vmuni_cs.cpp test_test_gets_SOURCES = tads3/test/test_gets.cpp \ src/osportable.cc \ src/missing.cc \ tads2/osnoui.c \ tads2/osstzprs.c \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/utf8.cpp \ tads3/charmap.cpp \ tads3/resload.cpp \ tads3/resnoexe.cpp \ tads3/tcsrc.cpp \ tads3/derived/vmuni_cs.cpp test_test_pool_SOURCES = tads3/test/test_pool.cpp \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/vmpool.cpp \ tads3/vmpoolim.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/vmglob.cpp \ tads3/derived/vmuni_cs.cpp test_test_err_SOURCES = tads3/test/test_err.cpp \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/derived/vmuni_cs.cpp test_test_regex_SOURCES = tads3/test/test_regex.cpp \ src/missing.cc \ tads3/vmregex.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/derived/vmuni_cs.cpp \ tads3/std.cpp \ tads3/std_dbg.cpp test_test_obj_SOURCES = tads3/test/test_obj.cpp \ src/osportable.cc \ src/missing.cc \ src/ost3comp.cc \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/charmap.cpp \ tads3/resload.cpp \ tads3/resnoexe.cpp \ tads3/vmfile.cpp \ tads3/vmundo.cpp \ tads3/vmobj.cpp \ tads3/vmtobj.cpp \ tads3/vmpat.cpp \ tads3/vmstrcmp.cpp \ tads3/vmstr.cpp \ tads3/vmcoll.cpp \ tads3/vmiter.cpp \ tads3/vmfref.cpp \ tads3/vmlst.cpp \ tads3/vmsort.cpp \ tads3/vmsortv.cpp \ tads3/vmbignum.cpp \ tads3/vmsave.cpp \ tads3/vmcrc.cpp \ tads3/vmvec.cpp \ tads3/vmintcls.cpp \ tads3/vmanonfn.cpp \ tads3/vmlookup.cpp \ tads3/vmstrbuf.cpp \ tads3/vmdynfunc.cpp \ tads3/vmbytarr.cpp \ tads3/vmcset.cpp \ tads3/vmfilobj.cpp \ tads3/vmtmpfil.cpp \ tads3/vmpack.cpp \ tads3/vmstack.cpp \ tads3/vmdict.cpp \ tads3/vmgram.cpp \ tads3/vmhttpsrv.cpp \ tads3/vmhttpreq.cpp \ tads3/vmnet.cpp \ tads3/vmnetui.cpp \ tads3/vmnetcfg.cpp \ tads3/vmnetfil.cpp \ tads3/vmnetfillcl.cpp \ tads3/unix/osnetunix.cpp \ tads3/osifcnet.cpp \ tads3/vmrefcnt.cpp \ tads3/sha2.cpp \ tads3/md5.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/vmpool.cpp \ tads3/vmpoolim.cpp \ tads3/vmtype.cpp \ tads3/vmtypedh.cpp \ tads3/utf8.cpp \ tads3/vmglob.cpp \ tads3/vmrun.cpp \ tads3/vmsrcf.cpp \ tads3/vmfunc.cpp \ tads3/vmmeta.cpp \ tads3/vmbif.cpp \ tads3/vmsa.cpp \ tads3/vmbifl.cpp \ tads3/vmbiftad.cpp \ tads3/vmisaac.cpp \ tads3/vmbiftio.cpp \ tads3/vmbifnet.cpp \ tads3/askf_tx3.cpp \ tads3/indlg_tx3.cpp \ tads3/vmbift3.cpp \ tads3/vmbt3_nd.cpp \ tads3/vminit.cpp \ tads3/vmini_nd.cpp \ tads3/vmconsol.cpp \ tads3/vmconmor.cpp \ tads3/vmconhmp.cpp \ tads3/os_stdio.cpp \ tads3/vminitim.cpp \ tads3/vmcfgmem.cpp \ tads3/vmregex.cpp \ tads3/vmhosttx.cpp \ tads3/vmhostsi.cpp \ tads3/vmhash.cpp \ $(REG_METACLASS) \ $(REG_BUILTIN_CHARNET) \ tads3/derived/vmuni_cs.cpp \ tads3/tcprs.cpp \ tads3/tcprsnl.cpp \ tads3/tcprsfil.cpp \ tads3/tcprsstm.cpp \ tads3/tcprsprg.cpp \ tads3/tcgen.cpp \ tads3/tcgenfil.cpp \ tads3/tcglob.cpp \ tads3/tcerr.cpp \ tads3/tcerrmsg.cpp \ tads3/tctok.cpp \ tads3/tcmain.cpp \ tads3/tcsrc.cpp \ tads3/tchostsi.cpp \ tads3/tclibprs.cpp \ tads3/tccmdutl.cpp \ tads3/vmrunsym.cpp \ tads3/vmlog.cpp \ tads3/vmbignumlib.cpp \ tads3/vmfilnam.cpp \ tads3/vmdate.cpp \ tads3/vmtz.cpp \ tads3/vmtzobj.cpp \ tads3/vmop.cpp \ $(TARGET_OBJS_NO_LINK) \ tads3/tct3prg.cpp \ tads2/osifc.c \ tads2/osnoui.c \ tads2/osrestad.c \ tads2/osstzprs.c \ tads2/ostzposix.c test_test_sort_SOURCES = tads3/test/test_sort.cpp \ tads3/vmsort.cpp test_test_write_SOURCES = tads3/test/test_write.cpp \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/vmwrtimg.cpp \ tads3/vmfile.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/vmtypedh.cpp \ tads3/derived/vmuni_cs.cpp test_test_exec_SOURCES = tads3/test/test_exec.cpp \ src/missing.cc \ src/osportable.cc \ src/ost3comp.cc \ src/teststubs.c \ tads3/vmmain.cpp \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/charmap.cpp \ tads3/resload.cpp \ tads3/resldexe.cpp \ tads3/vminit.cpp \ tads3/vmini_nd.cpp \ tads3/vmconsol.cpp \ tads3/vmconmor.cpp \ tads3/vmconhmp.cpp \ tads3/os_stdio.cpp \ tads3/vminitim.cpp \ tads3/vmcfgmem.cpp \ tads3/vmobj.cpp \ tads3/vmundo.cpp \ tads3/vmtobj.cpp \ tads3/vmpat.cpp \ tads3/vmstrcmp.cpp \ tads3/vmstr.cpp \ tads3/vmcoll.cpp \ tads3/vmiter.cpp \ tads3/vmfref.cpp \ tads3/vmlst.cpp \ tads3/vmsort.cpp \ tads3/vmsortv.cpp \ tads3/vmbignum.cpp \ tads3/vmvec.cpp \ tads3/vmintcls.cpp \ tads3/vmanonfn.cpp \ tads3/vmdict.cpp \ tads3/vmgram.cpp \ tads3/vmlookup.cpp \ tads3/vmstrbuf.cpp \ tads3/vmdynfunc.cpp \ tads3/vmbytarr.cpp \ tads3/vmcset.cpp \ tads3/vmfilobj.cpp \ tads3/vmtmpfil.cpp \ tads3/vmpack.cpp \ tads3/vmhttpsrv.cpp \ tads3/vmhttpreq.cpp \ tads3/vmnet.cpp \ tads3/vmnetui.cpp \ tads3/vmnetcfg.cpp \ tads3/vmnetfil.cpp \ tads3/vmnetfillcl.cpp \ tads3/unix/osnetunix.cpp \ tads3/osifcnet.cpp \ tads3/vmrefcnt.cpp \ tads3/sha2.cpp \ tads3/md5.cpp \ tads3/vmstack.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/vmpool.cpp \ tads3/vmpoolim.cpp \ tads3/vmtype.cpp \ tads3/vmtypedh.cpp \ tads3/utf8.cpp \ tads3/vmglob.cpp \ tads3/vmrun.cpp \ tads3/vmfunc.cpp \ tads3/vmmeta.cpp \ tads3/vmsa.cpp \ tads3/vmbif.cpp \ tads3/vmbifl.cpp \ tads3/vmimage.cpp \ tads3/vmimg_nd.cpp \ tads3/vmsrcf.cpp \ tads3/vmfile.cpp \ tads3/vmbiftad.cpp \ tads3/vmisaac.cpp \ tads3/vmbiftio.cpp \ tads3/askf_tx3.cpp \ tads3/indlg_tx3.cpp \ tads3/vmsave.cpp \ tads3/vmcrc.cpp \ tads3/vmbift3.cpp \ tads3/vmbt3_nd.cpp \ tads3/vmbifnet.cpp \ tads3/vmregex.cpp \ tads3/vmhosttx.cpp \ tads3/vmhostsi.cpp \ tads3/vmhash.cpp \ tads3/vmbignumlib.cpp \ tads3/vmfilnam.cpp \ tads3/vmdate.cpp \ tads3/vmtz.cpp \ tads3/vmtzobj.cpp \ tads3/vmop.cpp \ $(REG_METACLASS) \ $(REG_BUILTIN_CHARNET) \ tads3/derived/vmuni_cs.cpp \ tads3/vmlog.cpp \ $(DYN_COMP_OBJS) \ tads2/osifc.c \ tads2/osnoui.c \ tads2/osrestad.c \ tads2/osstzprs.c \ tads2/ostzposix.c \ $(TARGET_OBJS_NO_LINK) test_test_tok_SOURCES = tads3/test/test_tok.cpp \ src/osportable.cc \ src/missing.cc \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/tcglob.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/utf8.cpp \ tads3/charmap.cpp \ tads3/resload.cpp \ tads3/resnoexe.cpp \ tads3/tcmain.cpp \ tads3/tcerr.cpp \ tads3/tcerrmsg.cpp \ tads3/tchostsi.cpp \ tads3/tcsrc.cpp \ tads3/tctok.cpp \ tads3/tcprs.cpp \ tads3/tcprsnl.cpp \ tads3/tcprsnf.cpp \ tads3/tcgen.cpp \ tads3/tct3.cpp \ tads3/tct3unas.cpp \ tads3/tct3nl.cpp \ tads3/tct3_d.cpp \ tads3/vmhash.cpp \ tads3/vmtypedh.cpp \ tads3/vmbignumlib.cpp \ tads3/vmop.cpp \ tads3/derived/vmuni_cs.cpp \ tads2/osnoui.c \ tads2/osstzprs.c test_test_prs_SOURCES = tads3/test/test_prs.cpp \ src/osportable.cc \ src/missing.cc \ tads3/tcglob.cpp \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/utf8.cpp \ tads3/charmap.cpp \ tads3/resload.cpp \ tads3/resnoexe.cpp \ tads3/tcmain.cpp \ tads3/tcerr.cpp \ tads3/tcerrmsg.cpp \ tads3/tchostsi.cpp \ tads3/tcsrc.cpp \ tads3/tctok.cpp \ tads3/tcprs.cpp \ tads3/tcprsfil.cpp \ tads3/tcprsstm.cpp \ tads3/tcprsprg.cpp \ tads3/tcprsimg.cpp \ tads3/tcgen.cpp \ tads3/tcgenfil.cpp \ $(TARGET_OBJS) \ tads3/vmhash.cpp \ tads3/vmwrtimg.cpp \ tads3/vmtypedh.cpp \ tads3/vmfile.cpp \ tads2/osnoui.c \ tads3/vmglob.cpp \ tads3/derived/vmuni_cs.cpp \ tads3/vmbignumlib.cpp \ tads3/vmop.cpp \ tads2/osstzprs.c test_test_sym_SOURCES = tads3/test/test_sym.cpp \ src/osportable.cc \ src/missing.cc \ tads3/tcglob.cpp \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/utf8.cpp \ tads3/charmap.cpp \ tads3/resload.cpp \ tads3/resnoexe.cpp \ tads3/tcmain.cpp \ tads3/tcerr.cpp \ tads3/tcerrmsg.cpp \ tads3/tchostsi.cpp \ tads3/tcsrc.cpp \ tads3/tctok.cpp \ tads3/tcprs.cpp \ tads3/tcprsfil.cpp \ tads3/tcprsnl.cpp \ $(TARGET_OBJS_SYM) \ tads3/tcprsstm.cpp \ tads3/tcprsprg.cpp \ tads3/tcgen.cpp \ tads3/tcgenfil.cpp \ tads3/vmhash.cpp \ tads3/vmtypedh.cpp \ tads3/vmfile.cpp \ tads3/derived/vmuni_cs.cpp \ tads3/vmbignumlib.cpp \ tads3/vmglob.cpp \ tads3/vmop.cpp \ tads2/osnoui.c \ tads2/osstzprs.c test_test_prs_top_SOURCES = tads3/test/test_prs_top.cpp \ src/osportable.cc \ src/missing.cc \ tads3/tcglob.cpp \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/utf8.cpp \ tads3/charmap.cpp \ tads3/resload.cpp \ tads3/resnoexe.cpp \ tads3/tcmain.cpp \ tads3/tcerr.cpp \ tads3/tcerrmsg.cpp \ tads3/tchostsi.cpp \ tads3/tcsrc.cpp \ tads3/tctok.cpp \ tads3/tcprs.cpp \ tads3/tcprsfil.cpp \ tads3/tcprsstm.cpp \ tads3/tcprsprg.cpp \ tads3/tcprsimg.cpp \ tads3/tcgen.cpp \ tads3/tcgenfil.cpp \ $(TARGET_OBJS) \ tads3/vmhash.cpp \ tads3/vmwrtimg.cpp \ tads3/vmtypedh.cpp \ tads3/vmfile.cpp \ tads3/vmglob.cpp \ tads3/derived/vmuni_cs.cpp \ tads3/vmbignumlib.cpp \ tads3/vmop.cpp \ tads2/osnoui.c \ tads2/osstzprs.c test_test_comp_obj_SOURCES = tads3/test/test_comp_obj.cpp \ src/osportable.cc \ src/missing.cc \ tads3/tcglob.cpp \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/utf8.cpp \ tads3/charmap.cpp \ tads3/resload.cpp \ tads3/resnoexe.cpp \ tads3/tcmain.cpp \ tads3/tcerr.cpp \ tads3/tcerrmsg.cpp \ tads3/tchostsi.cpp \ tads3/tcsrc.cpp \ tads3/tctok.cpp \ tads3/tcprs.cpp \ tads3/tcprsfil.cpp \ tads3/tcprsstm.cpp \ tads3/tcprsprg.cpp \ tads3/tcprsimg.cpp \ tads3/tcgen.cpp \ tads3/tcgenfil.cpp \ $(TARGET_OBJS) \ tads3/vmhash.cpp \ tads3/vmwrtimg.cpp \ tads3/vmtypedh.cpp \ tads3/vmfile.cpp \ tads3/vmglob.cpp \ tads3/derived/vmuni_cs.cpp \ tads3/vmbignumlib.cpp \ tads3/vmop.cpp \ tads2/osnoui.c \ tads2/osstzprs.c test_test_link_SOURCES = tads3/test/test_link.cpp \ src/osportable.cc \ src/missing.cc \ tads3/tcglob.cpp \ tads3/std.cpp \ tads3/std_dbg.cpp \ tads3/vmerr.cpp \ tads3/vmerrmsg.cpp \ tads3/utf8.cpp \ tads3/charmap.cpp \ tads3/resload.cpp \ tads3/resnoexe.cpp \ tads3/tcmain.cpp \ tads3/tcerr.cpp \ tads3/tcerrmsg.cpp \ tads3/tchostsi.cpp \ tads3/tcsrc.cpp \ tads3/tctok.cpp \ tads3/tcprs.cpp \ tads3/tcprsfil.cpp \ tads3/tcprsstm.cpp \ tads3/tcprsprg.cpp \ tads3/tcprsimg.cpp \ tads3/tcgen.cpp \ tads3/tcgenfil.cpp \ $(TARGET_OBJS) \ tads3/vmhash.cpp \ tads3/vmwrtimg.cpp \ tads3/vmtypedh.cpp \ tads3/vmfile.cpp \ tads3/vmglob.cpp \ tads3/derived/vmuni_cs.cpp \ tads3/vmbignumlib.cpp \ tads3/vmop.cpp \ tads2/osnoui.c \ tads2/osstzprs.c