the sqlite c api has the following function (and several like it):
int sqlite_exec_printf(sqlite*,
char *sql,
int (*)(void*,int,char**,char**),
void*,
char **errmsg,
...);
it would be nice if the header file prototyped it like so:
int sqlite_exec_printf(sqlite*,
char *sql,
int (*)(void*,int,char**,char**),
void*,
char **errmsg,
...) __attribute__((format(__printf__, 2, 6)));
for me, that catches quite a few annoying errors at compile time.
however i have to play tricks with sed to get this to actually do this
checking because the sqlite functions create two new function
specifiers: %q and %Q. they do the proper escapes for strings in sql
(for idiot testing i change %[Qq] to %s and use a different sqlite.h
file with the __attribute__ bit in it).
it would be nice to be able to extend the current format archtypes.
maybe something like this:
int sqlite_exec_printf(sqlite*,
char *sql,
int (*)(void*,int,char**,char**),
void*,
char **errmsg,
...) __attribute__((format(
__printf_extend__("Q", char *, "q", char *),
2, 6)));
is there any interest in this? if i was to come up with a patch that
accomplished this, would it have a chance of acceptance? is there a
better syntax that people might suggest?
kevin
--
kevin lyda ~ dems for torture: salazar(co/10) landrieu(la/08) pryor(ar/08)
[EMAIL PROTECTED] ~ nelson(fl/06) nelson(ne/06) lieberman(ct/06) 2/2/04
Those who refuse to raise their voices against something as clearly evil
as torture are enablers, if not collaborators. --Bob Herbert, 2/11/04