diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-05-24 16:15:42 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-05-24 16:15:42 +0000 |
commit | 80aaa3ef6c87a4cbb13c92097ee5170a663d4175 (patch) | |
tree | 76af43a7bb8a549f6e27eec6281b60efc59f9ffb /vsnprintf.c | |
parent | 8996556b058b64226e15284d55f87640586b4315 (diff) |
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
Diffstat (limited to 'vsnprintf.c')
-rw-r--r-- | vsnprintf.c | 7 |
1 files changed, 4 insertions, 3 deletions
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; |