summaryrefslogtreecommitdiffstats
path: root/missing
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-07-27 02:42:16 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-07-27 02:42:16 +0000
commit155ca721221af6b33aa5957a36da2a68dd828ae5 (patch)
tree045c16c6de9011cf95261b5bc71aaed28be07835 /missing
parent6233c68036c4fa885bb861bb7944509170736e39 (diff)
downloadruby-155ca721221af6b33aa5957a36da2a68dd828ae5.tar.gz
ruby-155ca721221af6b33aa5957a36da2a68dd828ae5.tar.xz
ruby-155ca721221af6b33aa5957a36da2a68dd828ae5.zip
* gc.c (id2ref): must not assign pointers to long int. use
LONG_LONG instead if SIZEOF_LONG < SIZEOF_VOIDP. [ruby-talk:149645] * ruby.h: use LONG_LONG to simplify the change. [ruby-talk:149645] * eval.c (rb_f_throw): replace all '0x%lx' by '%p'. [ruby-talk:149553] * missing/vsnprintf.c (BSD_vfprintf): '%p' need to handle 64bit size pointer. [ruby-talk:149553] git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@8845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'missing')
-rw-r--r--missing/vsnprintf.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/missing/vsnprintf.c b/missing/vsnprintf.c
index e3362a91f..d7d9e0be4 100644
--- a/missing/vsnprintf.c
+++ b/missing/vsnprintf.c
@@ -781,14 +781,19 @@ fp_begin: _double = va_arg(ap, double);
* defined manner.''
* -- ANSI X3J11
*/
+#ifdef _HAVE_LLP64_
+ uqval = (u_long)va_arg(ap, void *);
+ flags = (flags) | QUADINT | HEXPREFIX;
+#else
ulval = (u_long)va_arg(ap, void *);
- base = 16;
- xdigs = "0123456789abcdef";
#ifdef _HAVE_SANE_QUAD_
flags = (flags & ~QUADINT) | HEXPREFIX;
#else /* _HAVE_SANE_QUAD_ */
flags = (flags) | HEXPREFIX;
#endif /* _HAVE_SANE_QUAD_ */
+#endif
+ base = 16;
+ xdigs = "0123456789abcdef";
ch = 'x';
goto nosign;
case 's':