>>* parameter checking left to users (if any) >>LPARAMETERS tcPrgfile, tcNewFile, tcPrefix >>CLOSE DATABASES all >>CREATE CURSOR newprg (cLine c(127)) >>CREATE CURSOR prg (cLine c(127)) >> >>APPEND FROM (tcPrgFile) sdf >>SCAN >> lcLine=LOWER(ALLTRIM(cLine)) >> lcFirstWord=GETWORDNUM(lcLine, 1) >> do case >> CASE INLIST(lcFirstWord, '#', 'lparam','param','enddef','endp','endfu','proc','func','protect','hidden') >> INSERT into newprg (cLine) value (TRIM(prg.cline)) >> CASE lcFirstWord='define' and GETWORDNUM(lcLine,2)='class' >> lcOldClass=GETWORDNUM(lcLine, 3) >> lcOldParent=GETWORDNUM(SUBSTR(lcLine, AT('as ',lcline)+3),1) >> lcNewClass=STUFF(lcOldClass,1, LEN(tcPrefix), tcPrefix) >> lcNewLine=STRTRAN(lcLine, lcOldClass,lcNewClass) >> lcNewLine=STRTRAN(lcNewLine, lcOldParent, lcOldClass) >> lcComment="* redefinition of "+lcOldClass+" of "+tcPrgFile >> INSERT into newprg(cLine) value (lcComment) >> INSERT into newprg(cLine) value (lcNewLine) >> ENDCASE >>ENDSCAN >> >>SELECT newprg >>SET TEXTMERGE on noshow to memvar cNewText ><b>SET TEXTMERGE DELIMITERS TO "{{","}}"</b> >>SCAN >> <b>\{{TRIM(cLine)}}</b> >> \ >>ENDSCAN >>SET TEXTMERGE to >>SET TEXTMERGE off show >>=STRTOFILE(cNewText, tcNewFile) >> >>>