The change was to not modify argument0 directly, but to use a helper variable to hold it (I don't remember what the compilation error was but presumably argument is read-only after 2.3)
The current version looks like this:
///tsprintf(format,...)
function tsprintf() {
//Trivial String Print Format
//Replaces each % percent sign with an argument, then returns the string.
//Inteded to make writing debug printouts less painful.
var c, s = argument[0];
for(c = 1;c < argument_count;c++){
s = string_replace(s,"%",string(argument[c]));
}
return s;
}