
On Fri, Jul 06, 2007 at 03:05:09PM +0100, Richard W.M. Jones wrote:
Daniel Veillard wrote: [...]
/** + * virBufferEscapeString: + * @buf: the buffer to dump + * @format: a printf like format string but with only one %s parameter + * @str: the string argument which need to be escaped + * + * Do a formatted print with a single string to an XML buffer. The string + * is escaped to avoid generating a not well-formed XML instance. + * + * Returns 0 successful, -1 in case of internal or API error. + */ +int +virBufferEscapeString(virBufferPtr buf, const char *format, const char *str)
I spent a bit of time pondering if it would be possible to either make this call type-safe, or else handle arbitrary format strings. I'm not sure I can see a good way to do either, so in the meantime, +1.
If we want safety then we should be using an API based on structural notion of XML elements & attributes, rather than printf. In our use cases any single attribute / element is either a boolean, int or a string, so if we had APIs based on idea of creating elements / adding attributes the whole thing could be typesafe & have no need of any printf formatting. Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|