1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

*** empty log message ***

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 1998-03-03 02:39:35 +00:00
parent 6bb525282c
commit 0861165bdc
11 changed files with 711 additions and 707 deletions

View file

@ -1,3 +1,17 @@
Tue Mar 3 11:21:28 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
* eval.c (thread_stop): stopping only thread raises ThreadError
exception.
Tue Mar 3 08:04:56 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
* struct.c (struct_alloc): imcomplete struct initialization made
GC to access unallocated addresses.
Mon Mar 2 16:28:27 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
* eval.c (thread_stop_method): remove Thread#stop.
Fri Feb 27 18:16:26 1998 Yukihiro Matsumoto <matz@netlab.co.jp> Fri Feb 27 18:16:26 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
* version 1.1b9 released. * version 1.1b9 released.

View file

@ -104,6 +104,7 @@ lib/mailread.rb
lib/mathn.rb lib/mathn.rb
lib/matrix.rb lib/matrix.rb
lib/mkmf.rb lib/mkmf.rb
lib/monitor.rb
lib/mutex_m.rb lib/mutex_m.rb
lib/observer.rb lib/observer.rb
lib/ostruct.rb lib/ostruct.rb
@ -133,6 +134,7 @@ missing/dir.h
missing/dup2.c missing/dup2.c
missing/file.h missing/file.h
missing/flock.c missing/flock.c
missing/memcmp.c
missing/memmove.c missing/memmove.c
missing/mkdir.c missing/mkdir.c
missing/nt.c missing/nt.c

186
configure vendored
View file

@ -2516,16 +2516,52 @@ EOF
fi fi
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
echo "configure:2521: checking for 8-bit clean memcmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
ac_cv_func_memcmp_clean=no
else
cat > conftest.$ac_ext <<EOF
#line 2529 "configure"
#include "confdefs.h"
main()
{
char c0 = 0x40, c1 = 0x80, c2 = 0x81;
exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
}
EOF
if { (eval echo configure:2539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_memcmp_clean=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -fr conftest*
ac_cv_func_memcmp_clean=no
fi
rm -fr conftest*
fi
fi
echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o"
for ac_func in dup2 setenv memmove mkdir strcasecmp strerror strftime\ for ac_func in dup2 setenv memmove mkdir strcasecmp strerror strftime\
strstr strtoul strdup crypt flock strstr strtoul strdup crypt flock
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:2524: checking for $ac_func" >&5 echo "configure:2560: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2529 "configure" #line 2565 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
@ -2548,7 +2584,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:2552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then if { (eval echo configure:2588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
@ -2581,12 +2617,12 @@ for ac_func in fmod killpg random wait4 waitpid syscall getcwd\
dlopen sigprocmask sigaction _setjmp dlopen sigprocmask sigaction _setjmp
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:2585: checking for $ac_func" >&5 echo "configure:2621: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2590 "configure" #line 2626 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
@ -2609,7 +2645,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:2613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then if { (eval echo configure:2649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
@ -2635,12 +2671,12 @@ done
if test "$ac_cv_func_strftime" = no; then if test "$ac_cv_func_strftime" = no; then
echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
echo "configure:2639: checking whether struct tm is in sys/time.h or time.h" >&5 echo "configure:2675: checking whether struct tm is in sys/time.h or time.h" >&5
if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2644 "configure" #line 2680 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
#include <time.h> #include <time.h>
@ -2648,7 +2684,7 @@ int main() {
struct tm *tp; tp->tm_sec; struct tm *tp; tp->tm_sec;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:2652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:2688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
ac_cv_struct_tm=time.h ac_cv_struct_tm=time.h
else else
@ -2669,12 +2705,12 @@ EOF
fi fi
echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
echo "configure:2673: checking for tm_zone in struct tm" >&5 echo "configure:2709: checking for tm_zone in struct tm" >&5
if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2678 "configure" #line 2714 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
#include <$ac_cv_struct_tm> #include <$ac_cv_struct_tm>
@ -2682,7 +2718,7 @@ int main() {
struct tm tm; tm.tm_zone; struct tm tm; tm.tm_zone;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:2686: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:2722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
ac_cv_struct_tm_zone=yes ac_cv_struct_tm_zone=yes
else else
@ -2702,12 +2738,12 @@ EOF
else else
echo $ac_n "checking for tzname""... $ac_c" 1>&6 echo $ac_n "checking for tzname""... $ac_c" 1>&6
echo "configure:2706: checking for tzname" >&5 echo "configure:2742: checking for tzname" >&5
if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2711 "configure" #line 2747 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <time.h> #include <time.h>
#ifndef tzname /* For SGI. */ #ifndef tzname /* For SGI. */
@ -2717,7 +2753,7 @@ int main() {
atoi(*tzname); atoi(*tzname);
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:2721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then if { (eval echo configure:2757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest* rm -rf conftest*
ac_cv_var_tzname=yes ac_cv_var_tzname=yes
else else
@ -2739,14 +2775,14 @@ EOF
fi fi
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2743 "configure" #line 2779 "configure"
#include "confdefs.h" #include "confdefs.h"
int main() { int main() {
extern int daylight; int i = daylight; extern int daylight; int i = daylight;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:2750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then if { (eval echo configure:2786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest* rm -rf conftest*
cat >> confdefs.h <<\EOF cat >> confdefs.h <<\EOF
#define HAVE_DAYLIGHT 1 #define HAVE_DAYLIGHT 1
@ -2766,7 +2802,7 @@ EOF
else else
echo $ac_n "checking for BSD signal semantics""... $ac_c" 1>&6 echo $ac_n "checking for BSD signal semantics""... $ac_c" 1>&6
echo "configure:2770: checking for BSD signal semantics" >&5 echo "configure:2806: checking for BSD signal semantics" >&5
if eval "test \"`echo '$''{'rb_cv_bsd_signal'+set}'`\" = set"; then if eval "test \"`echo '$''{'rb_cv_bsd_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -2774,7 +2810,7 @@ else
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2778 "configure" #line 2814 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <stdio.h> #include <stdio.h>
@ -2796,7 +2832,7 @@ main()
} }
EOF EOF
if { (eval echo configure:2800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null if { (eval echo configure:2836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then then
rb_cv_bsd_signal=yes rb_cv_bsd_signal=yes
else else
@ -2830,19 +2866,19 @@ EOF
else else
echo $ac_n "checking whether getpgrp() has arg""... $ac_c" 1>&6 echo $ac_n "checking whether getpgrp() has arg""... $ac_c" 1>&6
echo "configure:2834: checking whether getpgrp() has arg" >&5 echo "configure:2870: checking whether getpgrp() has arg" >&5
if eval "test \"`echo '$''{'rb_cv_bsdgetpgrp'+set}'`\" = set"; then if eval "test \"`echo '$''{'rb_cv_bsdgetpgrp'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2839 "configure" #line 2875 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <unistd.h> #include <unistd.h>
int main() { int main() {
getpgrp(0); getpgrp(0);
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:2846: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:2882: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
rb_cv_bsdgetpgrp=yes rb_cv_bsdgetpgrp=yes
else else
@ -2863,19 +2899,19 @@ EOF
fi fi
echo $ac_n "checking whether setpgrp() has args""... $ac_c" 1>&6 echo $ac_n "checking whether setpgrp() has args""... $ac_c" 1>&6
echo "configure:2867: checking whether setpgrp() has args" >&5 echo "configure:2903: checking whether setpgrp() has args" >&5
if eval "test \"`echo '$''{'rb_cv_bsdsetpgrp'+set}'`\" = set"; then if eval "test \"`echo '$''{'rb_cv_bsdsetpgrp'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2872 "configure" #line 2908 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <unistd.h> #include <unistd.h>
int main() { int main() {
setpgrp(1, 1); setpgrp(1, 1);
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:2879: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:2915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
rb_cv_bsdsetpgrp=yes rb_cv_bsdsetpgrp=yes
else else
@ -2897,14 +2933,14 @@ EOF
fi fi
echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
echo "configure:2901: checking whether byte ordering is bigendian" >&5 echo "configure:2937: checking whether byte ordering is bigendian" >&5
if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
ac_cv_c_bigendian=unknown ac_cv_c_bigendian=unknown
# See if sys/param.h defines the BYTE_ORDER macro. # See if sys/param.h defines the BYTE_ORDER macro.
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2908 "configure" #line 2944 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
#include <sys/param.h> #include <sys/param.h>
@ -2915,11 +2951,11 @@ int main() {
#endif #endif
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:2919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:2955: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
# It does; now see whether it defined to BIG_ENDIAN or not. # It does; now see whether it defined to BIG_ENDIAN or not.
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2923 "configure" #line 2959 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
#include <sys/param.h> #include <sys/param.h>
@ -2930,7 +2966,7 @@ int main() {
#endif #endif
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:2934: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:2970: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
ac_cv_c_bigendian=yes ac_cv_c_bigendian=yes
else else
@ -2950,7 +2986,7 @@ if test "$cross_compiling" = yes; then
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2954 "configure" #line 2990 "configure"
#include "confdefs.h" #include "confdefs.h"
main () { main () {
/* Are we little or big endian? From Harbison&Steele. */ /* Are we little or big endian? From Harbison&Steele. */
@ -2963,7 +2999,7 @@ main () {
exit (u.c[sizeof (long) - 1] == 1); exit (u.c[sizeof (long) - 1] == 1);
} }
EOF EOF
if { (eval echo configure:2967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null if { (eval echo configure:3003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then then
ac_cv_c_bigendian=no ac_cv_c_bigendian=no
else else
@ -2987,14 +3023,14 @@ EOF
fi fi
echo $ac_n "checking whether char is unsigned""... $ac_c" 1>&6 echo $ac_n "checking whether char is unsigned""... $ac_c" 1>&6
echo "configure:2991: checking whether char is unsigned" >&5 echo "configure:3027: checking whether char is unsigned" >&5
if eval "test \"`echo '$''{'ac_cv_c_char_unsigned'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_c_char_unsigned'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
if test "$GCC" = yes; then if test "$GCC" = yes; then
# GCC predefines this symbol on systems where it applies. # GCC predefines this symbol on systems where it applies.
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2998 "configure" #line 3034 "configure"
#include "confdefs.h" #include "confdefs.h"
#ifdef __CHAR_UNSIGNED__ #ifdef __CHAR_UNSIGNED__
yes yes
@ -3016,7 +3052,7 @@ if test "$cross_compiling" = yes; then
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3020 "configure" #line 3056 "configure"
#include "confdefs.h" #include "confdefs.h"
/* volatile prevents gcc2 from optimizing the test away on sparcs. */ /* volatile prevents gcc2 from optimizing the test away on sparcs. */
#if !defined(__STDC__) || __STDC__ != 1 #if !defined(__STDC__) || __STDC__ != 1
@ -3026,7 +3062,7 @@ main() {
volatile char c = 255; exit(c < 0); volatile char c = 255; exit(c < 0);
} }
EOF EOF
if { (eval echo configure:3030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null if { (eval echo configure:3066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then then
ac_cv_c_char_unsigned=yes ac_cv_c_char_unsigned=yes
else else
@ -3051,19 +3087,19 @@ fi
echo $ac_n "checking count field in FILE structures""... $ac_c" 1>&6 echo $ac_n "checking count field in FILE structures""... $ac_c" 1>&6
echo "configure:3055: checking count field in FILE structures" >&5 echo "configure:3091: checking count field in FILE structures" >&5
if eval "test \"`echo '$''{'rb_cv_fcnt'+set}'`\" = set"; then if eval "test \"`echo '$''{'rb_cv_fcnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3060 "configure" #line 3096 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <stdio.h> #include <stdio.h>
int main() { int main() {
FILE *f = stdin; f->_cnt = 0; FILE *f = stdin; f->_cnt = 0;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3067: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3103: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
rb_cv_fcnt="_cnt" rb_cv_fcnt="_cnt"
else else
@ -3073,14 +3109,14 @@ fi
rm -f conftest* rm -f conftest*
if test "$rb_cv_fcnt" = ""; then if test "$rb_cv_fcnt" = ""; then
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3077 "configure" #line 3113 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <stdio.h> #include <stdio.h>
int main() { int main() {
FILE *f = stdin; f->__cnt = 0; FILE *f = stdin; f->__cnt = 0;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3084: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
rb_cv_fcnt="__cnt" rb_cv_fcnt="__cnt"
else else
@ -3091,14 +3127,14 @@ rm -f conftest*
fi fi
if test "$rb_cv_fcnt" = ""; then if test "$rb_cv_fcnt" = ""; then
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3095 "configure" #line 3131 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <stdio.h> #include <stdio.h>
int main() { int main() {
FILE *f = stdin; f->_r = 0; FILE *f = stdin; f->_r = 0;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3102: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3138: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
rb_cv_fcnt="_r" rb_cv_fcnt="_r"
else else
@ -3109,14 +3145,14 @@ rm -f conftest*
fi fi
if test "$rb_cv_fcnt" = ""; then if test "$rb_cv_fcnt" = ""; then
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3113 "configure" #line 3149 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <stdio.h> #include <stdio.h>
int main() { int main() {
FILE *f = stdin; f->readCount = 0; FILE *f = stdin; f->readCount = 0;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
rb_cv_fcnt="readCount" rb_cv_fcnt="readCount"
else else
@ -3141,9 +3177,9 @@ fi
if test "$ac_cv_func_getpwent" = yes; then if test "$ac_cv_func_getpwent" = yes; then
echo $ac_n "checking struct passwd""... $ac_c" 1>&6 echo $ac_n "checking struct passwd""... $ac_c" 1>&6
echo "configure:3145: checking struct passwd" >&5 echo "configure:3181: checking struct passwd" >&5
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3147 "configure" #line 3183 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <pwd.h> #include <pwd.h>
EOF EOF
@ -3158,7 +3194,7 @@ fi
rm -f conftest* rm -f conftest*
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3162 "configure" #line 3198 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <pwd.h> #include <pwd.h>
EOF EOF
@ -3173,7 +3209,7 @@ fi
rm -f conftest* rm -f conftest*
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3177 "configure" #line 3213 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <pwd.h> #include <pwd.h>
EOF EOF
@ -3188,7 +3224,7 @@ fi
rm -f conftest* rm -f conftest*
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3192 "configure" #line 3228 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <pwd.h> #include <pwd.h>
EOF EOF
@ -3203,7 +3239,7 @@ fi
rm -f conftest* rm -f conftest*
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3207 "configure" #line 3243 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <pwd.h> #include <pwd.h>
EOF EOF
@ -3218,7 +3254,7 @@ fi
rm -f conftest* rm -f conftest*
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3222 "configure" #line 3258 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <pwd.h> #include <pwd.h>
EOF EOF
@ -3251,7 +3287,7 @@ fi
case "$host_os" in case "$host_os" in
linux*) linux*)
echo $ac_n "checking whether ELF binaries are produced""... $ac_c" 1>&6 echo $ac_n "checking whether ELF binaries are produced""... $ac_c" 1>&6
echo "configure:3255: checking whether ELF binaries are produced" >&5 echo "configure:3291: checking whether ELF binaries are produced" >&5
if eval "test \"`echo '$''{'rb_cv_linux_elf'+set}'`\" = set"; then if eval "test \"`echo '$''{'rb_cv_linux_elf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3259,7 +3295,7 @@ else
: :
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3263 "configure" #line 3299 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Test for whether ELF binaries are produced */ /* Test for whether ELF binaries are produced */
@ -3279,7 +3315,7 @@ main() {
} }
EOF EOF
if { (eval echo configure:3283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null if { (eval echo configure:3319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then then
rb_cv_linux_elf=yes rb_cv_linux_elf=yes
else else
@ -3309,7 +3345,7 @@ STATIC=
if test "$with_dln_a_out" != yes; then if test "$with_dln_a_out" != yes; then
rb_cv_dlopen=unknown rb_cv_dlopen=unknown
echo $ac_n "checking whether OS depend dynamic link works""... $ac_c" 1>&6 echo $ac_n "checking whether OS depend dynamic link works""... $ac_c" 1>&6
echo "configure:3313: checking whether OS depend dynamic link works" >&5 echo "configure:3349: checking whether OS depend dynamic link works" >&5
if test "$GCC" = yes; then if test "$GCC" = yes; then
case "$host_os" in case "$host_os" in
nextstep*) ;; nextstep*) ;;
@ -3367,13 +3403,13 @@ dln_a_out_works=no
if test "$ac_cv_header_a_out_h" = yes; then if test "$ac_cv_header_a_out_h" = yes; then
if test "$with_dln_a_out" = yes || test "$rb_cv_dlopen" = unknown; then if test "$with_dln_a_out" = yes || test "$rb_cv_dlopen" = unknown; then
echo $ac_n "checking whether matz's dln works""... $ac_c" 1>&6 echo $ac_n "checking whether matz's dln works""... $ac_c" 1>&6
echo "configure:3371: checking whether matz's dln works" >&5 echo "configure:3407: checking whether matz's dln works" >&5
cat confdefs.h > config.h cat confdefs.h > config.h
if eval "test \"`echo '$''{'rb_cv_dln_a_out'+set}'`\" = set"; then if eval "test \"`echo '$''{'rb_cv_dln_a_out'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3377 "configure" #line 3413 "configure"
#include "confdefs.h" #include "confdefs.h"
#define USE_DLN_A_OUT #define USE_DLN_A_OUT
@ -3383,7 +3419,7 @@ int main() {
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3423: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
rb_cv_dln_a_out=yes rb_cv_dln_a_out=yes
else else
@ -3466,7 +3502,7 @@ fi
case "$host_os" in case "$host_os" in
human*) human*)
echo $ac_n "checking for _harderr in -lsignal""... $ac_c" 1>&6 echo $ac_n "checking for _harderr in -lsignal""... $ac_c" 1>&6
echo "configure:3470: checking for _harderr in -lsignal" >&5 echo "configure:3506: checking for _harderr in -lsignal" >&5
ac_lib_var=`echo signal'_'_harderr | sed 'y%./+-%__p_%'` ac_lib_var=`echo signal'_'_harderr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
@ -3474,7 +3510,7 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lsignal $LIBS" LIBS="-lsignal $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3478 "configure" #line 3514 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2 /* We use char because int might match the return type of a gcc2
@ -3485,7 +3521,7 @@ int main() {
_harderr() _harderr()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then if { (eval echo configure:3525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
@ -3513,7 +3549,7 @@ else
fi fi
echo $ac_n "checking for hmemset in -lhmem""... $ac_c" 1>&6 echo $ac_n "checking for hmemset in -lhmem""... $ac_c" 1>&6
echo "configure:3517: checking for hmemset in -lhmem" >&5 echo "configure:3553: checking for hmemset in -lhmem" >&5
ac_lib_var=`echo hmem'_'hmemset | sed 'y%./+-%__p_%'` ac_lib_var=`echo hmem'_'hmemset | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
@ -3521,7 +3557,7 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lhmem $LIBS" LIBS="-lhmem $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3525 "configure" #line 3561 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2 /* We use char because int might match the return type of a gcc2
@ -3532,7 +3568,7 @@ int main() {
hmemset() hmemset()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then if { (eval echo configure:3572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
@ -3562,12 +3598,12 @@ fi
for ac_func in select for ac_func in select
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3566: checking for $ac_func" >&5 echo "configure:3602: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3571 "configure" #line 3607 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
@ -3590,7 +3626,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then if { (eval echo configure:3630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
@ -3615,7 +3651,7 @@ fi
done done
echo $ac_n "checking whether PD libc _dtos18 fail to convert big number""... $ac_c" 1>&6 echo $ac_n "checking whether PD libc _dtos18 fail to convert big number""... $ac_c" 1>&6
echo "configure:3619: checking whether PD libc _dtos18 fail to convert big number" >&5 echo "configure:3655: checking whether PD libc _dtos18 fail to convert big number" >&5
if eval "test \"`echo '$''{'rb_cv_missing__dtos18'+set}'`\" = set"; then if eval "test \"`echo '$''{'rb_cv_missing__dtos18'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3623,7 +3659,7 @@ else
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3627 "configure" #line 3663 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <stdio.h> #include <stdio.h>
@ -3635,7 +3671,7 @@ main ()
} }
EOF EOF
if { (eval echo configure:3639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null if { (eval echo configure:3675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then then
rb_cv_missing__dtos18=yes rb_cv_missing__dtos18=yes
else else
@ -3657,7 +3693,7 @@ EOF
fi fi
echo $ac_n "checking whether PD libc fconvert fail to round""... $ac_c" 1>&6 echo $ac_n "checking whether PD libc fconvert fail to round""... $ac_c" 1>&6
echo "configure:3661: checking whether PD libc fconvert fail to round" >&5 echo "configure:3697: checking whether PD libc fconvert fail to round" >&5
if eval "test \"`echo '$''{'rb_cv_missing_fconvert'+set}'`\" = set"; then if eval "test \"`echo '$''{'rb_cv_missing_fconvert'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3665,7 +3701,7 @@ else
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3669 "configure" #line 3705 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <stdio.h> #include <stdio.h>
@ -3678,7 +3714,7 @@ main ()
} }
EOF EOF
if { (eval echo configure:3682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null if { (eval echo configure:3718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then then
rb_cv_missing_fconvert=yes rb_cv_missing_fconvert=yes
else else

View file

@ -108,6 +108,7 @@ AC_TYPE_GETGROUPS
AC_TYPE_SIGNAL AC_TYPE_SIGNAL
AC_FUNC_ALLOCA AC_FUNC_ALLOCA
AC_FUNC_VFORK AC_FUNC_VFORK
AC_FUNC_MEMCMP
AC_REPLACE_FUNCS(dup2 setenv memmove mkdir strcasecmp strerror strftime\ AC_REPLACE_FUNCS(dup2 setenv memmove mkdir strcasecmp strerror strftime\
strstr strtoul strdup crypt flock) strstr strtoul strdup crypt flock)
AC_CHECK_FUNCS(fmod killpg random wait4 waitpid syscall getcwd\ AC_CHECK_FUNCS(fmod killpg random wait4 waitpid syscall getcwd\

22
eval.c
View file

@ -5462,23 +5462,16 @@ thread_pass()
return Qnil; return Qnil;
} }
static VALUE
thread_stop_method(thread)
VALUE thread;
{
thread_t th = thread_check(thread);
thread_critical = 0;
th->status = THREAD_STOPPED;
thread_schedule();
return thread;
}
static VALUE static VALUE
thread_stop() thread_stop()
{ {
thread_stop_method(curr_thread->thread); thread_critical = 0;
curr_thread->status = THREAD_STOPPED;
if (curr_thread == curr_thread->next) {
Raise(eThreadError, "stopping only thread");
}
thread_schedule();
return Qnil; return Qnil;
} }
@ -5887,7 +5880,6 @@ Init_Thread()
rb_define_method(cThread, "run", thread_run, 0); rb_define_method(cThread, "run", thread_run, 0);
rb_define_method(cThread, "wakeup", thread_wakeup, 0); rb_define_method(cThread, "wakeup", thread_wakeup, 0);
rb_define_method(cThread, "stop", thread_stop_method, 0);
rb_define_method(cThread, "exit", thread_kill, 0); rb_define_method(cThread, "exit", thread_kill, 0);
rb_define_method(cThread, "value", thread_value, 0); rb_define_method(cThread, "value", thread_value, 0);
rb_define_method(cThread, "status", thread_status, 0); rb_define_method(cThread, "status", thread_status, 0);

View file

@ -1,8 +1,8 @@
# #
# Date.rb - # Date.rb -
# $Release Version: $ # $Release Version: $
# $Revision: 1.1.1.1.4.3 $ # $Revision: 1.1.1.1.4.4 $
# $Date: 1998/02/03 10:02:57 $ # $Date: 1998/02/18 01:56:47 $
# by Yasuo OHBA(SHL Japan Inc. Technology Dept.) # by Yasuo OHBA(SHL Japan Inc. Technology Dept.)
# #
# -- # --
@ -109,6 +109,9 @@ class Date
else else
raise TypeError, "Illegal type. (Integer or Date)" raise TypeError, "Illegal type. (Integer or Date)"
end end
if d <= 0
raise ArgumentError, "argument out of range. (self > other)"
end
return Date.at(d) return Date.at(d)
end end
@ -146,11 +149,7 @@ class Date
end end
def leapyear? def leapyear?
if Date.leapyear(@year) == 1 Date.leapyear(@year) != 1
return FALSE
else
return TRUE
end
end end
def _check_date def _check_date
@ -221,10 +220,10 @@ def Date.period!(y, m, d)
p += dl[mm] p += dl[mm]
end end
p += (y - 1) * 365 + ((y - 1) / 4.0).to_i p += (y - 1) * 365 + ((y - 1) / 4.0).to_i
if (y - 1) > 1752 if y > 1752
p -= ((y - 1 - 1752) / 100.0).to_i p -= ((y - 1) / 100.0).to_i
p += ((y - 1 - 1752) / 400.0).to_i p += ((y - 1) / 400.0).to_i
p -= (14 - 3) p += 2
elsif y == 1752 && m == 9 && d >= 14 && d <= 30 elsif y == 1752 && m == 9 && d >= 14 && d <= 30
p -= (14 - 3) p -= (14 - 3)
end end

View file

@ -1,13 +1,12 @@
### ftplib.rb -*- Mode: ruby; tab-width: 8; -*- ## ftplib.rb
## $Revision: 1.5 $ # Author: Shugo Maeda <shugo@po.aianet.ne.jp>
## $Date: 1997/09/16 08:03:31 $ # Version: $Revision: 1.6 $
## by maeda shugo <shugo@po.aianet.ne.jp>
### Code: ## Code:
require "socket" require "socket"
require "sync" if defined? Thread require "monitor"
class FTPError < Exception; end class FTPError < Exception; end
class FTPReplyError < FTPError; end class FTPReplyError < FTPError; end
@ -17,58 +16,25 @@ class FTPProtoError < FTPError; end
class FTP class FTP
RCS_ID = %q$Id: ftplib.rb,v 1.5 1997/09/16 08:03:31 shugo Exp $ RCS_ID = %q$Id: ftplib.rb,v 1.6 1998/03/01 08:49:57 shugo Exp shugo $
include MonitorMixin
FTP_PORT = 21 FTP_PORT = 21
CRLF = "\r\n" CRLF = "\r\n"
attr :passive, TRUE attr_accessor :passive, :return_code, :debug_mode
attr :return_code, TRUE attr_reader :welcome, :lastresp
attr :debug_mode, TRUE
attr :welcome
attr :lastresp
THREAD_SAFE = defined?(Thread) != FALSE
if THREAD_SAFE
def synchronize(mode = :EX)
if @sync
@sync.synchronize(mode) do
yield
end
end
end
def sock_synchronize(mode = :EX)
if @sock
@sock.synchronize(mode) do
yield
end
end
end
else
def synchronize(mode = :EX)
yield
end
def sock_synchronize(mode = :EX)
yield
end
end
private :sock_synchronize
def FTP.open(host, user = nil, passwd = nil, acct = nil) def FTP.open(host, user = nil, passwd = nil, acct = nil)
new(host, user, passwd, acct) new(host, user, passwd, acct)
end end
def initialize(host = nil, user = nil, def initialize(host = nil, user = nil, passwd = nil, acct = nil)
passwd = nil, acct = nil) super
if THREAD_SAFE @passive = false
@sync = Sync.new
end
@passive = FALSE
@return_code = "\n" @return_code = "\n"
@debug_mode = FALSE @debug_mode = false
if host if host
connect(host) connect(host)
if user if user
@ -79,10 +45,10 @@ class FTP
def open_socket(host, port) def open_socket(host, port)
if defined? SOCKSsocket and ENV["SOCKS_SERVER"] if defined? SOCKSsocket and ENV["SOCKS_SERVER"]
@passive = TRUE @passive = true
SOCKSsocket.open(host, port) return SOCKSsocket.open(host, port)
else else
TCPsocket.open(host, port) return TCPsocket.open(host, port)
end end
end end
private :open_socket private :open_socket
@ -93,18 +59,15 @@ class FTP
end end
synchronize do synchronize do
@sock = open_socket(host, port) @sock = open_socket(host, port)
if THREAD_SAFE
@sock.extend Sync_m
end
voidresp voidresp
end end
end end
def sanitize(s) def sanitize(s)
if s =~ /^PASS /i if s =~ /^PASS /i
s[0, 5] + "*" * (s.length - 5) return s[0, 5] + "*" * (s.length - 5)
else else
s return s
end end
end end
private :sanitize private :sanitize
@ -129,7 +92,7 @@ class FTP
if @debug_mode if @debug_mode
print "get: ", sanitize(line), "\n" print "get: ", sanitize(line), "\n"
end end
line return line
end end
private :getline private :getline
@ -143,7 +106,7 @@ class FTP
buff << "\n" << line buff << "\n" << line
end until line[0, 3] == code and line[3] != ?- end until line[0, 3] == code and line[3] != ?-
end end
buff << "\n" return buff << "\n"
end end
private :getmultiline private :getmultiline
@ -174,22 +137,17 @@ class FTP
def sendcmd(cmd) def sendcmd(cmd)
synchronize do synchronize do
sock_synchronize do
putline(cmd) putline(cmd)
getresp return getresp
end
end end
end end
def voidcmd(cmd) def voidcmd(cmd)
synchronize do synchronize do
sock_synchronize do
putline(cmd) putline(cmd)
voidresp voidresp
end end
end end
nil
end
def sendport(host, port) def sendport(host, port)
hbytes = host.split(".") hbytes = host.split(".")
@ -205,7 +163,7 @@ class FTP
port = sock.addr[1] port = sock.addr[1]
host = TCPsocket.getaddress(@sock.addr[2]) host = TCPsocket.getaddress(@sock.addr[2])
resp = sendport(host, port) resp = sendport(host, port)
sock return sock
end end
private :makeport private :makeport
@ -225,7 +183,7 @@ class FTP
end end
conn = sock.accept conn = sock.accept
end end
conn return conn
end end
private :transfercmd private :transfercmd
@ -241,7 +199,7 @@ class FTP
else else
realuser = "anonymous" realuser = "anonymous"
end end
realuser + "@" + thishost return realuser + "@" + thishost
end end
private :getaddress private :getaddress
@ -270,7 +228,7 @@ class FTP
synchronize do synchronize do
voidcmd("TYPE I") voidcmd("TYPE I")
conn = transfercmd(cmd) conn = transfercmd(cmd)
while TRUE loop do
data = conn.read(blocksize) data = conn.read(blocksize)
break if data == nil break if data == nil
callback.call(data) callback.call(data)
@ -289,7 +247,7 @@ class FTP
synchronize do synchronize do
voidcmd("TYPE A") voidcmd("TYPE A")
conn = transfercmd(cmd) conn = transfercmd(cmd)
while TRUE loop do
line = conn.gets line = conn.gets
break if line == nil break if line == nil
if line[-2, 2] == CRLF if line[-2, 2] == CRLF
@ -312,13 +270,11 @@ class FTP
synchronize do synchronize do
voidcmd("TYPE I") voidcmd("TYPE I")
conn = transfercmd(cmd) conn = transfercmd(cmd)
while TRUE loop do
buf = file.read(blocksize) buf = file.read(blocksize)
break if buf == nil break if buf == nil
conn.write(buf) conn.write(buf)
if use_callback callback.call(buf) if use_callback
callback.call(buf)
end
end end
conn.close conn.close
voidresp voidresp
@ -333,7 +289,7 @@ class FTP
synchronize do synchronize do
voidcmd("TYPE A") voidcmd("TYPE A")
conn = transfercmd(cmd) conn = transfercmd(cmd)
while TRUE loop do
buf = file.gets buf = file.gets
break if buf == nil break if buf == nil
if buf[-2, 2] != CRLF if buf[-2, 2] != CRLF
@ -344,17 +300,14 @@ class FTP
buf = buf + CRLF buf = buf + CRLF
end end
conn.write(buf) conn.write(buf)
if use_callback callback.call(buf) if use_callback
callback.call(buf)
end
end end
conn.close conn.close
voidresp voidresp
end end
end end
def getbinaryfile(remotefile, localfile, def getbinaryfile(remotefile, localfile, blocksize, callback = nil)
blocksize, callback = nil)
if iterator? if iterator?
callback = Proc.new callback = Proc.new
end end
@ -364,9 +317,7 @@ class FTP
f.binmode f.binmode
retrbinary("RETR " + remotefile, blocksize) do |data| retrbinary("RETR " + remotefile, blocksize) do |data|
f.write(data) f.write(data)
if use_callback callback.call(data) if use_callback
callback.call(data)
end
end end
ensure ensure
f.close f.close
@ -383,17 +334,14 @@ class FTP
retrlines("RETR " + remotefile) do |line| retrlines("RETR " + remotefile) do |line|
line = line + @return_code line = line + @return_code
f.write(line) f.write(line)
if use_callback callback.call(line) if use_callback
callback.call(line)
end
end end
ensure ensure
f.close f.close
end end
end end
def putbinaryfile(localfile, remotefile, def putbinaryfile(localfile, remotefile, blocksize, callback = nil)
blocksize, callback = nil)
if iterator? if iterator?
callback = Proc.new callback = Proc.new
end end
@ -402,9 +350,7 @@ class FTP
begin begin
f.binmode f.binmode
storbinary("STOR " + remotefile, f, blocksize) do |data| storbinary("STOR " + remotefile, f, blocksize) do |data|
if use_callback callback.call(data) if use_callback
callback.call(data)
end
end end
ensure ensure
f.close f.close
@ -419,9 +365,7 @@ class FTP
f = open(localfile) f = open(localfile)
begin begin
storlines("STOR " + remotefile, f) do |line| storlines("STOR " + remotefile, f) do |line|
if use_callback callback.call(line) if use_callback
callback.call(line)
end
end end
ensure ensure
f.close f.close
@ -442,7 +386,7 @@ class FTP
retrlines(cmd) do |line| retrlines(cmd) do |line|
files.push(line) files.push(line)
end end
files return files
end end
def list(*args) def list(*args)
@ -499,7 +443,7 @@ class FTP
def size(filename) def size(filename)
resp = sendcmd("SIZE " + filename) resp = sendcmd("SIZE " + filename)
if resp[0, 3] == "213" if resp[0, 3] == "213"
return Integer(resp[3 .. -1].strip) return resp[3 .. -1].strip.to_i
end end
end end
@ -528,27 +472,20 @@ class FTP
def abort def abort
line = "ABOR" + CRLF line = "ABOR" + CRLF
resp = ""
sock_synchronize do
print "put: ABOR\n" if @debug_mode print "put: ABOR\n" if @debug_mode
@sock.send(line, Socket::MSG_OOB) @sock.send(line, Socket::MSG_OOB)
resp = getmultiline resp = getmultiline
end
unless ["426", "226", "225"].include?(resp[0, 3]) unless ["426", "226", "225"].include?(resp[0, 3])
raise FTPProtoError, resp raise FTPProtoError, resp
end end
resp return resp
end end
def status def status
line = "STAT" + CRLF line = "STAT" + CRLF
resp = ""
sock_synchronize do
print "put: STAT\n" if @debug_mode print "put: STAT\n" if @debug_mode
@sock.send(line, Socket::MSG_OOB) @sock.send(line, Socket::MSG_OOB)
resp = getresp return getresp
end
resp
end end
def mdtm(filename) def mdtm(filename)
@ -592,7 +529,7 @@ class FTP
raise FTPProtoError, resp raise FTPProtoError, resp
end end
host = numbers[0, 4].join(".") host = numbers[0, 4].join(".")
port = (Integer(numbers[4]) << 8) + Integer(numbers[5]) port = (numbers[4].to_i << 8) + numbers[5].to_i
return host, port return host, port
end end
private :parse227 private :parse227
@ -622,3 +559,5 @@ class FTP
end end
private :parse257 private :parse257
end end
## ftplib.rb ends here

View file

@ -297,8 +297,8 @@ module Sync_m
private :sync_try_lock_sub private :sync_try_lock_sub
def sync_synchronize(mode = EX) def sync_synchronize(mode = EX)
begin
sync_lock(mode) sync_lock(mode)
begin
yield yield
ensure ensure
sync_unlock sync_unlock

View file

@ -59,8 +59,8 @@ class Mutex
end end
def synchronize def synchronize
begin
lock lock
begin
yield yield
ensure ensure
unlock unlock
@ -115,22 +115,22 @@ class Queue
end end
def pop non_block=false def pop non_block=false
item = nil
until item
Thread.critical = true Thread.critical = true
begin
loop do
if @que.length == 0 if @que.length == 0
if non_block if non_block
Thread.critical = false
raise ThreadError, "queue empty" raise ThreadError, "queue empty"
end end
@waiting.push Thread.current @waiting.push Thread.current
Thread.stop Thread.stop
else else
item = @que.shift return @que.shift
end end
end end
ensure
Thread.critical = false Thread.critical = false
item end
end end
def empty? def empty?

21
missing/memcmp.c Normal file
View file

@ -0,0 +1,21 @@
/*
* memcmp --- compare memories.
*
*/
int
memcmp(s1,s2,len)
char *s1;
char *s2;
register int len;
{
register unsigned char *a = (unsigned char*)s1;
register unsigned char *b = (unsigned char*)s2;
register int tmp;
while (len--) {
if (tmp = *a++ - *b++)
return tmp;
}
return 0;
}

View file

@ -210,9 +210,9 @@ struct_alloc(klass, values)
else { else {
NEWOBJ(st, struct RStruct); NEWOBJ(st, struct RStruct);
OBJSETUP(st, klass, T_STRUCT); OBJSETUP(st, klass, T_STRUCT);
st->len = n; st->len = 0; /* avoid GC crashing */
st->ptr = 0; /* avoid GC crashing */
st->ptr = ALLOC_N(VALUE, n); st->ptr = ALLOC_N(VALUE, n);
st->len = n;
MEMCPY(st->ptr, RARRAY(values)->ptr, VALUE, RARRAY(values)->len); MEMCPY(st->ptr, RARRAY(values)->ptr, VALUE, RARRAY(values)->len);
memclear(st->ptr+RARRAY(values)->len, n - RARRAY(values)->len); memclear(st->ptr+RARRAY(values)->len, n - RARRAY(values)->len);
@ -318,9 +318,9 @@ struct_clone(s)
{ {
NEWOBJ(st, struct RStruct); NEWOBJ(st, struct RStruct);
CLONESETUP(st, s); CLONESETUP(st, s);
st->len = RSTRUCT(s)->len; st->len = 0; /* avoid GC crashing */
st->ptr = 0; /* avoid GC crashing */
st->ptr = ALLOC_N(VALUE, RSTRUCT(s)->len); st->ptr = ALLOC_N(VALUE, RSTRUCT(s)->len);
st->len = RSTRUCT(s)->len;
MEMCPY(st->ptr, RSTRUCT(s)->ptr, VALUE, st->len); MEMCPY(st->ptr, RSTRUCT(s)->ptr, VALUE, st->len);
return (VALUE)st; return (VALUE)st;