DIRECTORY ConvertUnsafe USING [ToRefText], Exec USING [commandLine, CommandLine], ExecOps USING [ ], IO USING [SP, CR, TAB, NUL], Rope USING [FromRefText], TTY USING [Handle], UserExec USING [ExecHandle, GetExecHandle, UserAbort, ResetUserAbort], UserExecPrivate USING [Register] ; ExecImpl: PROGRAM IMPORTS ConvertUnsafe, Exec, Rope, UserExec, UserExecPrivate EXPORTS Exec, ExecOps, UserExecPrivate = BEGIN w: PUBLIC TTY.Handle; -- set in CallRegisteredProc commandString: PUBLIC LONG STRING _ [256]; commandLine: PUBLIC Exec.CommandLine _ [s: commandString, i: 0]; AddCommand: PUBLIC PROCEDURE [name: LONG STRING, proc: UNSAFE PROCEDURE] = { UserExecPrivate.Register[name: Rope.FromRefText[ConvertUnsafe.ToRefText[name]], oldStyleProc: proc]; }; CheckForAbort: PUBLIC PROCEDURE RETURNS [BOOLEAN] = { execHandle: UserExec.ExecHandle = UserExec.GetExecHandle[]; IF UserExec.UserAbort[execHandle] THEN {UserExec.ResetUserAbort[execHandle]; RETURN[TRUE]} ELSE RETURN[FALSE]; }; GetChar: PUBLIC PROCEDURE RETURNS [char: CHARACTER] = { OPEN Exec.commandLine; IF i >= s.length THEN RETURN[IO.NUL]; char _ s[i]; i _ i + 1; }; GetToken: PUBLIC PROCEDURE [get: UNSAFE PROC RETURNS [CHARACTER], token, switches: STRING] = { char: CHARACTER; str: STRING _ token; token.length _ 0; switches.length _ 0; UNTIL (char _ get[]) # IO.SP OR char = IO.TAB DO NULL; ENDLOOP; -- skip white space DO SELECT char FROM '/ => {str _ switches; char _ get[]; LOOP}; IO.SP, IO.TAB, IO.CR, IO.NUL => EXIT; '', '^ => char _ get[]; ENDCASE; str[str.length] _ char; str.length _ str.length + 1; char _ get[]; ENDLOOP; }; AppendCommands: PUBLIC PROC [LONG STRING] = {-- nop for eric --}; END. -- of ExecImpl ΎLast Edited by: teitelman, December 25, 1982 3:52 pm MatchPattern, AppendCommands, PrependCommands, RemoveCommand, and Exec.GetNameandPassWord not implemented nobody is using them. ΚΞ– "Cedar" style˜J˜Jšœ5™5šΟk ˜ Jšœœ ˜ Jšœœ˜&Jšœœ˜Jš œœœœœœ˜Jšœœ˜Jšœœ ˜Jšœ œ8˜FJšœœ ˜ J˜—J˜JšΠblœ˜J˜Jšœ6˜=J˜Jšœ ˜'J˜Jšœ˜J˜JšΟnœœœ Οc˜3JšŸ œ œœ ˜*JšŸ œœ-˜@J˜šŸ œœ œœœœ œ˜MJ˜dJ˜J˜—š Ÿ œœ œœœ˜5J˜;Jšœ œ'œœ˜ZJšœœœ˜J˜J˜—š Ÿœœ œœ œ˜8Jšœ˜Jšœœœœ˜%J˜ J˜ J˜J˜—šŸœœ œœœœ œœ˜_Jšœ œ˜Jšœœ ˜J˜J˜J˜Jšœœœœœœœ ˜Sš˜šœ˜Jšœ%œ˜+Jš œœœœœ˜%J˜Jšœ˜—J˜J˜J˜ Jšœ˜—J˜J˜Jš Ÿœœœœœ œ˜CJ™Jšœ€™€—J˜Jšœ ˜J˜—…—¨ 4