summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-20 04:34:14 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-20 04:34:14 +0000
commita6a8847190d9075b742e6247a769c2b8c6ab5f0c (patch)
tree10dc48fe45c7714540858394da15340b021d9bf4
parent5345d52ff66b5970c488719749154d53eacc4eb0 (diff)
* numeric.c (flo_eq): alway check if operands are NaN.
[ruby-list:39685] * lib/cgi/session.rb: use LOCK_SH to read, and a few other improvements. [ruby-core:02328] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--configure.in2
-rw-r--r--ext/socket/getaddrinfo.c3
-rw-r--r--ext/socket/getnameinfo.c3
-rw-r--r--ext/socket/socket.c1
-rw-r--r--lib/cgi/session.rb49
-rw-r--r--lib/mkmf.rb2
-rw-r--r--numeric.c2
8 files changed, 44 insertions, 28 deletions
diff --git a/ChangeLog b/ChangeLog
index 8dd2a4b..2160eca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu May 20 12:38:06 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * numeric.c (flo_eq): alway check if operands are NaN.
+ [ruby-list:39685]
+
Thu May 20 12:34:39 2004 Dave Thomas <dave@pragprog.com>
* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_visibility):
@@ -2645,6 +2650,11 @@ Wed Jan 28 12:43:07 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
* lib/rss: rss library imported. [ruby-dev:22726]
+Wed Jan 28 04:29:41 2004 Eric Schwartz <emschwar@fc.hp.com>
+
+ * lib/cgi/session.rb: use LOCK_SH to read, and a few other
+ improvements. [ruby-core:02328]
+
Tue Jan 27 15:00:14 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
* misc/ruby-mode.el: better support for general delimited
diff --git a/configure.in b/configure.in
index 3e10b03..5dd8cbd 100644
--- a/configure.in
+++ b/configure.in
@@ -354,6 +354,8 @@ freebsd*) LIBS="-lm $LIBS"
;;
bow) ac_cv_func_setitimer=no
;;
+superux*) ac_cv_func_setitimer=no
+ ;;
*) LIBS="-lm $LIBS";;
esac
AC_CHECK_LIB(crypt, crypt)
diff --git a/ext/socket/getaddrinfo.c b/ext/socket/getaddrinfo.c
index c05fbd5..14bedb2 100644
--- a/ext/socket/getaddrinfo.c
+++ b/ext/socket/getaddrinfo.c
@@ -56,6 +56,9 @@
#endif
#include <netdb.h>
#if defined(HAVE_RESOLV_H)
+#ifdef _SX
+#include <stdio.h>
+#endif
#include <resolv.h>
#endif
#include <unistd.h>
diff --git a/ext/socket/getnameinfo.c b/ext/socket/getnameinfo.c
index a75f233..4c9c8f0 100644
--- a/ext/socket/getnameinfo.c
+++ b/ext/socket/getnameinfo.c
@@ -51,6 +51,9 @@
#endif
#include <netdb.h>
#if defined(HAVE_RESOLV_H)
+#ifdef _SX
+#include <stdio.h>
+#endif
#include <resolv.h>
#endif
#endif
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index a11756b..0fe98c8 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -1132,6 +1132,7 @@ make_hostent_internal(arg)
rb_ary_push(ary, names);
rb_ary_push(ary, INT2NUM(addr->ai_family));
for (ai = addr; ai; ai = ai->ai_next) {
+ printf("SA_LEN(%d)=%d\n", ai->ai_addrlen, SA_LEN(ai->ai_addr));
rb_ary_push(ary, (*ipaddr)(ai->ai_addr, ai->ai_addrlen));
}
diff --git a/lib/cgi/session.rb b/lib/cgi/session.rb
index 7115cae..cd6ce95 100644
--- a/lib/cgi/session.rb
+++ b/lib/cgi/session.rb
@@ -364,16 +364,11 @@ class CGI
unless check_id(id)
raise ArgumentError, "session_id `%s' is invalid" % id
end
- path = dir+"/"+prefix+id
- path.untaint
- unless File::exist? path
+ @path = dir+"/"+prefix+id
+ @path.untaint
+ unless File::exist? @path
@hash = {}
end
- begin
- @f = open(path, "r+")
- rescue Errno::ENOENT
- @f = open(path, "w+")
- end
end
# Restore session state from the session's FileStore file.
@@ -382,13 +377,17 @@ class CGI
def restore
unless @hash
@hash = {}
- @f.flock File::LOCK_EX
- @f.rewind
- for line in @f
- line.chomp!
- k, v = line.split('=',2)
- @hash[CGI::unescape(k)] = CGI::unescape(v)
- end
+ begin
+ f = File.open(@path, 'r')
+ f.flock File::LOCK_SH
+ for line in f
+ line.chomp!
+ k, v = line.split('=',2)
+ @hash[CGI::unescape(k)] = CGI::unescape(v)
+ end
+ ensure
+ f.close unless f.nil?
+ end
end
@hash
end
@@ -396,25 +395,25 @@ class CGI
# Save session state to the session's FileStore file.
def update
return unless @hash
- @f.rewind
- for k,v in @hash
- @f.printf "%s=%s\n", CGI::escape(k), CGI::escape(String(v))
- end
- @f.truncate @f.tell
+ begin
+ f = File.open(@path, 'w')
+ f.flock File::LOCK_EX
+ for k,v in @hash
+ f.printf "%s=%s\n", CGI::escape(k), CGI::escape(String(v))
+ end
+ ensure
+ f.close unless f.nil?
+ end
end
# Update and close the session's FileStore file.
def close
- return if @f.closed?
update
- @f.close
end
# Close and delete the session's FileStore file.
def delete
- path = @f.path
- @f.close
- File::unlink path
+ File::unlink @path
end
end
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index c8e98fb..a95fb7e 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -603,7 +603,7 @@ def check_sizeof(type, header = nil, &b)
end
message(a = size ? "#{size}\n" : "failed\n")
Logging::message "-------------------- %s\n", a
- r
+ size
end
def find_executable0(bin, path = nil)
diff --git a/numeric.c b/numeric.c
index e0eab93..4c97fbe 100644
--- a/numeric.c
+++ b/numeric.c
@@ -834,9 +834,7 @@ flo_eq(x, y)
return num_equal(x, y);
}
a = RFLOAT(x)->value;
-#if defined __BORLANDC__
if (isnan(a) || isnan(b)) return Qfalse;
-#endif
return (a == b)?Qtrue:Qfalse;
}