From 80aaa3ef6c87a4cbb13c92097ee5170a663d4175 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 24 May 2012 16:15:42 +0000 Subject: sprintf.c: inspect by plus * sprintf.c (ruby__sfvextra): [EXPERIMENTAL] use inspect instead of to_s if plus flag is given. * vsnprintf.c (BSD_vfprintf): pass sign flag. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- vsnprintf.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'vsnprintf.c') diff --git a/vsnprintf.c b/vsnprintf.c index bb6a0e139a..68fb44c27f 100644 --- a/vsnprintf.c +++ b/vsnprintf.c @@ -183,7 +183,7 @@ typedef struct __sFILE { struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ size_t _lbfsize; /* 0 or -_bf._size, for inline putc */ int (*vwrite)(/* struct __sFILE*, struct __suio * */); - char *(*vextra)(/* struct __sFILE*, size_t, void*, long* */); + char *(*vextra)(/* struct __sFILE*, size_t, void*, long*, int */); } FILE; @@ -811,11 +811,12 @@ reswitch: switch (ch) { FLUSH(); #if defined _HAVE_SANE_QUAD_ && SIZEOF_VOIDP == SIZEOF_LONG_LONG uqval = va_arg(ap, u_quad_t); - cp = (*fp->vextra)(fp, sizeof(uqval), &uqval, &fieldsz); + cp = (*fp->vextra)(fp, sizeof(uqval), &uqval, &fieldsz, sign); #else ulval = va_arg(ap, u_long); - cp = (*fp->vextra)(fp, sizeof(ulval), &ulval, &fieldsz); + cp = (*fp->vextra)(fp, sizeof(ulval), &ulval, &fieldsz, sign); #endif + sign = '\0'; if (!cp) goto error; if (prec < 0) goto long_len; size = fieldsz < prec ? (int)fieldsz : prec; -- cgit v1.2.1