aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2009-03-18 05:04:41 -0400
committerMike Frysinger <vapier@gentoo.org>2009-03-18 07:45:12 -0400
commitacfaf3aaaf46b09c5292c62ae941ff95d83ebf31 (patch)
treebdc0d44e6526c59bc30a1b7a5ab1cf7c446f2a6c /libsbutil
parentlibsandbox: shorten the sandbox wrapper func names (diff)
downloadsandbox-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.c13
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;