On Jun 3, 2010, at 8:46 AM, jonat...@mugginsoft.com wrote:

> My app runs user supplied scripts.
> 
> These scripts may contain RubyCocoa statements such as:
> OSX::NSLog("task parameters are %@ and %@", a, b)
> 
> These scripts may contain errors and the generated error reports may contain 
> the likes of:
> syntax error, unexpected tIDENTIFIER, expecting $end OSX::NSLog("task 
> parameters are %@ and %@", a, b)
> 
> When the error is logged the extra format specifiers trip the code.

> All I need to do is sanitise those logging statements that derive from script 
> errors and escape % as %%.

I don't think that's the route you should take.  As I mentioned toward the very 
end of my reply, if you have a string that you need to write/log, and that 
string is not supposed to be treated as a format string, don't pass it as the 
format string.  Pass it as a value.  Pass something that you control as the 
format string.

E.g.:

NSLog(@"syntax error, unexpected tIDENTIFIER, expecting $end %...@\n", 
arbitrary_nsstring);

Regards,
Ken

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to