summaryrefslogtreecommitdiff
path: root/lang/ruby18-base/patches/patch-ci
diff options
context:
space:
mode:
Diffstat (limited to 'lang/ruby18-base/patches/patch-ci')
-rw-r--r--lang/ruby18-base/patches/patch-ci81
1 files changed, 81 insertions, 0 deletions
diff --git a/lang/ruby18-base/patches/patch-ci b/lang/ruby18-base/patches/patch-ci
new file mode 100644
index 00000000000..5501b66f305
--- /dev/null
+++ b/lang/ruby18-base/patches/patch-ci
@@ -0,0 +1,81 @@
+$NetBSD: patch-ci,v 1.1 2005/11/02 08:56:40 taca Exp $
+
+--- time.c.orig 2005-01-20 18:34:36.000000000 +0900
++++ time.c
+@@ -109,7 +109,7 @@ time_init(time)
+ #define NDIV(x,y) (-(-((x)+1)/(y))-1)
+ #define NMOD(x,y) ((y)-(-((x)+1)%(y))-1)
+
+-void
++static void
+ time_overflow_p(secp, usecp)
+ time_t *secp, *usecp;
+ {
+@@ -1031,6 +1031,7 @@ time_hash(time)
+ return LONG2FIX(hash);
+ }
+
++/* :nodoc: */
+ static VALUE
+ time_init_copy(copy, time)
+ VALUE copy, time;
+@@ -1259,7 +1260,7 @@ typedef unsigned long unsigned_time_t;
+ #elif SIZEOF_TIME_T == SIZEOF_INT
+ typedef unsigned int unsigned_time_t;
+ #elif SIZEOF_TIME_T == SIZEOF_LONG_LONG
+-typedef unsigned long long unsigned_time_t;
++typedef unsigned LONG_LONG unsigned_time_t;
+ #else
+ # error cannot find integer type which size is same as time_t.
+ #endif
+@@ -1742,12 +1743,11 @@ time_to_a(time)
+ #define SMALLBUF 100
+ static int
+ rb_strftime(buf, format, time)
+- char ** volatile buf;
+- char * volatile format;
+- struct tm * volatile time;
++ char **buf;
++ const char *format;
++ struct tm *time;
+ {
+- volatile int size;
+- int len, flen;
++ int size, len, flen;
+
+ (*buf)[0] = '\0';
+ flen = strlen(format);
+@@ -1819,8 +1819,8 @@ time_strftime(time, format)
+ VALUE time, format;
+ {
+ struct time_object *tobj;
+- char buffer[SMALLBUF];
+- char *fmt, *buf = buffer;
++ char buffer[SMALLBUF], *buf = buffer;
++ const char *fmt;
+ long len;
+ VALUE str;
+
+@@ -1837,19 +1837,19 @@ time_strftime(time, format)
+ }
+ else if (strlen(fmt) < len) {
+ /* Ruby string may contain \0's. */
+- char *p = fmt, *pe = fmt + len;
++ const char *p = fmt, *pe = fmt + len;
+
+ str = rb_str_new(0, 0);
+ while (p < pe) {
+ len = rb_strftime(&buf, p, &tobj->tm);
+ rb_str_cat(str, buf, len);
+ p += strlen(p) + 1;
+- if (p <= pe)
+- rb_str_cat(str, "\0", 1);
+ if (buf != buffer) {
+ free(buf);
+ buf = buffer;
+ }
++ for (fmt = p; p < pe && !*p; ++p);
++ if (p > fmt) rb_str_cat(str, fmt, p - fmt);
+ }
+ return str;
+ }