diff options
author | Mike Frysinger <vapier@gentoo.org> | 2009-03-18 05:04:41 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-03-18 07:45:12 -0400 |
commit | acfaf3aaaf46b09c5292c62ae941ff95d83ebf31 (patch) | |
tree | bdc0d44e6526c59bc30a1b7a5ab1cf7c446f2a6c /libsbutil | |
parent | libsandbox: shorten the sandbox wrapper func names (diff) | |
download | sandbox-acfaf3aaaf46b09c5292c62ae941ff95d83ebf31.tar.gz sandbox-acfaf3aaaf46b09c5292c62ae941ff95d83ebf31.tar.bz2 sandbox-acfaf3aaaf46b09c5292c62ae941ff95d83ebf31.zip |
sb_print: add l (long) modifier support
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'libsbutil')
-rw-r--r-- | libsbutil/sb_printf.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libsbutil/sb_printf.c b/libsbutil/sb_printf.c index 2270ece..d3a27df 100644 --- a/libsbutil/sb_printf.c +++ b/libsbutil/sb_printf.c @@ -25,8 +25,9 @@ #include "headers.h" #include "sbutil.h" -#define MOD_SIZE_T (1 << 0) -#define MOD_STAR (1 << 1) +#define MOD_STAR (1 << 0) +#define MOD_SIZE_T (1 << 1) +#define MOD_LONG_T (1 << 2) void sb_vfdprintf(int fd, const char *format, va_list args) { @@ -64,6 +65,12 @@ void sb_vfdprintf(int fd, const char *format, va_list args) } sb_write(fd, conv, 1); break; + case 'l': + ++conv; + if (modifiers & MOD_LONG_T) + goto inv_modifier; + modifiers |= MOD_LONG_T; + goto eat_more; case 'z': ++conv; if (modifiers & MOD_SIZE_T) @@ -99,6 +106,8 @@ void sb_vfdprintf(int fd, const char *format, va_list args) long i; if (modifiers & MOD_SIZE_T) i = va_arg(args, ssize_t); + else if (modifiers & MOD_LONG_T) + i = va_arg(args, long); else i = va_arg(args, int); u = i; |