/** $VER: Version 0.6 (20 Dez. 1999), by Thorsten Willert **/ ;OPTIONS RESULTS CACHE;SIGNAL ON BREAK_C;SIGNAL ON ERROR;SIGNAL ON HALT;SIGNAL ON SYNTAX;SIGNAL ON IOERR;CALL LIBS();Para.appname='MakeSuffix';Para.appinfo='Suffix-Generator';Para.appversion='0.6';Para.apprelease='2';Para.appdate='20. Dez. 1999';Para.applongname=Para.appname Para.appversion||', © 1999 by Thorsten Willert';CALL INIT();DO WHILE(ende ~=TRUE);CALL TR_WAIT(app,'');DO WHILE TR_HANDLEMSG(app,'event');SELECT;WHEN event.trm_class='TRMS_ACTION' THEN;DO;SELECT;WHEN event.trm_id=1 THEN;DO;CALL DateiAuswahl();IF Dateien.0 ~==0 THEN CALL Start();END;WHEN event.trm_id=5 THEN CALL InfoReq();WHEN event.trm_id=10 THEN ende=TRUE;OTHERWISE NOP;END;END;WHEN event.trm_class='TRMS_NEWVALUE' THEN;DO;SELECT;WHEN event.trm_id=20 THEN UpperSuffix=TOGGLE(UpperSuffix);WHEN event.trm_id=25 THEN;DO;InfoSuffix=TOGGLE(InfoSuffix);NailInfoSuffix=TOGGLE(NailInfoSuffix);END;OTHERWISE NOP;END;END;WHEN event.trm_class='TRMS_ICONDROPPED' THEN;DO;CALL GETICONS();IF Dateien.0 ~==0 THEN CALL Start();END;WHEN event.trm_class='TRMS_CLOSEWINDOW' THEN ende=TRUE;OTHERWISE NOP;END;END;END;CALL Ende();EXIT 0;DateiAuswahl:;CALL TR_LockProject(mainwin);Dateien.0=0;CALL RqtFileReq('',Dateien.Drawer,'TITLE "'TXT_GETFILES'" PAT' Pattern 'STEM Dateien.* Flags MULTI|PATGAD');CALL TR_UnlockProject(mainwin);RETURN;GETICONS:;Dateien.0=event.trm_data.0;CALL SplitPath(event.trm_data.1,'out.*');CALL Examine(out.DirPart,'FileData.*');IF FileData.DirEntryType='DIRECTORY' THEN Dateien.Drawer=out.DirPart;DROP out.;DROP FileData.;DO i=1 TO event.trm_data.0;CALL SplitPath(event.trm_data.i,'out.*');Dateien.i=out.FilePart;END i;RETURN;InfoReq:;CALL TR_LockProject(mainwin);CALL REQ(ProgrammInfoText);CALL TR_UnlockProject(mainwin);RETURN;Start:;CALL DisableInput(mainwin,1);Abbruch=0;CALL TR_SetAttribute(mainwin,100,TROB_Progress,Dateien.0);CALL TR_SetAttribute(mainwin,0,'TRWI_TITLE',TXT_WORK);DO i=1 TO Dateien.0;DO WHILE TR_HANDLEMSG(app,'event');SELECT;WHEN event.trm_class='TRMS_ACTION' THEN;DO;SELECT;WHEN event.trm_id=105 THEN;DO;Abbruch=1;LEAVE i;END;OTHERWISE NOP;END;END;OTHERWISE NOP;END;END;CALL TR_SetAttribute(mainwin,100,TRAT_Value,i);Datei=AddPart( Dateien.Drawer, Dateien.i);IF EXISTS(Datei) THEN CALL Examine( Datei,'FileData.*');ELSE LEAVE i;IF FileData.DirEntryType='FILE' THEN;DO;CALL EXAMINEDT(Datei,dat.,STEM);DO j=0 TO icon.0;IF dat.DataType=ITyp.j THEN;DO;Suffix=ISuffix.j;LEAVE j;END;ELSE Suffix= dat.BaseName;END j;IF dat.GROUPID ~=='pict' THEN ITERATE;OldSuffix=GETSUFFIX(Datei);IF UpperSuffix==1&OldSuffix==UPPER(Suffix) THEN ITERATE;IF UpperSuffix==0&OldSuffix==LOWER(Suffix) THEN ITERATE;IF UpperSuffix==1&OldSuffix ~=='' THEN NeueDatei=REPLACE( Datei,OldSuffix,UPPER(Suffix));ELSE IF UpperSuffix==0&OldSuffix ~=='' THEN NeueDatei=REPLACE( Datei,OldSuffix,LOWER(Suffix));IF UpperSuffix==1&OldSuffix=='' THEN NeueDatei= Datei||'.'||UPPER(Suffix);ELSE IF UpperSuffix==0&OldSuffix=='' THEN NeueDatei= Datei||'.'||LOWER(Suffix);CALL EXECUTE('RENAME' Datei 'TO' NeueDatei);DateiInfo= Datei||'.info';IF (EXISTS( DateiInfo)==1)&(InfoSuffix==1) THEN;DO;IF UpperSuffix==1&OldSuffix ~=='' THEN NeuInfo=REPLACE( DateiInfo,OldSuffix,UPPER(Suffix));ELSE IF UpperSuffix==0&OldSuffix ~=='' THEN NeuInfo=REPLACE( DateiInfo,OldSuffix,LOWER(Suffix));IF UpperSuffix==1&OldSuffix=='' THEN NeuInfo= Datei||'.'||UPPER(Suffix)||'.info';ELSE IF UpperSuffix==0&OldSuffix=='' THEN NeuInfo= Datei||'.'||LOWER(Suffix)||'.info';CALL EXECUTE('RENAME' DateiInfo 'TO' NeuInfo);END;NailInfo= Datei||'.nail.info';IF (EXISTS(NailInfo)==1)&(NailInfoSuffix==1) THEN;DO;IF UpperSuffix==1&OldSuffix ~=='' THEN NeuNail=REPLACE(NailInfo,OldSuffix,UPPER(Suffix));ELSE IF UpperSuffix==0&OldSuffix ~=='' THEN NeuNail=REPLACE(NailInfo,OldSuffix,LOWER(Suffix));IF UpperSuffix==1&OldSuffix=='' THEN NeuNail= Datei||'.'||UPPER(Suffix)||'.nail.info';ELSE IF UpperSuffix==0&OldSuffix=='' THEN NeuNail= Datei||'.'||LOWER(Suffix)||'.nail.info';CALL EXECUTE('RENAME' NailInfo 'TO' NeuNail);END;END;END i;IF Abbruch=0 THEN CALL TR_SetAttribute(mainwin,0,'TRWI_TITLE',TXT_READY);ELSE CALL TR_SetAttribute(mainwin,0,'TRWI_TITLE',TXT_BREAK);CALL TR_SetAttribute(mainwin,100,TRAT_Value,0);CALL DELAY(50);CALL TR_SetAttribute(mainwin,0,'TRWI_TITLE',Para.appname);CALL DisableInput(mainwin,0);RETURN;DisableInput:PROCEDURE EXPOSE InputFeld. SetArchiv;PARSE ARG win,disable;DO i=1 TO InputFeld.0;CALL TR_SetAttribute(win,InputFeld.i,'TRAT_Disabled',disable);END;disable=TOGGLE(disable);CALL TR_SetAttribute(win,105,'TRAT_Disabled',disable);RETURN;INIT:;PARSE SOURCE . . . FullName .;IconName=REPLACE(FullName,'.rexx','');NULL='00000000'X;Pattern='#?';UpperSuffix=1;InfoSuffix=1;NailInfoSuffix=1;Dateien.Drawer='SYS:';Dateien.0=0;DateiNr=0;BarMax=100;StatusText='';InputFeld.0=5;InputFeld.1=1;InputFeld.2=5;InputFeld.3=10;InputFeld.4=20;InputFeld.5=25;CALL Sprache();app=NULL;mainwin=NULL;CALL MakeInfo();CALL GetToolTypes();app=TR_CREATEAPP('TRCA_Name "'Para.appname'" TRCA_LongName "'Para.applongname'" TRCA_Info "'Para.appinfo'" TRCA_Version "'Para.appversion'" TRCA_Release "'Para.apprelease'" TRCA_Date "'Para.appdate'" TAG_END');CALL MainWin();CALL TR_SetAttribute(mainwin,105,'TRAT_Disabled',1);RETURN;Sprache:;IF OPEN(Datei,'ENV:language') THEN Sprache=READLN(Datei);ELSE Sprache='';IF UPPER(Sprache)='DEUTSCH' THEN;DO;Menu.1.0='Programm';Menu.1.1='Dateien ...';Menu.1.2='Über ...';Menu.1.3='Beenden';Menu.2.0='Optionen';Menu.2.1='Suffix Groß';Menu.2.2='Icons umbenennen';Button.1='Abbrechen';TXT_GETFILES='Dateien';TXT_WORK='Bearbeite Dateien ...';TXT_READY='Fertig!';TXT_BREAK='Abgebrochen!';END;ELSE;DO;Menu.1.0='Programm';Menu.1.1='Files ...';Menu.1.2='About ...';Menu.1.3='Quit';Menu.2.0='Options';Menu.2.1='Upper Suffix';Menu.2.2='Rename Icons';Button.1='Break';TXT_GETFILES='Files';TXT_WORK='Working ...';TXT_READY='Ready!';TXT_BREAK='User break!';END;RETURN;MakeInfo:;ProgrammInfoText=Para.applongname||'0A'X||Para.appinfo||'0A'X||'Version:' Para.appversion '('||Para.appdate||')';RETURN;GetToolTypes:;icon.0=0;CALL GetDiskObj(IconName,'icon.*');IF icon.0 ~==0 THEN;DO i=1 TO icon.0;PARSE VAR icon.i ITyp '=' ISuffix;ITyp.i=STRIP(ITyp);ISuffix.i=STRIP(ISuffix);END;RETURN;Ende:;IF mainwin ~=NULL THEN;DO;CALL TR_CLOSEPROJECT(mainwin);END;IF app ~=NULL THEN CALL TR_DELETEAPP(app);RETURN;LIBS:;ErrLib='';IF ~SHOW('L','rexxMOOS.library')&~ADDLIB('rexxMOOS.library',100,-30,0) THEN;ErrLib='Script requires rexxMOOS.library!';IF ~SHOW('L','tritonrexx.library')&~ADDLIB('tritonrexx.library',10,-30,0) THEN;ErrLib=ErrLib||'0A'X||'Script requires tritonrexx.library!';IF ~SHOW('L','datatypes.library')&~ADDLIB('datatypes.library',0,-30,0) THEN;ErrLib=ErrLib||'0A'X||'Script requires datatypes.library!';IF ErrLib ~='' THEN;DO;CALL OPEN(Ausgabe,'CON:20/20/300/100/MakeSuffix/WAIT');CALL WRITELN(Ausgabe,ErrLib);CALL WRITELN(Ausgabe,'Press CTRL-\ to close!');EXIT 10;END;RETURN;MainWin:;mainwintags=WindowID(1) WindowTitle(Para.appname ' ') ScreenTitle(Para.applongname) WindowFlags(TRWF_ZIPTOCURRENTPOS) WindowFlags(TRWF_APPWINDOW) WindowBackfillReq BeginMenu(Menu.1.0) MenuItem(Menu.1.1,1) ItemBarlabel MenuItem(Menu.1.2,5) ItemBarlabel MenuItem(Menu.1.3,10) BeginMenu(Menu.2.0) MenuItemCC(Menu.2.1,20) ItemBarlabel MenuItemCC(Menu.2.2,25) 'VertGroupA Space HorizGroup Space VertGroupA GroupBox TRAT_Backfill TRBF_WINDOWBACK VertGroupA Space HorizGroupC Space' TextN('0%') 'SpaceS' Progress(100,DateiNr,BarMax) 'SpaceS' TextN('100%') 'Space EndGroup Space EndGroup Space HorizGroupEA' Button(Menu.1.1,1) 'Space' Button(Button.1,105) 'Space' Button(Menu.1.3,10) 'EndGroup EndGroup Space EndGroup Space EndGroup Space EndProject';mainwin=TR_OPENPROJECT(app,mainwintags);IF mainwin ~=NULL THEN ende=0;ELSE ende=1;RETURN;REQ:PROCEDURE;PARSE ARG txt,gads,title;args='';IF gads~=='' THEN args=args 'GADS' gads;IF title~=='' THEN args=args 'TITLE' title;RETURN RqtEasyReq(txt,args);GETSUFFIX:PROCEDURE;PARSE ARG File;pkt=LASTPOS('.',File);Sfx=RIGHT(File,LENGTH(File)-pkt);IF pkt==0 THEN Sfx='';RETURN Sfx;LOWER:PROCEDURE;PARSE ARG args;RETURN TRANSLATE(args,'abcdefghijklmnopqrstuvwxyzäüö','ABCDEFGHIJKLMNOPQRSTUVWXYZÄÜÖ');REPLACE:PROCEDURE;PARSE ARG src,old,new;str='';DO WHILE ''~=src;loc=POS(old,src);PARSE VAR src sub (old) src;str=str||sub;IF loc~=0 THEN str=str||new;END;RETURN str;TOGGLE:PROCEDURE;PARSE ARG i;IF i=0 THEN o=1;ELSE o=0;RETURN o;BREAK_C:;CALL RqtEasyReq('User Break!');CALL Ende();EXIT 10;HALT:;CALL RqtEasyReq('Execution stopped!');CALL Ende();EXIT 10;ERROR:;SYNTAX:;IOERR:;CALL RqtEasyReq('ERROR:' ERRORTEXT(RC) 'in line:' SIGL);CALL Ende();EXIT 20