summaryrefslogtreecommitdiff
diff options
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-10-18 09:03:16 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-10-18 09:03:16 +0000
commita438c908aa512803d084d507a54a9968ac121352 (patch)
tree1ee608eb80aab6fb17109d7e81287af6ccb7287d
parent80c343807dcca3099466c1e8ab7a302339174f55 (diff)
19991018
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--array.c8
-rw-r--r--error.c4
-rw-r--r--ext/nkf/depend2
-rw-r--r--io.c2
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;