(************************************************************************* :Program. WBReadArgsTest.mod :Contents. test for WBReadArgs :Author. Hartmut Goebel [hG] :Address. Aufseßplatz 5, D-8500 Nürnberg 40 :Address. UseNet: hartmut@oberon.nbg.sub.org :Address. Z-Netz: hartmut@asn.zer Fido: 2:246/81.1 :Copyright. Copyright © 1993 by Hartmut Goebel :Language. Oberon :Translator. Amiga Oberon V3.0 :History. V1.0, 03 Jan 1993 [hG] :Date. 03 Jan 1993 15:46:19 (* $StackChk- $NilChk- $RangeChk- $CaseChk- $OvflChk- $ReturnChk- $ClearVars- *) *************************************************************************) MODULE WBReadArgsTest; IMPORT io, NoGuru, WBReadArgs, ol := OberonLib, d := Dos, e := Exec, wb := Workbench; CONST Template = "Files/M,Switch/S,Toggle/T,Number/N/K,Keyword/K,Needed/A"; TYPE ArgArray = STRUCT files: UNTRACED POINTER TO ARRAY d.maxMultiArgs OF e.STRPTR; switch, toggle: LONGINT; number: UNTRACED POINTER TO ARRAY 1 OF LONGINT; keyword: e.STRPTR; needed: e.STRPTR; END; CONST argArray = ArgArray(NIL,0,d.DOSTRUE,NIL,NIL,NIL); VAR argarray: ArgArray; args: d.RDArgsPtr; wbargs: WBReadArgs.Arguments; wbm: wb.WBStartupPtr; PROCEDURE ShowArgs(); VAR i: INTEGER; BEGIN IF argarray.files # NIL THEN io.WriteString("Files: "); i := 0; WHILE argarray.files[i] # NIL DO io.WriteString(argarray.files[i]^); io.Write(" "); INC(i); END; io.WriteLn; END; IF argarray.switch # d.DOSFALSE THEN io.WriteString("Switch is SET\n"); ELSE io.WriteString("Switch is NOT set\n"); END; IF argarray.toggle # d.DOSFALSE THEN io.WriteString("Toggle is SET\n"); ELSE io.WriteString("Toggle is NOT set\n"); END; IF argarray.number # NIL THEN io.WriteString("Number is "); io.WriteInt(argarray.number[0],0); io.WriteLn; END; IF argarray.keyword # NIL THEN io.WriteString("Keyword is "); io.WriteString(argarray.keyword^); io.WriteLn; END; IF argarray.needed # NIL THEN io.WriteString("Needed is "); io.WriteString(argarray.needed^); io.WriteLn; END; END ShowArgs; BEGIN argarray := argArray; IF ol.wbStarted THEN wbm := ol.wbenchMsg; IF ~ WBReadArgs.ReadArgs(wbm.argList[0],Template,argarray,wbargs) THEN io.WriteString("Error: "); io.WriteInt(WBReadArgs.error,0); ELSE io.WriteString("started from Workbench\n\n"); ShowArgs(); WBReadArgs.FreeArgs(wbargs); END; d.Delay(500); ELSE args := d.ReadArgs(Template,argarray,NIL); IF args = NIL THEN IF d.PrintFault(d.IoErr(),"WBReadArgsTest") THEN END; HALT(20); ELSE io.WriteString("started from Shell\n\n"); ShowArgs(); d.FreeArgs(args); END; END; END WBReadArgsTest.