SUBROUTINE MAIN LOGICAL*1 ARG(400) INTEGER OPEN, GETARG INTEGER FD, I I = 1 23000 IF(.NOT.(GETARG(I, ARG, 40) .NE. -1))GOTO 23002 IF(.NOT.(ARG(1) .EQ. 63 .AND. ARG(2) .EQ. 0))GOTO 23003 CALL ERROR (18Husage: ll [file].) 23003 CONTINUE IF(.NOT.(ARG(1) .EQ. 45 .AND. ARG(2) .EQ. 0))GOTO 23005 FD = 1 GOTO 23006 23005 CONTINUE FD = OPEN(ARG, 1) 23006 CONTINUE IF(.NOT.(FD .EQ. -3))GOTO 23007 CALL CANT(ARG) GOTO 23008 23007 CONTINUE CALL DOLL(FD) IF(.NOT.(FD .NE. 1))GOTO 23009 CALL PUTC(32) CALL PUTLIN(ARG, 2) CALL CLOSE(FD) 23009 CONTINUE CALL PUTC(10) 23008 CONTINUE 23001 I = I + 1 GOTO 23000 23002 CONTINUE IF(.NOT.(I .EQ. 1))GOTO 23011 CALL DOLL(1) CALL PUTC(10) 23011 CONTINUE RETURN END SUBROUTINE DOLL(FD) INTEGER FD LOGICAL*1 GETCH LOGICAL*1 C INTEGER LEN, MINL, MAXL MINL = 10000 MAXL = 0 LEN = 0 23013 IF(.NOT.(GETCH(C, FD) .NE. -1))GOTO 23014 IF(.NOT.(C .EQ. 10))GOTO 23015 IF(.NOT.(LEN .GT. MAXL))GOTO 23017 MAXL = LEN 23017 CONTINUE IF(.NOT.(LEN .LT. MINL))GOTO 23019 MINL = LEN 23019 CONTINUE LEN = 0 GOTO 23016 23015 CONTINUE LEN = LEN + 1 23016 CONTINUE GOTO 23013 23014 CONTINUE IF(.NOT.(MINL .EQ. 10000))GOTO 23021 MINL = 0 23021 CONTINUE CALL PUTDEC(MINL, 5) CALL PUTC(32) CALL PUTDEC(MAXL, 5) RETURN END