Relay-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site seismo.CSS.GOV Posting-Version: version B 2.10.2 9/3/84; site panda.UUCP Path: seismo!harvard!talcott!panda!sources-request From: sources-request@panda.UUCP Newsgroups: mod.sources Subject: Software Tools in Turbo - SHELL.PAS Message-ID: <1126@panda.UUCP> Date: 20 Nov 85 12:41:58 GMT Sender: jpn@panda.UUCP Lines: 139 Approved: jpn@panda.UUCP Mod.sources: Volume 3, Issue 50 Submitted by: harvard!cmcl2!lanl!jp (James Potter) [ As some of you have noticed, the file "SHELL.PAS" in the recent Software Tools in Turbo Pascal was sent out scronked. Thanks for your patience - John P. Nelson (moderator, mod.sources) ] John, Sorry about the screw-up on the Turbo Pascal file SHELL.PAS. Apparently it got fouled up when I uploaded it and I didn't have a way of checking it out easily. Anyway, here is the correct file SHELL.PAS James Potter #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # shell.pas # This archive created: Wed Nov 20 07:40:39 1985 export PATH; PATH=/bin:$PATH echo shar: extracting "'shell.pas'" '(2654 characters)' if test -f 'shell.pas' then echo shar: will not over-write existing file "'shell.pas'" else cat << \SHAR_EOF > 'shell.pas' {SHELL.PAS} { Copyright (c) 1981 By: Bell Telephone Laboratories, Inc. and Whitesmith's Ltd., This software is derived from the book "Software Tools in Pascal", by Brian W. Kernighan and P. J. Plauger Addison-Wesley, 1981 ISBN 0-201-10342-7 Right is hereby granted to freely distribute or duplicate this software, providing distribution or duplication is not for profit or other commercial gain and that this copyright notice remains intact. } PROGRAM TOOLS; {$I TOOLU.PAS} {$I INITCMD.PAS} {$I CHAPTER1.PAS} {$I CHAPTER2.PAS} {$I CHAPTER3.PAS} {$I CHAPTER4.PAS} {$I CHAPTER5.PAS} {$I CHAPTER6.PAS} {$I CHAPTER7.PAS} {$I CHAPTER8.PAS} VAR STR,STR1:STRING80; COMMAND:XSTRING; DONE:BOOLEAN; I:INTEGER; BEGIN {SHELL} DONE:=FALSE; WHILE NOT DONE DO BEGIN INITCMD; IF GETARG(1,COMMAND,MAXSTR) THEN BEGIN STR:=''; STR1:='X'; FOR I:=1 TO XLENGTH(COMMAND) DO BEGIN if COMMAND[I]in[97..122] then str1[1]:=chr(command[i]-32) ELSE STR1[1]:=chr(COMMAND[I]); STR:=CONCAT(STR,STR1) END; if str = 'COPY' then copy else if str = 'LINECOUNT' then linecount else if str = 'WORDCOUNT' then wordcount else if str = 'DETAB' then detab else if str = 'ENTAB' then entab else if str = 'OVERSTRIKE' then overstrike else if str = 'COMPRESS' then compress else if str = 'EXPAND' then expand else if str = 'ECHO' then echo else if str = 'TRANSLIT' then translit else if str = 'COMPARE' then compare else if str = 'INCLUDE' then include else if str = 'CONCAT' then concat else if str = 'PRINT' then print else if str = 'MAKECOPY' then makecopy else if str = 'ARCHIVE' then archive else if str = 'SORT' then sort else if str = 'UNIQUE' then unique else if str = 'KWIC' then kwic else if str = 'ROTATE' then writeln('ROTATE not directly supported.') else if str = 'UNROTATE' then unrotate else if str = 'FIND' then find else if str = 'CHANGE' then change else if str = 'EDIT' then edit else if str = 'FORMAT' then format else if str = 'DEFINE' then macro else if str = 'MACRO' then macro else if str = 'QUIT' then halt ELSE BEGIN WRITELN('?'); DONE:=FALSE END END; endcmd; END; END. SHAR_EOF if test 2654 -ne "`wc -c < 'shell.pas'`" then echo shar: error transmitting "'shell.pas'" '(should have been 2654 characters)' fi fi # end of overwriting check # End of shell archive exit 0