/* * Save / Restore long filenames for non-HPFS utilities etc. * Filter version (from StdIn). Type Ren-Long for help. */ do forever parse linein filename if lines()=0 then exit filename = strip(filename) if left(filename,1) = d2c(34) then /* long filename with quote marks */ do exit parse arg filename filename = substr(filename,2) if right(filename,1) = d2c(34) then filename = left(filename,length(filename) - 1) end if filename = '/?' then filename = '' if filename == '' then do say '' say 'Ren-Long is a command line utility to save / restore .LONGNAME EAs.' say '' say 'Usage: Ren-Long filename (can include spaces)' say '' say 'Examples:' say ' Ren-Long LongFileName.Txt -> Temp1234.Txt (LongFileName.Txt in EA)' say ' Ren-Long Temp1234.Txt (LongFileName.Txt in EA) -> LongFileName.Txt' say " rep *.* : ren-long @S (using Kai Uwe Rommel's great REP utility)" say '' say 'Freeware / no guarantees. Thanks to Mark Kimes (FM/2 utilities). :)' end else do call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' call SysLoadFuncs if SysGetEA(filename,'.LONGNAME','longname') <> 0 then say "Error when trying to obtain .LONGNAME EA" else do if longname \= '' then do /* IF LONGNAME EA ALREADY EXISTS */ longname=substr(longname,5) call SysPutEA filename,'.LONGNAME','' ren '"'filename'"' '"'longname'"' end /* if longname exists */ else do /* IF LONGNAME EA DOES NOT EXIST; need to create one + rename to TEMP */ extension=right(filename,3) newname=SysTempFileName('Temp????.')||extension description = 'FDFF'x || d2c(length(text)) || '00'x || filename /* now place the constructed EA data into the file's .LONGNAME EA */ call SysPutEA filename,'.LONGNAME',description ren '"'filename'"' '"'newname'"' end /* if longname doesn't exist */ end /* SysGetEA */ end /* filename == '' */ end /* forever */