Do the routines handle /S like the JPSoft commands do? e.g. how ATTRIB handles /S, /S2, /S+3 ? Also is there some docs as to what the bad chars are and what they are replaced with?
No, /S is just /S. It doesn't take any fancy suboptions.
The list of things FIXNAMES may try to change is long, and affected by command line options, but here's a partial list:
%xx and =xx hexadecimal pairs decoded
caret and percent sign: changed to underscore
ampersand: changed to underscore
parentheses: changed to underscore (someone wanted this, I forget why)
C0 control characters 0x01 - 0x1f: changed to underscore
C1 control characters 0x80 = 0x9f: remapped to high-order Windows-1252 characters
double quote and backquote: remapped to apostrophe
non-breakable space and various fancy Unicode spaces: changed to ASCII space
Byte Order Mark: changed to underscore
spaces and periods at the end of the filename: stripped
Various thoroughly illegal characters like < > ? * / \ will be replaced with an underscore. However, since filenames containing these are illegal, the rename will probably fail. Sorry about that.