home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / PASCAL / 30TURUTL / INITCMD.PAS < prev    next >
Pascal/Delphi Source File  |  1985-02-16  |  2KB  |  66 lines

  1.  
  2. PROCEDURE INITCMD;(*MODIFIED FOR SHARP*)
  3. VAR
  4.   FD:FILEDESC;
  5.   FNAME:XSTRING;
  6.   FT:FILTYP;
  7.   IDX:1..MAXSTR;
  8.   JSKIP:INTEGER;
  9.   JUNK:BOOLEAN;
  10.  
  11.  
  12. BEGIN
  13.   CMDFIL[STDIN]:=STDIO;
  14.   CMDFIL[STDOUT]:=STDIO;
  15.   CMDFIL[STDERR]:=STDIO;
  16.   FOR FD:=SUCC(STDERR) TO MAXOPEN DO
  17.     CMDFIL[FD]:=CLOSED;
  18.   WRITELN;
  19.   write('$ ');
  20.   FOR FT:= FIL1 TO FIL4 DO
  21.     CMDOPEN[FT]:=FALSE;
  22.   KBDN:=0;
  23.   if (not getline(cmdlin,STDIN,MAXSTR)) then error('NO CMDLINE');
  24.   CMDARGS:=0;
  25.   JSKIP:=0;
  26.   IDX:=1;
  27.   WHILE ((CMDLIN[IDX]<>ENDSTR)
  28.     AND(CMDLIN[IDX]<>NEWLINE)) DO BEGIN
  29.       WHILE((CMDLIN[IDX]=BLANK)AND(JSKIP MOD 2 <>1))DO
  30.         IDX:=IDX+1;
  31.       IF(CMDLIN[IDX]<>NEWLINE) THEN BEGIN
  32.         CMDARGS:=CMDARGS+1;
  33.         CMDIDX[CMDARGS]:=IDX-JSKIP;
  34.         WHILE((CMDLIN[IDX]<>NEWLINE)AND
  35.           ((CMDLIN[IDX]<>BLANK)OR(JSKIP MOD 2 <>0)))DO BEGIN
  36.               IF (CMDLIN[IDX]=DQUOTE)THEN BEGIN
  37.                 JSKIP:=JSKIP+1;
  38.                 IDX:=IDX+1
  39.               END
  40.               ELSE BEGIN
  41.                 CMDLIN[IDX-JSKIP]:=CMDLIN[IDX];
  42.                 IDX:=IDX+1
  43.               END
  44.  
  45.             END;
  46.         CMDLIN[IDX-JSKIP]:=ENDSTR;
  47.         IDX:=IDX+1;
  48.         IF (CMDLIN[CMDIDX[CMDARGS]]=LESS) THEN BEGIN
  49.           XCLOSE(STDIN);
  50.           CMDIDX[CMDARGS]:=CMDIDX[CMDARGS]+1;
  51.           JUNK:=GETARG(CMDARGS,FNAME,MAXSTR);
  52.           FD:=MUSTOPEN(FNAME,IOREAD);
  53.           CMDARGS:=CMDARGS-1;
  54.         END
  55.         ELSE IF (CMDLIN[CMDIDX[CMDARGS]]=GREATER) THEN BEGIN
  56.           XCLOSE(STDOUT);
  57.           CMDIDX[CMDARGS]:=CMDIDX[CMDARGS]+1;
  58.           JUNK:=GETARG(CMDARGS,FNAME,MAXSTR);
  59.           FD:=MUSTCREATE(FNAME,IOWRITE);
  60.           CMDARGS:=CMDARGS-1;
  61.         END
  62.       END
  63.     END
  64.   END;
  65.     
  66.