From dbc5af97c766e667aa6aaa918cae1278afde69a7 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 23 Dec 2003 10:02:17 +0000 Subject: [PATCH] * pack.c (pack_pack): remove unnecessary negative value check. [ruby-dev:22329] * io.c (rb_io_ungetc): need fflush before ungetc if write buffer is filled. [ruby-dev:22330] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ configure.in | 2 +- io.c | 1 + lib/rexml/encodings/US-ASCII.rb | 2 +- pack.c | 17 +++++++---------- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4563fcb754..d90b777bb0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Tue Dec 23 18:09:40 2003 Yukihiro Matsumoto + + * pack.c (pack_pack): remove unnecessary negative value check. + [ruby-dev:22329] + + * io.c (rb_io_ungetc): need fflush before ungetc if write buffer + is filled. [ruby-dev:22330] + Tue Dec 23 17:26:55 2003 KONISHI Hiromasa * bcc32/Makefile.sub (config.h): bcc has finite(). [ruby-list:38940] diff --git a/configure.in b/configure.in index 59389bd378..5f1f1fc5b7 100644 --- a/configure.in +++ b/configure.in @@ -906,7 +906,7 @@ if test "$with_dln_a_out" != yes; then aix*) : ${LDSHARED='/usr/ccs/bin/ld'} XLDFLAGS="$XLDFLAGS -Wl,-bE:ruby.imp" DLDFLAGS="$DLDFLAGS "'-brtl -eInit_$(TARGET) -bI:$(topdir)/ruby.imp -bM:SRE -T512 -H512 -lc' - LDFLAGS="$LDFLAGS -brtl" + : LDFLAGS="$LDFLAGS -brtl" : ${ARCHFILE="ruby.imp"} rb_cv_dlopen=yes ;; diff --git a/io.c b/io.c index 19690ddc4d..87caa7651f 100644 --- a/io.c +++ b/io.c @@ -1315,6 +1315,7 @@ rb_io_ungetc(io, c) GetOpenFile(io, fptr); rb_io_check_readable(fptr); + flush_before_seek(fptr); if (ungetc(cc, fptr->f) == EOF && cc != EOF) rb_sys_fail(fptr->path); diff --git a/lib/rexml/encodings/US-ASCII.rb b/lib/rexml/encodings/US-ASCII.rb index 32ddfbc909..3b76080399 100644 --- a/lib/rexml/encodings/US-ASCII.rb +++ b/lib/rexml/encodings/US-ASCII.rb @@ -18,7 +18,7 @@ module REXML # Convert to UTF-8 def decode(str) - str.unpack('C*').pack('U*') +b str.unpack('C*').pack('U*') end EOL end diff --git a/pack.c b/pack.c index ab9b4b65e9..1c9f2f2b2c 100644 --- a/pack.c +++ b/pack.c @@ -90,7 +90,7 @@ TOKEN_PASTE(swap,x)(z) \ |(((x)&0x0000FF00)<<8) \ |(((x)&0x00FF0000)>>8) ) #else -define_swapx(s,short); +define_swapx(s,short) #endif #endif @@ -113,7 +113,7 @@ define_swapx(s,short); |(((x)&0x00000000FF000000)<<8) \ |(((x)&0x000000FF00000000)>>8)) #else -define_swapx(l,long); +define_swapx(l,long) #endif #endif @@ -126,11 +126,11 @@ define_swapx(l,long); #define swapf(x) swaps(x) #define FLOAT_SWAPPER unsigned short #else /* SIZEOF_FLOAT == 4 but undivide by known size of int */ -define_swapx(f,float); +define_swapx(f,float) #endif /* #if SIZEOF_SHORT == 4 */ #endif /* #if SIZEOF_LONG == 4 */ #else /* SIZEOF_FLOAT != 4 */ -define_swapx(f,float); +define_swapx(f,float) #endif /* #if SIZEOF_FLOAT == 4 */ #if SIZEOF_DOUBLE == 8 @@ -174,12 +174,12 @@ swapd(d) return dtmp; } #else /* SIZEOF_DOUBLE == 8 but undivied by known size of int */ -define_swapx(d, double); +define_swapx(d, double) #endif /* #if SIZEOF_SHORT == 4 */ #endif /* #if SIZEOF_LONG == 4 */ #endif /* #if SIZEOF_LONG == 8 */ #else /* SIZEOF_DOUBLE != 8 */ -define_swapx(d, double); +define_swapx(d, double) #endif /* #if SIZEOF_DPOUBLE == 8 */ #undef define_swapx @@ -929,10 +929,7 @@ pack_pack(ary, fmt) from = NEXTFROM; if (NIL_P(from)) l = 0; else { - l = NUM2ULONG(from); - } - if (l < 0) { - rb_raise(rb_eArgError, "pack(U): negative value"); + l = NUM2UINT(from); } le = uv_to_utf8(buf, l); rb_str_buf_cat(res, (char*)buf, le);