aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-11-23 05:11:18 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-11-23 05:11:18 +0000
commit7ff5d02f8b7d5af37032b55e2066245914c9a6cb (patch)
tree53c2e4dfd9eaf8490faaa12d75793d30cf513722
parent67673f6b478302f7350057e46961a7b25e56a0f3 (diff)
downloadruby-7ff5d02f8b7d5af37032b55e2066245914c9a6cb.tar.gz
* re.c (KR_REHASH): should cast to unsigned for 64bit CPU.
[ruby-core:06721] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--missing/vsnprintf.c18
-rw-r--r--re.c2
3 files changed, 16 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index dab2ca139f..4e6fb2ba49 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Nov 23 03:40:49 2005 Guy Decoux <ts@moulon.inra.fr>
+
+ * re.c (KR_REHASH): should cast to unsigned for 64bit CPU.
+ [ruby-core:06721]
+
Wed Nov 23 07:26:44 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
* ext/openssl/extconf.rb: check for X509V3_EXT_nconf_nid.
diff --git a/missing/vsnprintf.c b/missing/vsnprintf.c
index 3a922b721f..11f4de350b 100644
--- a/missing/vsnprintf.c
+++ b/missing/vsnprintf.c
@@ -111,6 +111,13 @@
#endif /* People who don't like const sys_error */
#include <stddef.h>
+#if defined(__hpux) && !defined(__GNUC__) || defined(__DECC)
+#include <string.h>
+#endif
+
+#if !defined(__CYGWIN32__) && defined(__hpux) && !defined(__GNUC__)
+#include <stdlib.h>
+#endif
#ifndef NULL
#define NULL 0
@@ -194,6 +201,9 @@ typedef struct __sFILE {
#define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))
#define __sfileno(p) ((p)->_file)
+#undef feof
+#undef ferror
+#undef clearerr
#define feof(p) __sfeof(p)
#define ferror(p) __sferror(p)
#define clearerr(p) __sclearerr(p)
@@ -203,10 +213,6 @@ typedef struct __sFILE {
#endif
-#if defined(__hpux) && !defined(__GNUC__) || defined(__DECC)
-#include <string.h>
-#endif
-
/*
* I/O descriptors for __sfvwrite().
*/
@@ -303,10 +309,6 @@ static int BSD__sfvwrite(fp, uio)
* This code is large and complicated...
*/
-#if !defined(__CYGWIN32__) && defined(__hpux) && !defined(__GNUC__)
-#include <stdlib.h>
-#endif
-
/*
* Flush out all the vectors defined by the given uio,
* then reset it so that it can be reused.
diff --git a/re.c b/re.c
index bd76e17f7c..18f74fa079 100644
--- a/re.c
+++ b/re.c
@@ -105,7 +105,7 @@ rb_memsearch(char *x0, long m, char *y0, long n)
int d;
unsigned long hx, hy;
-#define KR_REHASH(a, b, h) (((h) << 1) - ((long)(a)<<d) + (b))
+#define KR_REHASH(a, b, h) (((h) << 1) - (((unsigned long)(a))<<d) + (b))
if (m > n) return -1;
s = y; e = s + n - m;