packages feed

language-Modula2-0.1: examples/Modula-2_Libraries/andrea-m2/lib/eth-hamburg/cmdline.mod

IMPLEMENTATION MODULE CmdLine;

(* J. Andrea, Oct.13/92 -vms version *)
(* Implementation by J. Andrea, Jun.28/92 -dos version *)
(* This code may be freely used and distributed, it may not be sold *)

IMPORT ForeignCommand;

VAR
  length :CARDINAL;


  (* ------------------------------------------- *)
  PROCEDURE WholeCommandLine( VAR line :ARRAY OF CHAR );
  BEGIN
     ForeignCommand.GetAll( line, length );
     IF length = 0 THEN
       line[0] := 0C;
     END;
  END WholeCommandLine;

  (* ------------------------------------------- *)
  PROCEDURE Nargs() :CARDINAL;
  BEGIN
    RETURN ForeignCommand.NOptions();
  END Nargs;

  (* ------------------------------------------- *)
  PROCEDURE GetArg( n :CARDINAL; VAR arg :ARRAY OF CHAR );
  BEGIN
    ForeignCommand.GetOption( n, arg, length );
    IF length = 0 THEN
      arg[0] := 0C;
    END;
  END GetArg;

BEGIN
END CmdLine.



PROCEDURE ReadCommand( prompt :ARRAY OF CHAR );
(* First step in getting options, this must be called before GetOption   *)
(* and should be called only once. The prompt is shown if the user types *)
(* the command line with no options. *)


PROCEDURE NOptions() :CARDINAL;
(* return the number of options given *)


PROCEDURE GetOption( i :CARDINAL; VAR option :ARRAY OF CHAR;
                                  VAR length :CARDINAL );
(* Get the i'th option string, need not be called in order *)
(* A returned 'length' of zero means that that option is not available. *)