home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 9 / FreshFishVol9-CD1.bin / useful / dev / obero / oberon-a / examples / libraries / workbench / prargs.mod < prev    next >
Encoding:
Text File  |  1995-01-26  |  1.9 KB  |  68 lines

  1. (*************************************************************************
  2.  
  3.      $RCSfile: PrArgs.mod $
  4.   Description: A port of prargs.c from the RKM:Libraries
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 1.4 $
  8.       $Author: fjc $
  9.         $Date: 1995/01/25 23:56:20 $
  10.  
  11.   Copyright © 1994-1995, Frank Copeland.
  12.   This example program is part of Oberon-A.
  13.   See Oberon-A.doc for conditions of use and distribution.
  14.  
  15. *************************************************************************)
  16.  
  17. <* STANDARD- *>
  18.  
  19. MODULE PrArgs;
  20.  
  21. IMPORT Dos, Args, IO := StdIO;
  22.  
  23. CONST
  24.   VersionTag = "$VER: PrArgs 1.3 (26.1.95)\r\n";
  25.  
  26. VAR
  27.   ktr : LONGINT;
  28.   olddir : Dos.FileLockPtr;
  29.  
  30. BEGIN (* PrArgs *)
  31.   IF Args.IsCLI THEN
  32.     IO.WriteF1 ("Run from the CLI, %ld args.\n", Args.argc);
  33.     FOR ktr := 0 TO Args.argc - 1 DO
  34.       (* Print an arg, and its number *)
  35.       IO.WriteF2 ("\tArg %2.2ld: '%s'.\n", ktr, Args.argv [ktr])
  36.     END
  37.   ELSE
  38.     IO.WriteF1 ("Run from the Workbench, %ld args.\n", Args.NumArgs);
  39.     FOR ktr := 0 TO Args.NumArgs - 1 DO
  40.       IF Args.ArgList [ktr].lock # NIL THEN
  41.         (* locks supported, change to the proper directory *)
  42.         olddir := Dos.CurrentDir (Args.ArgList [ktr].lock);
  43.  
  44.         (* process the file.
  45.         ** If you have done the CurrentDir() above, then you can
  46.         ** access the file by its name.  Otherwise, you have to
  47.         ** examine the lock to get a complete path to the file.
  48.         *)
  49.         IO.WriteF2
  50.           ( "\tArg %2.2ld (w/ lock): '%s'.\n",
  51.             ktr, Args.ArgList [ktr].name );
  52.  
  53.         (* change back to the original directory when done.
  54.         ** be sure to change back before you exit.
  55.         *)
  56.         olddir := Dos.CurrentDir (olddir)
  57.       ELSE
  58.         (* something that does not support locks *)
  59.         IO.WriteF2
  60.           ( "\tArg %2.2ld (no lock): '%s'.\n",
  61.             ktr, Args.ArgList [ktr].name )
  62.       END;
  63.     END;
  64.     (* wait before closing down *)
  65.     Dos.Delay (500)
  66.   END;
  67. END PrArgs.
  68.