DEFINITION MODULE ArgHandler;
(*$ LargeVars:=FALSE LongAlign:=FALSE *)
(* 16.6.90/bp Jetzt reicht's mir! *)
(* 31.8.90/bp Umgestellt für ENV:m2???.opt als erstes Argument! *)
(* Alles geht via Terminal! *)

FROM SYSTEM	IMPORT	ADDRESS;
IMPORT DosD;

TYPE
  OptionProc=PROCEDURE(ARRAY OF CHAR, INTEGER):BOOLEAN;

VAR interActive, verbose:BOOLEAN;
    fName: ARRAY[0..255] OF CHAR;
    fNameLen:INTEGER;
    myCD:DosD.FileLockPtr;


PROCEDURE SetReply(val{0}:LONGINT);
(* Nach jedem compile/link-Vorgang aufrufen!
   setzt replyVal auf mindestens val
   replyVal wird jeweils von GetArgString zurückgegeben und
   nach GetArgString auf 0 gesetzt
*)

(* p wird aufgerufen, wenn ein String mit '+' oder '-' oder '?' beginnt. *)
PROCEDURE InitHandler(p:OptionProc;msg,firstName,secName:ADDRESS);
(* firstName ist z.B. "ENV:m2c.opt",
   msg muß %s enthalten, z.B. "(%s) m2c> "
*)

(* holt von ENV:, Arguments oder interaktiv *)
(* Resultat FALSE heißt: ungültige Option! *)
(* len=0 heißt: kein Name zu holen *)
PROCEDURE FetchName():BOOLEAN;

END ArgHandler.
