/* REXX -- Change all UPPERCASE to lowercase */ /*********************************************************************/ /* Provision made for REDO to fix only words */ /* DESCRIPTION: CHANGE ALL UPPERCASE TO LOWERCASE */ /* -- CAPITALIZE SENTENCES */ /* PURPOSE: Helps to reduces the number of keystrokes needed */ /* to create text that is more readable. */ /* INSTALL: You can incorporate with additional changes */ /* into your own CLIST library */ /* NOTE: AUTOSAVE OFF is invoked */ /* DEFAULT LABLES ARE .ZFIRST .ZLAST */ /* Contributed: 1985/09/17 David McRitchie */ /* Converted to REXX 1992/02/07 D.McRitchie, more words also added. */ /* */ /* OPTIONS: */ /* LPTR-RANGE | ENTIRE (REQUIRED) LINE POINTER RANGE */ /* REDO Do everything except initial making all */ /* into lowercase */ /*********************************************************************/ "ISREDIT MACRO (TOK1,TOK2,TOK3,TOK4,TOK5,TOK6,TOK7,TOK8,TOK9,TOK10, , TOK11,TOK12,TOK13,TOK14,TOK15,TOK16,TOK17,TOK18,TOK19, , TOK20,TOK21,TOK22,TOK23,TOK24,TOK25,TOK26,TOK27,TOK28)" ALL=""; BEFORE=""; BEGIN=""; DEBUG=""; ENTIRE=""; FIRST=""; LABELS=""; LABF=""; LABL=""; PFX=""; REQUIRED=""; LEFT=""; RIGHT=""; X=""; /*CLEAR FUTURE USE*/ DEBUG="" REDO=""; ADDRESS "ISREDIT" REMAIN = " " DO I = 1 TO 28 BY 1; DO INNER = 1 TO 1 BY 1; TOKENX = TOK||I TOKENX = VALUE(TOKENX) TOKEN = TRANSLATE(TOKENX) IF TOKEN = "" THEN LEAVE I LNG = LENGTH(TOKEN) IF 'ALL' = TOKEN | 'NEXT' = TOKEN | 'FIRST' = TOKEN , | 'NX' = TOKEN | 'X' = TOKEN , | 'LAST' = TOKEN | 'PREV' = TOKEN , THEN DO ZEDSMSG = """"TOKEN""" INVALID" ZEDLMSG = """"TOKEN""" NOT PROVIDED FOR NOR ARE " , "NEXT ALL FIRST LAST PREV" ADDRESS 'ISPEXEC' ' SETMSG MSG(ISRZ000)' EXIT 12 END IF 'DEBUG' = TOKEN THEN DO; DEBUG='DEBUG'; LEAVE INNER;END; IF 'ENTIRE' = TOKEN THEN DO; ENTIRE='ENTIRE'; LEAVE INNER;END; IF 'REDO' = TOKEN THEN DO; REDO='REDO'; LEAVE INNER;END; IF SUBSTR(TOKEN,1,7) = 'BEFORE(' THEN DO BEFORE = SUBSTR(TOKEN,8,LNG-8) LEAVE INNER END IF SUBSTR(TOKEN,1,1) = "." THEN DO IF LABF = "" THEN DO LABF = TOKEN LEAVE INNER END IF LABL = "" THEN DO LABL = TOKEN LEAVE INNER END ZEDSMSG = "LABEL TOKENS" ZEDLMSG = "EXACTLY TWO LABELS ARE REQUIRED " , ||"FOUND " LABF ", " LABL " AND " TOKEN ADDRESS 'ISPEXEC' ' SETMSG MSG(ISRZ000)' EXIT 12 END IF TOKEN = "'" THEN DO /* ' match quote */ ZEDSMSG = "LOST PARENTHESIS" ZEDLMSG = "BLANKS SEPARATE ALL OPERANDS; " , ||"THEREFORE INVALID IN FROM() TO() COL() BEGIN()" ADDRESS 'ISPEXEC' ' SETMSG MSG(ISRZ000)' EXIT 12 END SAY TOKEN NOT PROVIDED FOR IN CLIST REMAIN = REMAIN TOKEN END INNER END I IF REMAIN \= "" THEN , SAY REMAIN "-- NOT PROVIDED FOR IN .EXEC" /*********************************************************************/ /*********************************************************************/ Address "ISREDIT" "CAPS OFF" IF LABF = "" THEN ENTIRE = "ENTIRE" /*MAKE ENTIRE DEFAULT*/ IF ENTIRE = "ENTIRE" THEN DO /*** LABELS ARE REQUIRED ***/ IF LABF = "" THEN DO LABF = ".ZFIRST" LABL = ".ZLAST" END ELSE DO SAY LENGTH(LABF) LENGTH(LABL) ZEDSMSG = "LABEL CONFLICT" ZEDLMSG = '"ENTIRE" IMPLIES .ZFIRST .ZLAST ' , || 'CONFLICTS WITH ' LABF ' AND ' LABL ADDRESS 'ISPEXEC' ' SETMSG MSG(ISRZ000)' EXIT 12 END END IF LABL = "" THEN DO ZEDSMSG = "MISSING LABEL(S)" ZEDLMSG = ZEDSMSG "- A PAIR OF LABELS OR " , || """ENTIRE"" IS REQUIRED" ADDRESS 'ISPEXEC' ' SETMSG MSG(ISRZ000)' EXIT 12 END "ISREDIT (#LABF) = LINENUM " LABF IF RC \= 0 THEN DO ZEDSMSG = LABF "LABEL" ZEDLMSG = ZEDSMSG "DOES NOT EXIST" ADDRESS 'ISPEXEC' ' SETMSG MSG(ISRZ000)' EXIT 12 END "ISREDIT (#LABL) = LINENUM " LABL IF RC \= 0 THEN DO ZEDSMSG = LABL "LABEL" ZEDLMSG = ZEDSMSG "DOES NOT EXIST" ADDRESS 'ISPEXEC' ' SETMSG MSG(ISRZ000)' EXIT 12 END /************** END OF LABEL REQUIREMENTS *******************/ /*********** MAKE BEGINNINGS OF SENTENCES INTO UPPER CASE ****/ "CAPS OFF" "LOC " LABF range = labf || " " || labl IF REDO = 'REDO' THEN signal notall "change" range "ALL P'>' P'<'" "change" range "FIRST PREFIX P'@' P'>'" "exclude" range "ALL" "FIND" range "ALL '. '" "exclude" range "ALL ':'" /* NOT SCRIPT JUNK */ "FIND" range "ALL ': '" /* capitalize first letter after colon space */ "LOC " LABF NEXTC: , "FIND" range "NX NEXT ': '" IF RC = 0 THEN DO "change" range "NEXT PREFIX p'@' p'>'" IF RC = 0 THEN SIGNAL NEXTC END "FIND" range " all ' - '" "LOC " LABF NEXTD: , "FIND" range "NX NEXT ' - '" IF RC = 0 THEN DO "change" range "NEXT PREFIX p'@' p'>'" IF RC = 0 THEN SIGNAL NEXTD END /* capitalize first letter after period space */ /* make periods show up so can check by eye */ "FIND" range "all '. '" "LOC " LABF NECTP: , "FIND" range "NX NEXT '. '" IF RC=0 then do "change" range "NEXT prefix p'@' p'>'" IF rc = 0 THEN SIGNAL NECTP END "CHANGE all prefix '=$ @'p '>= >'p" /* 1) Able, B) Baker*/ /*********** MAKE JCL INTO UPPER CASE ************************/ "exclude ALL" "FIND 1" range "ALL '//'" "FIND" range "ALL '//'" "change" range "P'<' P'>' ALL NX" /*************** END OF LABEL REQUIREMENTS ********************/ "AUTOSAVE OFF" NOTALL: , "(MEMNAME) = MEMBER" "exclude ALL" "CAPS OFF" /* latest additions -- capitalized these words */ " @C " RANGE " PLR PLRS PCTM LNG APP TGT I/O VIO" " @C " RANGE " COPYLIB SYSLIB TELON SYS1 PROCLIB USERPROC LIBR" " @C " RANGE " MACLIB COB2LIB COBLIB MACLIB VSAMDEF" " @C " RANGE " SYS5 CISTEST MFS" " @C CHAR " RANGE " _DATA _LIB _USED _TELON" "CHANGE all word" range "p'SYS#' p'>>>>' " /* program name specialities */ "CHANGE all word" range "p'@@@####' p'>>>>>>>' " "CHANGE all word" range "ispf ISPF " "CHANGE all word" range "isredit ISREDIT " "CHANGE all word" range "p'@^^^#^^^' p'>>>>>>>>'" /*AHIV3H99*/ "CHANGE all word" range "p'##@@@##' p'>>>>>>>'" /*31DEC99 */ /* proper names */ "CHANGE all word" range "'$cntl'p '=CNTL'p" "CHANGE all word" range "'$libr$'p '=LIBR='p" "change all prefix" range "'A-' 'A-'" "CHANGE all word" range "'Allison' 'Allison'" "CHANGE all word" range "'American' 'American'" "CHANGE all word" range "'Autotab' AUTOTAB" "CHANGE ALL word" range "'Bruce' 'Bruce'" "CHANGE all word" range "'Byerlee' 'Byerlee'" "CHANGE all word" range "'Byerlee' 'Byerlee'" "CHANGE all word" range "'Celanese' 'Celanese'" "CHANGE all word" range "'Clark' 'Clark'" "CHANGE all word" range "'Corporation' 'Corporation'" "CHANGE all word" range "'Dale' 'Dale'" "CHANGE all word" range "'Dallas' 'Dallas'" "CHANGE ALL word" range "'Dave' 'Dave'" "CHANGE all word" range "'David' 'David'" "CHANGE ALL word" range "'Donohue' 'Donohue'" "CHANGE all word" range "'Fontana' 'Fontana'" "CHANGE all word" range "'Fred' 'Fred'" "CHANGE all word" range "'Fri' 'Fri'" "CHANGE all word" range "'Friday' 'Friday'" "CHANGE all word" range "'Gale' " /* Meyers */ " 'Gale'" "CHANGE all word" range "'I' I" "CHANGE all word" range "'II' II" "CHANGE all word" range "'Jim' 'Jim'" "CHANGE all word" range "'Joe' 'Joe'" "CHANGE ALL word" range "'John' 'John'" "CHANGE ALL word" range "'Kevin' 'Kevin'" "CHANGE ALL word" range "'Kyle' 'Kyle'" "CHANGE all word" range "'Martowicz' 'Martowicz'" "CHANGE all word" range "'Mcritchie' 'McRitchie'" "CHANGE all word" range "'Meyers' 'Meyers'" "CHANGE all word" range "'Mohammed' 'Mohammed'" "CHANGE all word" range "'Mon' 'Mon'" "CHANGE all word" range "'Monday' 'Monday'" "CHANGE all word" range "'MVS' 'MVS'" "CHANGE all word" range "'New jersey' 'New Jersey'" "change all prefix" range "'O-' 'O-'" "CHANGE all word" range "'O###$'p 'O===='p" "CHANGE all word" range "'Os' 'OS'" "CHANGE ALL word" range "'Pittson' 'Pittson'" "CHANGE all word" range "'QAT' 'QAT'" "change all prefix" range "'Qat' 'QAT'" "change all suffix" range "'Qat' 'QAT'" "CHANGE ALL word" range "'Rita' 'Rita'" "CHANGE all word" range "'Rogers' 'Rogers'" "CHANGE all word" range "'Sat' 'Sat'" "CHANGE all word" range "'Saturday' 'Saturday'" "CHANGE ALL word" range "'Scharwath' 'Scharwath'" "CHANGE all word" range "'script' Script" "CHANGE all word" range "'Stewart' 'Stewart'" "CHANGE all word" range "'Sunday' 'Sunday'" "CHANGE all word" range "'Thur' 'Thur'" "CHANGE all word" range "'Thursday' 'Thursday'" "CHANGE ALL word" range "'Tim' 'Tim'" "CHANGE all word" range "'Tue' 'Tue'" "CHANGE all word" range "'Tuesday' 'Tuesday'" "CHANGE all word" range "'Virginia' 'Virginia'" "CHANGE all word" range "'VM' 'VM'" "CHANGE all word" range "'VSE' 'VSE'" "CHANGE all word" range "'Wed' 'Wed'" "CHANGE all word" range "'Wednesday' 'Wednesday'" "CHANGE all word" range "'Wind' 'Wind'" "CHANGE all word" range "'XA' 'XA'" /* JCL and other terms for complete capitalization, that contain*/ /* something to make sure it is JCL, such as = sign */ "CHANGE all prefix" range "'space=' 'SPACE='" /* JCL and other terms for complete capitalization, that do not */ /* interfer with other usages e.g. does not include SPACE*/ "CHANGE all word" range "'mvs/xa' 'MVS/XA'" "CHANGE all word" range "'AHC' AHC" "CHANGE all word" range "'autotab' AUTOTAB" "CHANGE all word" range "'blksiz' BLKSIZ" "CHANGE all word" range "'bms' BMS" "CHANGE all word" range "'CICS' CICS" "CHANGE all word" range "'cobol' COBOL" "CHANGE all word" range "'cyl' CYL" "CHANGE all word" range "'dasd' DASD" "CHANGE all word" range "'dcb' DCB" "CHANGE all word" range "'db2' DB2" "CHANGE all word" range "'dcf' DCF" "CHANGE all word" range "'dms' DMS" "CHANGE all word" range "'DOS' DOS" "CHANGE all word" range "'fb' FB" "CHANGE all word" range "'fbs' FBS" "CHANGE all word" range "'ibm' IBM" "CHANGE all word" range "'ifps' IFPS" "CHANGE all word" range "'ims' IMS" "CHANGE all word" range "'iof' IOF" "CHANGE all word" range "'IPL' IPL" "CHANGE all word" range "'IPLQAT' IPLQAT" "CHANGE all word" range "'jcl' JCL" "CHANGE all word" range "'jes' JES" "CHANGE all word" range "'mvs' MVS" "CHANGE all word" range "'Nj' NJ" "CHANGE all word" range "'pdf' PDF" "CHANGE all word" range "'pds' PDS" "CHANGE all word" range "'pl/i' 'PL/I'" "CHANGE all word" range "'pl/1' 'PL/1'" "CHANGE all word" range "'pli' PLI" "CHANGE all word" range "'racf' RACF" "CHANGE all word" range "'recfm' RECFM" "CHANGE all word" range "'rexx' REXX" "CHANGE all word" range "'sas' SAS" "CHANGE all word" range "'smp' SMP" "CHANGE all word" range "'SOP#' SOP#" "CHANGE all word" range "'SOP' SOP" "CHANGE all word" range "'Syslmod' SYSLMOD" "CHANGE all word" range "'Syslib' SYSLIB" "CHANGE all word" range "'Syslibs' SYSLIBs" "CHANGE all word" range "'PARMS' PARMs" "CHANGE all word" range "'PARM' PARM" "CHANGE all word" range "'PLR' PLR" "CHANGE all word" range "'tlms' TLMS" "CHANGE all word" range "'trk' TRK" "CHANGE all word" range "'tso' TSO" "CHANGE all word" range "'db' DB" "CHANGE all word" range "'vb' VB" "CHANGE all word" range "'vbs' VBS" "CHANGE all word" range "'vspc' VSPC" "CHANGE all word" range "'xa' XA" "CHANGE all word" range "t'tsomodel.public' change'TSOMODEL.PUBLIC'" "CHANGE all" range "'info0' 'INFO0'" /* PREFIX character strings*/ "CHANGE all prefix" range "p'IMS<<<<' p'IMS>>>>'" "CHANGE all prefix" range "p'IMS<<<' p'IMS>>>'" "CHANGE all prefix" range "p'IMS<<' p'IMS>>'" "CHANGE all prefix" range "p'IMS<' p'IMS>'" /*********************************************************************/ /* /* Sentence beginning -- period - two spaces - letter*/ */ /* has been placed above REDO area */ /*********************************************************************/ "CHANGE ALL prefix" range "'<$ ><'p p'>= =='" "CHANGE ALL" range "word p'dli======' p'>>>>>>>>>'" "CHANGE ALL" range "word p'dli=====' p'>>>>>>>>'" "CHANGE ALL" range "word p'dli====' p'>>>>>>>'" "CHANGE ALL" range "word p'dli===' p'>>>>>>'" "CHANGE ALL" range "word p'dli==' p'>>>>>'" "CHANGE ALL" range "word p'dli=' p'>>>>'" "CHANGE ALL" range "word p'dli' p'>>>'" "CHANGE ALL" range "word p'dbrm' DBRM" "CHANGE ALL" range "word vdefine VDEFINE" "CHANGE ALL" range "word vreset VRESET" "CHANGE ALL" range "word telon TELON" "FIND ALL P'>'" range "" "LOC " LABF "" ZEDSMSG = "COMPLETED" ZEDLMSG = ZEDSMSG " ==> @smalls" range ADDRESS 'ISPEXEC' 'SETMSG MSG(ISRZ000)' lb = "LINE_BEFORE "||LABF||" = NOTELINE """;q="""" IF REDO = REDO then return 1 lb, "+==================================================================+"Q lb, "|| 'UPPERCASE' has been changed to 'lowercase' ||"Q lb, "|| This Clist has invoked 'CAPS OFF', 'AUTOSAVE OFF' ||"Q lb, "|+================================================================+|"Q lb, "|| Use FIND ' ' ALL to make lines between ==CHG> visible ||"Q lb, "+==================================================================+"Q lb, "|| change all p' <<' p' ><' may be useful for some situations||"Q lb, "|| change all p' <<' p' ><' may be useful for some situations||"Q lb, "+==================================================================+"Q lb " "Q "CAPS OFF" "LOC 0"