With most interpreters, you're allowed to modify the contents of the args passed to your
external function. (For example, you can
overwrite the contents of an arg's data buffer, so long as you don't exceed the RXSTRING's strlength). But you shouldn't
change the RXSTRING's strptr or strlength fields. And modifying the contents of those args is not reflected back in
the script. (So, you can't use this as a way of returning new data to the script). But beware that this was never
standardized, so some interpreters may behave strangely if you modify the contents of an arg passed to you. Reginald
does not care if you modify the contents of args.
Some interpreters limit how many args a script can pass to your function. (The minimal acceptable limit is 16
args, so to be compatible with all interpreters, don't design a function that expects more than that). But Reginald does
not limit how many args can be passed to a function.