On 3 Jun 2010, at 14:20, Ken Thomases wrote: > >> With the va_list we don't know the number of items. >> With the format spec we don't know which of the format specifiers are >> unanticipated. > > Again, what constitutes "unanticipated" for a format specifier? If there's > something like "%@" in the string and it's _not_ intended by the caller to be > a format specifier, then the caller should have escaped the percent sign by > doubling it. >
I think this answers the question. Once you have a format specifier string and a va_list you are pretty much fully committed. 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. Unanticipated transpires to mean unanticipated by me! All I need to do is sanitise those logging statements that derive from script errors and escape % as %%. Thanks and regards Jonathan Mitchell Developer Mugginsoft LLP http://www.mugginsoft.com _______________________________________________ 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