/* ** ModifyFilename ** ** $VER: ModifyFilename 1.2.0 (5.11.93) ** ** This ARexx script contains a function which modifies a filename based upon ** user control. This script must be used in conjunction with (and called ** after calling) the ModifyFilenameSelect script. ** ** INPUTS ** ModifyFNameStr -- string describing how to modify the filename, ** as returned by ModifyFilenameSelect. ** ** RETURN ** NewFilename -- the modified filename. ** ** This script should work with current versions of ARexx. ** ** Copyright © 1992-1993 ASDG, Incorporated ** All Rights Reserved */ /*ADDRESS "ADPro"*/ OPTIONS RESULTS NL = '0A'X SQ = '27'X DQ = '22'X TRUE = 1 FALSE = 0 PARSE ARG ModifyFNameMode '"'FilenameExt'"' ZeroPrependChars FrameNumIncr SameDirID '"'NewDir'"' '"'OldFilename'"' FrameNum QuoteResult /* ADDRESS "ADPro" OKAY1 ModifyFNameMode || NL ||, FilenameExt || NL ||, ZeroPrependChars || NL ||, FrameNumIncr || NL ||, SameDirID || NL ||, NewDir || NL ||, OldFilename || NL ||, FrameNum || NL ||, QuoteResult */ LastChar = RIGHT( NewDir, 1 ) IF (NewDir ~= "") & (LastChar ~= ':') & (LastChar ~= '/') THEN NewDir = NewDir || '/' IF (SameDirID = FALSE) THEN DO /* ** Replace current directory (path) with new directory (path) */ CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename PathPart = RESULT CALL "FREDSCRIPTS:FREDFunctions/FileOnly" OldFilename FilePart = RESULT OldFilename = NewDir || FilePart END IF (ModifyFNameMode = 0) THEN DO /* ** Use existing filename */ NewFilename = OldFilename END ELSE IF (ModifyFNameMode = 1) THEN DO /* ** Remove extension */ FileExtPos = LASTPOS( '.', OldFilename ) IF (FileExtPos ~= 0) THEN NewFilename = LEFT( OldFilename, FileExtPos-1 ) ELSE NewFilename = OldFilename END ELSE IF (ModifyFNameMode = 2) THEN DO /* ** Replace extension with ??? */ FileExtPos = (LASTPOS( '.', OldFilename )) - 1 IF (FileExtPos ~= 0) THEN DO PeriodPos = LASTPOS( '.', FilenameExt ) IF (PeriodPos ~= 0) THEN NewFilename = LEFT( OldFilename, FileExtPos ) || FilenameExt ELSE NewFilename = LEFT( OldFilename, FileExtPos ) || '.' || FilenameExt END ELSE DO PeriodPos = LASTPOS( '.', OldFilename ) IF (PeriodPos ~= 0) THEN NewFilename = OldFilename || FilenameExt ELSE NewFilename = OldFilename || '.' || FilenameExt END END ELSE IF (ModifyFNameMode = 3) THEN DO /* ** Replace extension with frame number */ IF (ZeroPrependChars = 0) THEN SubStrLen = LENGTH( FrameNum+FrameNumIncr ) ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN SubStrLen = LENGTH( FrameNum+FrameNumIncr ) ELSE SubStrLen = ZeroPrependChars FileExtPos = LASTPOS( '.', OldFilename ) IF (FileExtPos ~= 0) THEN NewFilename = LEFT( OldFilename, FileExtPos ) || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" ) ELSE NewFilename = OldFilename || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" ) END ELSE IF (ModifyFNameMode = 4) THEN DO /* ** Replace filename with ??? */ CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename PathPart = RESULT NewFilename = PathPart || FilenameExt END ELSE IF (ModifyFNameMode = 5) THEN DO /* ** Replace filename with frame number */ IF (ZeroPrependChars = 0) THEN SubStrLen = LENGTH( FrameNum+FrameNumIncr ) ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN SubStrLen = LENGTH( FrameNum+FrameNumIncr ) ELSE SubStrLen = ZeroPrependChars NewFilename = RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" ) END ELSE IF (ModifyFNameMode = 6) THEN DO /* ** Replace filename with ???.frame number */ IF (ZeroPrependChars = 0) THEN SubStrLen = LENGTH( FrameNum+FrameNumIncr ) ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN SubStrLen = LENGTH( FrameNum+FrameNumIncr ) ELSE SubStrLen = ZeroPrependChars IF (SameDirID = TRUE) THEN DO CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename PathPart = RESULT NewFilename = PathPart || FilenameExt || "." || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" ) END ELSE NewFilename = NewDir || FilenameExt || "." || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" ) END ELSE IF (ModifyFNameMode = 7) THEN DO /* ** Prepend ??? */ CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename PathPart = RESULT CALL "FREDSCRIPTS:FREDFunctions/FileOnly" OldFilename FilePart = RESULT NewFilename = PathPart || FilenameExt || FilePart END ELSE IF (ModifyFNameMode = 8) THEN DO /* ** Prepend frame number */ CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename PathPart = RESULT CALL "FREDSCRIPTS:FREDFunctions/FileOnly" OldFilename FilePart = RESULT IF (ZeroPrependChars = 0) THEN SubStrLen = LENGTH( FrameNum+FrameNumIncr ) ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN SubStrLen = LENGTH( FrameNum+FrameNumIncr ) ELSE SubStrLen = ZeroPrependChars NewFilename = PathPart || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" ) || "." || FilePart END ELSE IF (ModifyFNameMode = 9) THEN DO /* ** Append ??? */ NewFilename = OldFilename || FilenameExt END ELSE IF (ModifyFNameMode = 10) THEN DO /* ** Append frame number */ IF (ZeroPrependChars = 0) THEN SubStrLen = LENGTH( FrameNum+FrameNumIncr ) ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN SubStrLen = LENGTH( FrameNum+FrameNumIncr ) ELSE SubStrLen = ZeroPrependChars NewFilename = OldFilename || "." || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" ) END ELSE IF (ModifyFNameMode = 11) THEN DO /* ** Make Framestore filename */ CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename PathPart = RESULT IF (FrameNumIncr = (0-1)) THEN DO FSFNum = RIGHT( FrameNum, 3, "0" ) END ELSE FSFNum = RIGHT( FrameNum, 3, "0" ) IF (FilenameExt = "???") THEN DO FSDesc = "Unknown" END ELSE IF (LENGTH( FilenameExt ) > 12) THEN FSDesc = LEFT( FilenameExt, 12 ) ELSE FSDesc = FilenameExt NewFilename = PathPart || FSFNum || ".FS." || FSDesc END IF (KeepQuoted = TRUE) THEN NewFilename = '"' || NewFilename || '"' RETURN NewFilename EXIT 0