From a438c908aa512803d084d507a54a9968ac121352 Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 18 Oct 1999 09:03:16 +0000 Subject: [PATCH] 19991018 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- array.c | 8 ++++++++ error.c | 4 ++++ ext/nkf/depend | 2 +- io.c | 2 +- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/array.c b/array.c index 9cc0ac1815..a982627937 100644 --- a/array.c +++ b/array.c @@ -280,6 +280,7 @@ VALUE rb_ary_pop(ary) VALUE ary; { + rb_ary_modify(ary); if (RARRAY(ary)->len == 0) return Qnil; if (RARRAY(ary)->len * 10 < RARRAY(ary)->capa && RARRAY(ary)->capa > ARY_DEFAULT_SIZE) { RARRAY(ary)->capa = RARRAY(ary)->len * 2; @@ -294,6 +295,7 @@ rb_ary_shift(ary) { VALUE top; + rb_ary_modify(ary); if (RARRAY(ary)->len == 0) return Qnil; top = RARRAY(ary)->ptr[0]; @@ -821,6 +823,7 @@ rb_ary_reverse(ary) VALUE *p1, *p2; VALUE tmp; + rb_ary_modify(ary); if (RARRAY(ary)->len == 0) return ary; p1 = RARRAY(ary)->ptr; @@ -943,6 +946,10 @@ rb_ary_delete_at(ary, at) long i1, i2, pos; VALUE del = Qnil; + if (pos >= len) return Qnil; + if (pos < 0) pos += len; + if (pos < 0) return Qnil; + rb_ary_modify(ary); pos = NUM2LONG(at); for (i1 = i2 = 0; i1 < RARRAY(ary)->len; i1++) { @@ -1005,6 +1012,7 @@ static VALUE rb_ary_clear(ary) VALUE ary; { + rb_ary_modify(ary); RARRAY(ary)->len = 0; if (ARY_DEFAULT_SIZE*3 < RARRAY(ary)->capa) { RARRAY(ary)->capa = ARY_DEFAULT_SIZE * 2; diff --git a/error.c b/error.c index 6a48210b4e..0e8fd6aa3b 100644 --- a/error.c +++ b/error.c @@ -26,6 +26,10 @@ int sys_nerr = 256; #endif +#if defined __CYGWIN__ && defined _sys_nerr +#define sys_nerr _sys_nerr +#endif + int ruby_nerrs; static void diff --git a/ext/nkf/depend b/ext/nkf/depend index 645bc869c8..13e32e6074 100644 --- a/ext/nkf/depend +++ b/ext/nkf/depend @@ -1 +1 @@ -nkf.o : nkf.c $(hdrdir)/ruby.h $(topdir)/config.h $(hdrdir)/defines.h nkf1.7/nkf.c +nkf.o : nkf.c $(hdrdir)/ruby.h $(topdir)/config.h $(hdrdir)/defines.h $(srcdir)/nkf1.7/nkf.c diff --git a/io.c b/io.c index 1dba2ea69a..ae5634e25b 100644 --- a/io.c +++ b/io.c @@ -2627,7 +2627,7 @@ rb_io_ctl(io, req, arg, io_p) int io_p; { #if !defined(MSDOS) && !defined(__human68k__) - int cmd = NUM2INT(req); + int cmd = NUM2ULONG(req); OpenFile *fptr; int len = 0; int fd;