! ! ! STRING SEARCH/SUBSTITUTION MACRO. ! ! ! ! !!X01.01!! ! ! ! ! THIS TECO MACRO WILL SEARCH FOR A ! ! STRING IN THE FILES SPECIFIED AND ! ! OPTIONALLY REPLACE THE STRING WITH ! ! ANOTHER STRING. ! ! ! ! THE MACRO IS RUN ASSUMING THE FILE ! ! SPECIFICATION IS IN THE BUFFER AT ! ! STARTUP, E.G. "MUN REPALL,filespec" ! ! ! ! THE FILESPEC CAN INCLUDE WILDCARDS ! ! FOR THE UIC, FILENAME, TYPE, VERSION, ! ! AND DEVICE (A WILDCARD DEVICE IS ! ! SPECIFIED "DK?:"). BE CAREFUL ABOUT ! ! USING WILDCARD TYPES -- OBJECT FILES ! ! AND TASK IMAGES DON'T SEARCH TOO WELL.! ! ! ! THE MACRO CAN BE TERMINATED AT ANY ! ! TIME BY TYPING CTRL/C. ! ! ! ! X01.01 - IF THE USER HAS "/F" AFTER ! ! THE FILESPEC, PRINT THE NAMES ! ! OF ALL FILES SEARCHED. ! ! ! ! MAKE SURE A FILESPEC IS INCLUDED. ! ! ! 0ED Z"E@^A% No file specification in the buffer. %EX' ! ! ! Q0 = FALSE IF NO WILDCARD DEVICE. ! ! ! 0UD J :@S%?:%"S -1UD @FR%0:% 0UE' ! ! ! CHECK FOR /F. ! ! ! 0UF :@S%/F%"S @FR%% -1UF ' ! ! ! PERFORM AN "EN" ON THE FILESPEC. ! ! ! J@I%EN% ZJ 27@I// 27@I// HXF HK MF ! ! ! MACRO TO INPUT YES OR NO (Y/N). ! ! RETURNS QZ=TRUE (YES) OR FALSE (NO). ! ! ! @^UY\!Z!@^A% [Y/N] ? % ^TUZ QZ-^^Y"E-1UZ@O%ZX%' QZ-^^N"E0UZ@O%ZX%' QZ-13"E^TUZ0UZ@O%ZX%' @^A% % @O%Z% @^A% % !ZX! \ ! ! ! MACRO TO INPUT A STRING TERMINATED ! ! WITH AN ESCAPE. ! ! ! @^US\ @^A% (END WITH ) : % HK !S1! ^TU3 Q3-127"E."E@O%S1%'.-1,.T-D@O%S1%' Q3-27"N Q3@I// @O%S1%'\ ! ! ! PRINT OUT THE SEARCH STRING AFTER IT ! ! HAS BEEN LOCATED. PUT "^" AROUND IT. ! ! ! @^UT/^SC0T@^A%^%^SR^YT@^A%^%T/ ! ! ! QR = TRUE IF SUBSTITUTION IS DESIRED. ! ! Q1 TEXT AREA = SEARCH STRING ! ! Q2 TEXT AREA = REPLACEMENT STRING ! ! ! @^UM\ @^A% DO YOU WANT STRING SUBSTITUTION % MYQZUR @^A% ENTER THE SEARCH STRING% MS HX1 QR"F@O%S3%' @^A% ENTER REPLACEMENT STRING% MS HX2 !S3!\ ^[  ! ! ! THE ACTUAL PROCESSING STARTS HERE. ! ! ! @EI%% MM !SR! HK ! ! ! OPEN THE FILE. IF IT FAILS, EITHER ! ! EXIT OR GO TO THE NEXT WILDCARD DEVICE! ! AND TRY IT. ! ! ! :@EN%%"F QD"F EX' %E-8"E EX' GF J :@S%:% 2RD QE\ HXF MF @O%SR%' ! ! ! "ER" IF NO SUBSTITUTION, "EB" IF ! ! THERE IS SUBSTITUTION. QW = WHETHER ! ! FILENAME HAS BEEN PRINTED OR NOT. ! ! ! QR"T @EB%^EQ*% | @ER%^EQ*% ' Y ! ! ! IF /F WAS SPECIFIED, OUTPUT FILENAME. ! ! ! QFUW QF"T @^A% Searching file "% :G* @^A%" % ' QR"F ! ! ! SEARCH WITHOUT REPLACEMENT. ! ! ! <:@_%^EQ1%; QW"E @^A% String located in file "% :G* @^A%" % %W' MTL> ! ! ! SEARCH WITH REPLACEMENT. ! ! QU = NUMBER OF REPLACEMENTS MADE. IF ! ! QU = 0 AT END OF THE FILE, DON'T SAVE ! ! THE FILE OPENED WITH THE "EB". ! ! ! | <:@N%^EQ1%; QW"E @^A% String located in file "% :G* @^A%" % 0UU %W' MT @^A% Replace % MY @^A% % QZ"T ^YD G2 %U @^A% % MT@^A% %' > QW"E EK | QU"E EK | EC' ' ' @O%SR%