Hi,
I did some digging into the LLPatch ospace, mainly because I've been doing a fair bit of patching since OT released CS 10.0 U 2016-06 which is the end of the line for 10.0. I noticed while looking at the source to the Patch() function that it made reference to an old-school (i.e. patNNNNN.txt) and new-school (i.e. 1234567.pat). The $PatchUtils.Dump() function only uses the former. So my first question to OT DEV is what is this new-school patch format? I don't see it in the patch directory on any of our CS 10.0 or CS 16.0 servers. I'm guessing it's a patch file format that has since been abandoned (an 11 char limit is awfully small and that includes the extension). I suspect that the answer goes back about 10 years.
Now, a feature request. In the $patchUtils.Dump() function, it will look on the root of the patch ospace for a feature called Comments. If it finds a script object, it will loop through the lines and write # <line> into the patch. If your comments feature is a String, it will write a single line prefixed with #. Since CS 10.0, builder won't let you save a script if it has errors, and if you just put plaintext into your Comments, it will error out. To get it to save, you need to add the preprocessor directive #ifdef DOC, then your comments, then #endif.
What would be nice is if the patchutils.Dump() function could skip the preprocessor directives. so your patch doesn't get the #ifdef DOC #endif saved along with your comments. This would allow me to keep the patching operation such that notepad *never* edits a patch file ever. I suspect this would be low level. But I checked in CS16 CSIDE (inside joke to slackers: "Have you tried Builder, it is much better"), and it has the exact same code as in CS 10.0 for doing patches.
Cheers
-Hugh