>* 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) >>