2000-05-09
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
2a34f89e35
commit
655e96fa59
62
ChangeLog
62
ChangeLog
@ -1,3 +1,65 @@
|
|||||||
|
Mon May 8 23:47:39 2000 Katsuyuki Komatsu <komatsu@sarion.co.jp>
|
||||||
|
|
||||||
|
* eval.c (rb_callcc): prev & next should be initialized to zero.
|
||||||
|
|
||||||
|
Mon May 8 23:17:36 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
|
* dln.c (dln_init): remove possible buffer overrun. This is
|
||||||
|
suggested by Aleksi Niemela <aleksi.niemela@cinnober.com>
|
||||||
|
|
||||||
|
* dln.c (init_funcname): ditto.
|
||||||
|
|
||||||
|
Sat May 6 23:35:47 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
|
* parse.y (lhs): should allow `obj.Attr = 5' type expression.
|
||||||
|
|
||||||
|
Sat May 6 15:46:08 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
||||||
|
|
||||||
|
* ext/socket/extconf.rb: add a new configure option to force use
|
||||||
|
of the WIDE Project's getaddrinfo(): --enbale-wide-getaddrinfo.
|
||||||
|
|
||||||
|
Fri May 5 21:19:22 2000 MOROHOSHI Akihiko <moro@remus.dti.ne.jp>
|
||||||
|
|
||||||
|
* parse.y (yylex): allow '$1foo' and such.
|
||||||
|
|
||||||
|
Fri May 5 03:25:15 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
|
* regex.c (re_compile_fastmap): charset_not for multibyte
|
||||||
|
characters excluded too many characters.
|
||||||
|
|
||||||
|
Tue May 2 13:23:43 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
|
* eval.c (rb_thread_schedule): little bit more impartial context
|
||||||
|
switching.
|
||||||
|
|
||||||
|
Tue May 2 09:50:03 2000 Katsuyuki Komatsu <komatsu@sarion.co.jp>
|
||||||
|
|
||||||
|
* configure.in: add DLDLIBS to set platform specific library
|
||||||
|
for extensions.
|
||||||
|
|
||||||
|
* ext/extmk.rb.in: use @DLDLIBS@ instead of RUBY_PLATFORM choice.
|
||||||
|
|
||||||
|
* lib/mkmf.rb: use CONFIG["DLDLIBS"] instead of RUBY_PLATFORM choice.
|
||||||
|
|
||||||
|
* config_s.dj: add @DLDLIBS@.
|
||||||
|
|
||||||
|
* win32/config.status: ditto.
|
||||||
|
|
||||||
|
* win32/ruby.def: regular maintenance.
|
||||||
|
|
||||||
|
Mon May 1 23:42:44 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
||||||
|
|
||||||
|
* configure.in, eval.c: add DLEXT2. now DLEXT on Cygwin is "so".
|
||||||
|
|
||||||
|
* defines.h: use dllimport, dllexport for Cygwin 1.1.x.
|
||||||
|
|
||||||
|
* ruby.h: ditto.
|
||||||
|
|
||||||
|
* cygwin/GNUmakefile.in: ditto.
|
||||||
|
|
||||||
|
* ext/Win32API/Win32API.c: directly "call" in asm statement for
|
||||||
|
gcc 2.95.x or newer.
|
||||||
|
|
||||||
Sat Apr 29 04:58:12 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
|
Sat Apr 29 04:58:12 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
|
||||||
|
|
||||||
* array.c (rb_ary_unshift_m): performance improvement.
|
* array.c (rb_ary_unshift_m): performance improvement.
|
||||||
|
@ -81,7 +81,7 @@ OBJS = array.@OBJEXT@ \
|
|||||||
version.@OBJEXT@ \
|
version.@OBJEXT@ \
|
||||||
$(MISSING)
|
$(MISSING)
|
||||||
|
|
||||||
all: miniruby$(EXEEXT) @PREP@ rbconfig.rb
|
all: miniruby$(EXEEXT) @PREP@ rbconfig.rb $(LIBRUBY)
|
||||||
@@MINIRUBY@ -Xext extmk.rb @EXTSTATIC@
|
@@MINIRUBY@ -Xext extmk.rb @EXTSTATIC@
|
||||||
|
|
||||||
miniruby$(EXEEXT): config.status $(LIBRUBY_A) $(MAINOBJ) dmyext.@OBJEXT@
|
miniruby$(EXEEXT): config.status $(LIBRUBY_A) $(MAINOBJ) dmyext.@OBJEXT@
|
||||||
|
2
array.c
2
array.c
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
@ -51,6 +51,7 @@ s%@LIBRUBY_A@%libruby.a%g
|
|||||||
s%@LIBRUBYARG@%libruby.a%g
|
s%@LIBRUBYARG@%libruby.a%g
|
||||||
s%@LIBRUBY_SO@%%g
|
s%@LIBRUBY_SO@%%g
|
||||||
s%@SOLIBS@%%g
|
s%@SOLIBS@%%g
|
||||||
|
s%@DLDLIBS@%%g
|
||||||
s%@srcdir%.%g
|
s%@srcdir%.%g
|
||||||
s%@arch@%i386-djgpp%g
|
s%@arch@%i386-djgpp%g
|
||||||
s%@sitedir@%${prefix}/lib/ruby/site_ruby%g
|
s%@sitedir@%${prefix}/lib/ruby/site_ruby%g
|
||||||
|
52
configure
vendored
52
configure
vendored
@ -4529,6 +4529,16 @@ EOF
|
|||||||
cat >> confdefs.h <<\EOF
|
cat >> confdefs.h <<\EOF
|
||||||
#define DLEXT ".dll"
|
#define DLEXT ".dll"
|
||||||
EOF
|
EOF
|
||||||
|
;;
|
||||||
|
cygwin*) DLEXT=so
|
||||||
|
cat >> confdefs.h <<\EOF
|
||||||
|
#define DLEXT ".so"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
DLEXT2=dll
|
||||||
|
cat >> confdefs.h <<\EOF
|
||||||
|
#define DLEXT2 ".dll"
|
||||||
|
EOF
|
||||||
;;
|
;;
|
||||||
*) DLEXT=so
|
*) DLEXT=so
|
||||||
cat >> confdefs.h <<\EOF
|
cat >> confdefs.h <<\EOF
|
||||||
@ -4572,7 +4582,7 @@ fi
|
|||||||
case "$target_os" in
|
case "$target_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:4576: checking for _harderr in -lsignal" >&5
|
echo "configure:4586: 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
|
||||||
@ -4580,7 +4590,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 4584 "configure"
|
#line 4594 "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
|
||||||
@ -4591,7 +4601,7 @@ int main() {
|
|||||||
_harderr()
|
_harderr()
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:4595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:4605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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
|
||||||
@ -4619,7 +4629,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:4623: checking for hmemset in -lhmem" >&5
|
echo "configure:4633: 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
|
||||||
@ -4627,7 +4637,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 4631 "configure"
|
#line 4641 "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
|
||||||
@ -4638,7 +4648,7 @@ int main() {
|
|||||||
hmemset()
|
hmemset()
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:4642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:4652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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
|
||||||
@ -4668,12 +4678,12 @@ fi
|
|||||||
for ac_func in select gettimeofday
|
for ac_func in select gettimeofday
|
||||||
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:4672: checking for $ac_func" >&5
|
echo "configure:4682: 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 4677 "configure"
|
#line 4687 "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. */
|
||||||
@ -4696,7 +4706,7 @@ $ac_func();
|
|||||||
|
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:4700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:4710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
eval "ac_cv_func_$ac_func=yes"
|
eval "ac_cv_func_$ac_func=yes"
|
||||||
else
|
else
|
||||||
@ -4721,7 +4731,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:4725: checking whether PD libc _dtos18 fail to convert big number" >&5
|
echo "configure:4735: 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
|
||||||
@ -4729,7 +4739,7 @@ else
|
|||||||
rb_cv_missing__dtos18=no
|
rb_cv_missing__dtos18=no
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 4733 "configure"
|
#line 4743 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -4741,7 +4751,7 @@ main ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:4745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
if { (eval echo configure:4755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||||
then
|
then
|
||||||
rb_cv_missing__dtos18=yes
|
rb_cv_missing__dtos18=yes
|
||||||
else
|
else
|
||||||
@ -4763,7 +4773,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:4767: checking whether PD libc fconvert fail to round" >&5
|
echo "configure:4777: 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
|
||||||
@ -4771,7 +4781,7 @@ else
|
|||||||
rb_cv_missing_fconvert=no
|
rb_cv_missing_fconvert=no
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 4775 "configure"
|
#line 4785 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -4784,7 +4794,7 @@ main ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:4788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
if { (eval echo configure:4798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||||
then
|
then
|
||||||
rb_cv_missing_fconvert=yes
|
rb_cv_missing_fconvert=yes
|
||||||
else
|
else
|
||||||
@ -4869,6 +4879,15 @@ if test "$target_os" = "beos"; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
case "$target_os" in
|
||||||
|
cygwin*|beos*|openstep*|nextstep*|rhapsody*|macos*|os2_emx*)
|
||||||
|
DLDLIBS=""
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
DLDLIBS="-lc"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
LIBRUBY_LDSHARED=$LDSHARED
|
LIBRUBY_LDSHARED=$LDSHARED
|
||||||
LIBRUBY_DLDFLAGS=$DLDFLAGS
|
LIBRUBY_DLDFLAGS=$DLDFLAGS
|
||||||
LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR).$(TEENY)'
|
LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR).$(TEENY)'
|
||||||
@ -4981,6 +5000,7 @@ esac
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ri_prefix=
|
ri_prefix=
|
||||||
test "$program_prefix" != NONE &&
|
test "$program_prefix" != NONE &&
|
||||||
ri_prefix=$program_prefix
|
ri_prefix=$program_prefix
|
||||||
@ -5250,6 +5270,7 @@ s%@STATIC@%$STATIC%g
|
|||||||
s%@CCDLFLAGS@%$CCDLFLAGS%g
|
s%@CCDLFLAGS@%$CCDLFLAGS%g
|
||||||
s%@LDSHARED@%$LDSHARED%g
|
s%@LDSHARED@%$LDSHARED%g
|
||||||
s%@DLEXT@%$DLEXT%g
|
s%@DLEXT@%$DLEXT%g
|
||||||
|
s%@DLEXT2@%$DLEXT2%g
|
||||||
s%@STRIP@%$STRIP%g
|
s%@STRIP@%$STRIP%g
|
||||||
s%@EXTSTATIC@%$EXTSTATIC%g
|
s%@EXTSTATIC@%$EXTSTATIC%g
|
||||||
s%@setup@%$setup%g
|
s%@setup@%$setup%g
|
||||||
@ -5264,6 +5285,7 @@ s%@LIBRUBY_ALIASES@%$LIBRUBY_ALIASES%g
|
|||||||
s%@LIBRUBY@%$LIBRUBY%g
|
s%@LIBRUBY@%$LIBRUBY%g
|
||||||
s%@LIBRUBYARG@%$LIBRUBYARG%g
|
s%@LIBRUBYARG@%$LIBRUBYARG%g
|
||||||
s%@SOLIBS@%$SOLIBS%g
|
s%@SOLIBS@%$SOLIBS%g
|
||||||
|
s%@DLDLIBS@%$DLDLIBS%g
|
||||||
s%@arch@%$arch%g
|
s%@arch@%$arch%g
|
||||||
s%@sitedir@%$sitedir%g
|
s%@sitedir@%$sitedir%g
|
||||||
s%@configure_args@%$configure_args%g
|
s%@configure_args@%$configure_args%g
|
||||||
|
15
configure.in
15
configure.in
@ -403,6 +403,7 @@ AC_SUBST(STATIC)dnl
|
|||||||
AC_SUBST(CCDLFLAGS)dnl
|
AC_SUBST(CCDLFLAGS)dnl
|
||||||
AC_SUBST(LDSHARED)dnl
|
AC_SUBST(LDSHARED)dnl
|
||||||
AC_SUBST(DLEXT)dnl
|
AC_SUBST(DLEXT)dnl
|
||||||
|
AC_SUBST(DLEXT2)dnl
|
||||||
|
|
||||||
STATIC=
|
STATIC=
|
||||||
|
|
||||||
@ -569,6 +570,10 @@ else
|
|||||||
AC_DEFINE(DLEXT, ".bundle");;
|
AC_DEFINE(DLEXT, ".bundle");;
|
||||||
os2_emx*) DLEXT=dll
|
os2_emx*) DLEXT=dll
|
||||||
AC_DEFINE(DLEXT, ".dll");;
|
AC_DEFINE(DLEXT, ".dll");;
|
||||||
|
cygwin*) DLEXT=so
|
||||||
|
AC_DEFINE(DLEXT, ".so")
|
||||||
|
DLEXT2=dll
|
||||||
|
AC_DEFINE(DLEXT2, ".dll");;
|
||||||
*) DLEXT=so
|
*) DLEXT=so
|
||||||
AC_DEFINE(DLEXT, ".so");;
|
AC_DEFINE(DLEXT, ".so");;
|
||||||
esac
|
esac
|
||||||
@ -711,6 +716,15 @@ if test "$target_os" = "beos"; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
case "$target_os" in
|
||||||
|
cygwin*|beos*|openstep*|nextstep*|rhapsody*|macos*|os2_emx*)
|
||||||
|
DLDLIBS=""
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
DLDLIBS="-lc"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
LIBRUBY_LDSHARED=$LDSHARED
|
LIBRUBY_LDSHARED=$LDSHARED
|
||||||
LIBRUBY_DLDFLAGS=$DLDFLAGS
|
LIBRUBY_DLDFLAGS=$DLDFLAGS
|
||||||
LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR).$(TEENY)'
|
LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR).$(TEENY)'
|
||||||
@ -819,6 +833,7 @@ AC_SUBST(LIBRUBY_ALIASES)
|
|||||||
AC_SUBST(LIBRUBY)
|
AC_SUBST(LIBRUBY)
|
||||||
AC_SUBST(LIBRUBYARG)
|
AC_SUBST(LIBRUBYARG)
|
||||||
AC_SUBST(SOLIBS)
|
AC_SUBST(SOLIBS)
|
||||||
|
AC_SUBST(DLDLIBS)
|
||||||
|
|
||||||
ri_prefix=
|
ri_prefix=
|
||||||
test "$program_prefix" != NONE &&
|
test "$program_prefix" != NONE &&
|
||||||
|
@ -6,4 +6,3 @@ miniruby$(EXEEXT): $(RUBYCWDLL)
|
|||||||
|
|
||||||
$(RUBYCWDLL): $(OBJS) dmyext.o
|
$(RUBYCWDLL): $(OBJS) dmyext.o
|
||||||
$(LDSHARED) $(DLDFLAGS) -o $(RUBYCWDLL) --output-lib=$(LIBRUBY_SO) --dllname=$(RUBYCWDLL) -Wl,-e,__cygwin_noncygwin_dll_entry@12 --add-stdcall-alias $(OBJS) dmyext.o
|
$(LDSHARED) $(DLDFLAGS) -o $(RUBYCWDLL) --output-lib=$(LIBRUBY_SO) --dllname=$(RUBYCWDLL) -Wl,-e,__cygwin_noncygwin_dll_entry@12 --add-stdcall-alias $(OBJS) dmyext.o
|
||||||
@NM@ --extern-only $(OBJS) dmyext.o | sed -n '/^........ [CD] _\(.*\)$$/s//#define \1 (*__imp_\1)/p' >import.h
|
|
||||||
|
10
defines.h
10
defines.h
@ -34,6 +34,14 @@
|
|||||||
#include "win32/win32.h"
|
#include "win32/win32.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined __CYGWIN__
|
||||||
|
# if defined USEIMPORTLIB
|
||||||
|
# define EXTERN extern __declspec(dllimport)
|
||||||
|
# else
|
||||||
|
# define EXTERN extern __declspec(dllexport)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef EXTERN
|
#ifndef EXTERN
|
||||||
#define EXTERN extern
|
#define EXTERN extern
|
||||||
#endif
|
#endif
|
||||||
@ -62,7 +70,7 @@
|
|||||||
#undef HAVE_SETITIMER
|
#undef HAVE_SETITIMER
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__CYGWIN__) || defined(DJGPP) || defined(__BOW__)
|
#if defined(DJGPP) || defined(__BOW__)
|
||||||
#undef HAVE_SETITIMER
|
#undef HAVE_SETITIMER
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
2
dir.c
2
dir.c
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
12
dln.c
12
dln.c
@ -98,7 +98,7 @@ init_funcname(buf, file)
|
|||||||
if (*p == '/') slash = p;
|
if (*p == '/') slash = p;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
sprintf(buf, FUNCNAME_PATTERN, slash + 1);
|
snprintf(buf, MAXPATHLEN, FUNCNAME_PATTERN, slash + 1);
|
||||||
for (p = buf; *p; p++) { /* Delete suffix if it exists */
|
for (p = buf; *p; p++) { /* Delete suffix if it exists */
|
||||||
if (*p == '.') {
|
if (*p == '.') {
|
||||||
*p = '\0'; break;
|
*p = '\0'; break;
|
||||||
@ -367,6 +367,10 @@ dln_init(prog)
|
|||||||
while (read(fd, p, 1) == 1) {
|
while (read(fd, p, 1) == 1) {
|
||||||
if (*p == '\n' || *p == '\t' || *p == ' ') break;
|
if (*p == '\n' || *p == '\t' || *p == ' ') break;
|
||||||
p++;
|
p++;
|
||||||
|
if (p-buf >= MAXPATHLEN) {
|
||||||
|
dln_errno = ENAMETOOLONG;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
|
|
||||||
@ -605,7 +609,7 @@ load_1(fd, disp, need_init)
|
|||||||
struct nlist *sym;
|
struct nlist *sym;
|
||||||
struct nlist *end;
|
struct nlist *end;
|
||||||
int init_p = 0;
|
int init_p = 0;
|
||||||
char buf[256];
|
char buf[MAXPATHLEN];
|
||||||
|
|
||||||
if (load_header(fd, &hdr, disp) == -1) return -1;
|
if (load_header(fd, &hdr, disp) == -1) return -1;
|
||||||
if (INVALID_OBJECT(hdr)) {
|
if (INVALID_OBJECT(hdr)) {
|
||||||
@ -1181,7 +1185,7 @@ aix_loaderror(const char *pathname)
|
|||||||
#define LOAD_ERRTAB_LEN (sizeof(load_errtab)/sizeof(load_errtab[0]))
|
#define LOAD_ERRTAB_LEN (sizeof(load_errtab)/sizeof(load_errtab[0]))
|
||||||
#define ERRBUF_APPEND(s) strncat(errbuf, s, sizeof(errbuf)-strlen(errbuf)-1)
|
#define ERRBUF_APPEND(s) strncat(errbuf, s, sizeof(errbuf)-strlen(errbuf)-1)
|
||||||
|
|
||||||
sprintf(errbuf, "load failed - %.200s ", pathname);
|
snprintf(errbuf, 1024, "load failed - %.200s ", pathname);
|
||||||
|
|
||||||
if (!loadquery(1, &message[0], sizeof(message)))
|
if (!loadquery(1, &message[0], sizeof(message)))
|
||||||
ERRBUF_APPEND(strerror(errno));
|
ERRBUF_APPEND(strerror(errno));
|
||||||
@ -1416,7 +1420,7 @@ dln_load(file)
|
|||||||
B_SYMBOL_TYPE_TEXT, (void **)&init_fct);
|
B_SYMBOL_TYPE_TEXT, (void **)&init_fct);
|
||||||
|
|
||||||
if (err_stat != B_NO_ERROR) {
|
if (err_stat != B_NO_ERROR) {
|
||||||
char real_name[1024];
|
char real_name[MAXPATHLEN];
|
||||||
strcpy(real_name, buf);
|
strcpy(real_name, buf);
|
||||||
strcat(real_name, "__Fv");
|
strcat(real_name, "__Fv");
|
||||||
err_stat = get_image_symbol(img_id, real_name,
|
err_stat = get_image_symbol(img_id, real_name,
|
||||||
|
68
eval.c
68
eval.c
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
@ -3437,7 +3437,7 @@ massign(self, node, val, check)
|
|||||||
list = node->nd_head;
|
list = node->nd_head;
|
||||||
|
|
||||||
if (TYPE(val) != T_ARRAY) {
|
if (TYPE(val) != T_ARRAY) {
|
||||||
if (NIL_P(val))
|
if (!check && NIL_P(val))
|
||||||
val = rb_ary_new2(0);
|
val = rb_ary_new2(0);
|
||||||
else
|
else
|
||||||
val = rb_ary_new3(1, val);
|
val = rb_ary_new3(1, val);
|
||||||
@ -4937,13 +4937,25 @@ rb_f_require(obj, fname)
|
|||||||
else if (strcmp(".so", ext) == 0 || strcmp(".o", ext) == 0) {
|
else if (strcmp(".so", ext) == 0 || strcmp(".o", ext) == 0) {
|
||||||
file = feature = RSTRING(fname)->ptr;
|
file = feature = RSTRING(fname)->ptr;
|
||||||
if (strcmp(ext, DLEXT) != 0) {
|
if (strcmp(ext, DLEXT) != 0) {
|
||||||
buf = ALLOCA_N(char, strlen(file)+sizeof(DLEXT)+1);
|
buf = ALLOCA_N(char, strlen(file)+sizeof(DLEXT)+4);
|
||||||
strcpy(buf, feature);
|
strcpy(buf, feature);
|
||||||
ext = strrchr(buf, '.');
|
ext = strrchr(buf, '.');
|
||||||
|
strcpy(ext, ".so");
|
||||||
|
if (rb_provided(buf)) return Qfalse;
|
||||||
strcpy(ext, DLEXT);
|
strcpy(ext, DLEXT);
|
||||||
file = feature = buf;
|
file = feature = buf;
|
||||||
if (rb_provided(feature)) return Qfalse;
|
|
||||||
}
|
}
|
||||||
|
#ifdef DLEXT2
|
||||||
|
else if (strcmp(ext, DLEXT2) != 0) {
|
||||||
|
buf = ALLOCA_N(char, strlen(file)+sizeof(DLEXT2)+4);
|
||||||
|
strcpy(buf, feature);
|
||||||
|
ext = strrchr(buf, '.');
|
||||||
|
strcpy(ext, ".so");
|
||||||
|
if (rb_provided(buf)) return Qfalse;
|
||||||
|
strcpy(ext, DLEXT2);
|
||||||
|
file = feature = buf;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
file = rb_find_file(file);
|
file = rb_find_file(file);
|
||||||
if (file) goto load_dyna;
|
if (file) goto load_dyna;
|
||||||
}
|
}
|
||||||
@ -4969,6 +4981,15 @@ rb_f_require(obj, fname)
|
|||||||
feature = buf;
|
feature = buf;
|
||||||
goto load_dyna;
|
goto load_dyna;
|
||||||
}
|
}
|
||||||
|
#ifdef DLEXT2
|
||||||
|
strcpy(buf, RSTRING(fname)->ptr);
|
||||||
|
strcat(buf, DLEXT2);
|
||||||
|
file = rb_find_file(buf);
|
||||||
|
if (file) {
|
||||||
|
feature = buf;
|
||||||
|
goto load_dyna;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
rb_raise(rb_eLoadError, "No such file to load -- %s",
|
rb_raise(rb_eLoadError, "No such file to load -- %s",
|
||||||
RSTRING(fname)->ptr);
|
RSTRING(fname)->ptr);
|
||||||
|
|
||||||
@ -6359,9 +6380,9 @@ thread_free(th)
|
|||||||
if (th->stk_ptr) free(th->stk_ptr);
|
if (th->stk_ptr) free(th->stk_ptr);
|
||||||
th->stk_ptr = 0;
|
th->stk_ptr = 0;
|
||||||
if (th->locals) st_free_table(th->locals);
|
if (th->locals) st_free_table(th->locals);
|
||||||
if (th->status != THREAD_KILLED && th->prev) {
|
if (th->status != THREAD_KILLED) {
|
||||||
th->prev->next = th->next;
|
if (th->prev) th->prev->next = th->next;
|
||||||
th->next->prev = th->prev;
|
if (th->next) th->next->prev = th->prev;
|
||||||
}
|
}
|
||||||
if (th != main_thread) free(th);
|
if (th != main_thread) free(th);
|
||||||
}
|
}
|
||||||
@ -6625,14 +6646,6 @@ rb_thread_schedule()
|
|||||||
curr = curr->prev;
|
curr = curr->prev;
|
||||||
}
|
}
|
||||||
|
|
||||||
FOREACH_THREAD_FROM(curr, th) {
|
|
||||||
if (th->status == THREAD_RUNNABLE || th->status == THREAD_TO_KILL) {
|
|
||||||
if (!next || next->priority < th->priority)
|
|
||||||
next = th;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
END_FOREACH_FROM(curr, th);
|
|
||||||
|
|
||||||
if (num_waiting_on_join) {
|
if (num_waiting_on_join) {
|
||||||
FOREACH_THREAD_FROM(curr, th) {
|
FOREACH_THREAD_FROM(curr, th) {
|
||||||
if ((th->wait_for&WAIT_JOIN) && rb_thread_dead(th->join)) {
|
if ((th->wait_for&WAIT_JOIN) && rb_thread_dead(th->join)) {
|
||||||
@ -6640,8 +6653,6 @@ rb_thread_schedule()
|
|||||||
th->wait_for &= ~WAIT_JOIN;
|
th->wait_for &= ~WAIT_JOIN;
|
||||||
th->status = THREAD_RUNNABLE;
|
th->status = THREAD_RUNNABLE;
|
||||||
num_waiting_on_join--;
|
num_waiting_on_join--;
|
||||||
if (!next || next->priority < th->priority)
|
|
||||||
next = th;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
END_FOREACH_FROM(curr, th);
|
END_FOREACH_FROM(curr, th);
|
||||||
@ -6651,7 +6662,7 @@ rb_thread_schedule()
|
|||||||
fd_set readfds;
|
fd_set readfds;
|
||||||
struct timeval delay_tv, *delay_ptr;
|
struct timeval delay_tv, *delay_ptr;
|
||||||
double delay, now; /* OK */
|
double delay, now; /* OK */
|
||||||
int n, max;
|
int n, max, found;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
max = 0;
|
max = 0;
|
||||||
@ -6676,8 +6687,7 @@ rb_thread_schedule()
|
|||||||
th->wait_for &= ~WAIT_TIME;
|
th->wait_for &= ~WAIT_TIME;
|
||||||
th->status = THREAD_RUNNABLE;
|
th->status = THREAD_RUNNABLE;
|
||||||
num_waiting_on_timer--;
|
num_waiting_on_timer--;
|
||||||
if (!next || next->priority < th->priority)
|
found = 1;
|
||||||
next = th;
|
|
||||||
} else if (th->delay < delay) {
|
} else if (th->delay < delay) {
|
||||||
delay = th->delay;
|
delay = th->delay;
|
||||||
}
|
}
|
||||||
@ -6686,10 +6696,10 @@ rb_thread_schedule()
|
|||||||
END_FOREACH_FROM(curr, th);
|
END_FOREACH_FROM(curr, th);
|
||||||
}
|
}
|
||||||
/* Do the select if needed */
|
/* Do the select if needed */
|
||||||
if (num_waiting_on_fd > 0 || !next) {
|
if (num_waiting_on_fd > 0 || !found) {
|
||||||
/* Convert delay to a timeval */
|
/* Convert delay to a timeval */
|
||||||
/* If a thread is runnable, just poll */
|
/* If a thread is runnable, just poll */
|
||||||
if (next) {
|
if (found) {
|
||||||
delay_tv.tv_sec = 0;
|
delay_tv.tv_sec = 0;
|
||||||
delay_tv.tv_usec = 0;
|
delay_tv.tv_usec = 0;
|
||||||
delay_ptr = &delay_tv;
|
delay_ptr = &delay_tv;
|
||||||
@ -6728,8 +6738,7 @@ rb_thread_schedule()
|
|||||||
th->fd = 0;
|
th->fd = 0;
|
||||||
th->wait_for &= ~WAIT_FD;
|
th->wait_for &= ~WAIT_FD;
|
||||||
num_waiting_on_fd--;
|
num_waiting_on_fd--;
|
||||||
if (!next || next->priority < th->priority)
|
found = 1;
|
||||||
next = th; /* Found one. */
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
END_FOREACH_FROM(curr, th);
|
END_FOREACH_FROM(curr, th);
|
||||||
@ -6737,9 +6746,17 @@ rb_thread_schedule()
|
|||||||
}
|
}
|
||||||
/* The delays for some of the threads should have expired.
|
/* The delays for some of the threads should have expired.
|
||||||
Go through the loop once more, to check the delays. */
|
Go through the loop once more, to check the delays. */
|
||||||
} while (!next && delay != DELAY_INFTY);
|
} while (!found && delay != DELAY_INFTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FOREACH_THREAD_FROM(curr, th) {
|
||||||
|
if (th->status == THREAD_RUNNABLE || th->status == THREAD_TO_KILL) {
|
||||||
|
if (!next || next->priority < th->priority)
|
||||||
|
next = th;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
END_FOREACH_FROM(curr, th);
|
||||||
|
|
||||||
if (!next) {
|
if (!next) {
|
||||||
curr_thread->file = ruby_sourcefile;
|
curr_thread->file = ruby_sourcefile;
|
||||||
curr_thread->line = ruby_sourceline;
|
curr_thread->line = ruby_sourceline;
|
||||||
@ -7765,6 +7782,7 @@ rb_callcc(self)
|
|||||||
for (tag=prot_tag; tag; tag=tag->prev) {
|
for (tag=prot_tag; tag; tag=tag->prev) {
|
||||||
scope_dup(tag->scope);
|
scope_dup(tag->scope);
|
||||||
}
|
}
|
||||||
|
th->prev = th->next = 0;
|
||||||
if (THREAD_SAVE_CONTEXT(th)) {
|
if (THREAD_SAVE_CONTEXT(th)) {
|
||||||
return th->result;
|
return th->result;
|
||||||
}
|
}
|
||||||
|
@ -132,6 +132,7 @@ Win32API_Call(argc, argv, obj)
|
|||||||
VALUE import_type;
|
VALUE import_type;
|
||||||
int nimport, timport, texport, i;
|
int nimport, timport, texport, i;
|
||||||
int items;
|
int items;
|
||||||
|
int ret;
|
||||||
|
|
||||||
items = rb_scan_args(argc, argv, "0*", &args);
|
items = rb_scan_args(argc, argv, "0*", &args);
|
||||||
|
|
||||||
@ -162,7 +163,7 @@ Win32API_Call(argc, argv, obj)
|
|||||||
mov eax, lParam
|
mov eax, lParam
|
||||||
push eax
|
push eax
|
||||||
}
|
}
|
||||||
#elif defined(__CYGWIN__) || defined(__MINGW32__)
|
#elif defined __GNUC__
|
||||||
asm volatile ("pushl %0" :: "g" (lParam));
|
asm volatile ("pushl %0" :: "g" (lParam));
|
||||||
#else
|
#else
|
||||||
#error
|
#error
|
||||||
@ -184,7 +185,7 @@ Win32API_Call(argc, argv, obj)
|
|||||||
mov eax, pParam
|
mov eax, pParam
|
||||||
push eax
|
push eax
|
||||||
}
|
}
|
||||||
#elif defined(__CYGWIN__) || defined(__MINGW32__)
|
#elif defined __GNUC__
|
||||||
asm volatile ("pushl %0" :: "g" (pParam));
|
asm volatile ("pushl %0" :: "g" (pParam));
|
||||||
#else
|
#else
|
||||||
#error
|
#error
|
||||||
@ -194,6 +195,22 @@ Win32API_Call(argc, argv, obj)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined __GNUC__
|
||||||
|
asm volatile ("call *%1" : "=r" (ret) : "g" (ApiFunction));
|
||||||
|
switch (texport) {
|
||||||
|
case _T_NUMBER:
|
||||||
|
case _T_INTEGER:
|
||||||
|
Return = INT2NUM(ret);
|
||||||
|
break;
|
||||||
|
case _T_POINTER:
|
||||||
|
Return = rb_str_new2((char *)ret);
|
||||||
|
break;
|
||||||
|
case _T_VOID:
|
||||||
|
default:
|
||||||
|
Return = INT2NUM(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#else
|
||||||
switch (texport) {
|
switch (texport) {
|
||||||
case _T_NUMBER:
|
case _T_NUMBER:
|
||||||
ApiFunctionNumber = (ApiNumber *) ApiFunction;
|
ApiFunctionNumber = (ApiNumber *) ApiFunction;
|
||||||
@ -214,6 +231,7 @@ Win32API_Call(argc, argv, obj)
|
|||||||
Return = INT2NUM(0);
|
Return = INT2NUM(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return Return;
|
return Return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -329,6 +329,11 @@ def create_makefile(target)
|
|||||||
|
|
||||||
$DLDFLAGS = '@DLDFLAGS@'
|
$DLDFLAGS = '@DLDFLAGS@'
|
||||||
|
|
||||||
|
if $configure_args['--enable-shared']
|
||||||
|
$libs = "@LIBRUBYARG@ " + $libs
|
||||||
|
$DLDFLAGS = $DLDFLAGS + " -L" + $topdir
|
||||||
|
end
|
||||||
|
|
||||||
if RUBY_PLATFORM =~ /beos/ and not $static
|
if RUBY_PLATFORM =~ /beos/ and not $static
|
||||||
$libs = $libs + " @LIBRUBYARG@"
|
$libs = $libs + " @LIBRUBYARG@"
|
||||||
$DLDFLAGS = $DLDFLAGS + " -L" + $topdir
|
$DLDFLAGS = $DLDFLAGS + " -L" + $topdir
|
||||||
@ -339,8 +344,6 @@ def create_makefile(target)
|
|||||||
if File.exist? target + ".def"
|
if File.exist? target + ".def"
|
||||||
defflag = "--def=" + target + ".def"
|
defflag = "--def=" + target + ".def"
|
||||||
end
|
end
|
||||||
$libs = $libs + " @LIBRUBYARG@"
|
|
||||||
$DLDFLAGS = $DLDFLAGS + " -L" + $topdir
|
|
||||||
end
|
end
|
||||||
|
|
||||||
$srcdir = $top_srcdir + "/ext/" + $mdir
|
$srcdir = $top_srcdir + "/ext/" + $mdir
|
||||||
@ -499,16 +502,11 @@ def extmake(target)
|
|||||||
$OBJEXT = "@OBJEXT@"
|
$OBJEXT = "@OBJEXT@"
|
||||||
$LIBEXT = "a"
|
$LIBEXT = "a"
|
||||||
$objs = nil
|
$objs = nil
|
||||||
|
$libs = "@DLDLIBS@"
|
||||||
$local_flags = ""
|
$local_flags = ""
|
||||||
case RUBY_PLATFORM
|
if /mswin32/ =~ RUBY_PLATFORM
|
||||||
when /cygwin|beos|openstep|nextstep|rhapsody|macos|i386-os2_emx/
|
|
||||||
$libs = ""
|
|
||||||
when /mswin32/
|
|
||||||
$LIBEXT = "lib"
|
$LIBEXT = "lib"
|
||||||
$libs = ""
|
|
||||||
$local_flags = "$(topdir)/rubymw.lib -link /EXPORT:Init_$(TARGET)"
|
$local_flags = "$(topdir)/rubymw.lib -link /EXPORT:Init_$(TARGET)"
|
||||||
else
|
|
||||||
$libs = "-lc"
|
|
||||||
end
|
end
|
||||||
$LOCAL_LIBS = "" # to be assigned in extconf.rb
|
$LOCAL_LIBS = "" # to be assigned in extconf.rb
|
||||||
dir = with_config("opt-dir")
|
dir = with_config("opt-dir")
|
||||||
|
@ -173,7 +173,7 @@ have_header("netinet/tcp.h")
|
|||||||
have_header("netinet/udp.h")
|
have_header("netinet/udp.h")
|
||||||
|
|
||||||
$getaddr_info_ok = false
|
$getaddr_info_ok = false
|
||||||
if try_run(<<EOF)
|
if not enable_config("wide-getaddrinfo", false) and try_run(<<EOF)
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -292,6 +292,22 @@ else
|
|||||||
have_header("resolv.h")
|
have_header("resolv.h")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if !try_link(<<EOF)
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <netdb.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
int
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
socklen_t len;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
$CFLAGS="-Dsocklen_t=int "+$CFLAGS
|
||||||
|
end
|
||||||
|
|
||||||
have_header("sys/un.h")
|
have_header("sys/un.h")
|
||||||
|
|
||||||
if have_func(test_func)
|
if have_func(test_func)
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
$Date$
|
$Date$
|
||||||
created at: Thu Mar 31 12:21:29 JST 1994
|
created at: Thu Mar 31 12:21:29 JST 1994
|
||||||
|
|
||||||
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
|
|
||||||
************************************************/
|
************************************************/
|
||||||
|
|
||||||
#include "ruby.h"
|
#include "ruby.h"
|
||||||
|
2
file.c
2
file.c
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
50
gc.c
50
gc.c
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
@ -142,36 +142,6 @@ xfree(x)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* The way of garbage collecting which allows use of the cstack is due to */
|
|
||||||
/* Scheme In One Defun, but in C this time.
|
|
||||||
|
|
||||||
* COPYRIGHT (c) 1989 BY *
|
|
||||||
* PARADIGM ASSOCIATES INCORPORATED, CAMBRIDGE, MASSACHUSETTS. *
|
|
||||||
* ALL RIGHTS RESERVED *
|
|
||||||
|
|
||||||
Permission to use, copy, modify, distribute and sell this software
|
|
||||||
and its documentation for any purpose and without fee is hereby
|
|
||||||
granted, provided that the above copyright notice appear in all copies
|
|
||||||
and that both that copyright notice and this permission notice appear
|
|
||||||
in supporting documentation, and that the name of Paradigm Associates
|
|
||||||
Inc not be used in advertising or publicity pertaining to distribution
|
|
||||||
of the software without specific, written prior permission.
|
|
||||||
|
|
||||||
PARADIGM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
|
||||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
|
||||||
PARADIGM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
|
||||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
|
||||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
|
||||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
gjc@paradigm.com
|
|
||||||
|
|
||||||
Paradigm Associates Inc Phone: 617-492-6079
|
|
||||||
29 Putnam Ave, Suite 6
|
|
||||||
Cambridge, MA 02138
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern int ruby_in_compile;
|
extern int ruby_in_compile;
|
||||||
static int dont_gc;
|
static int dont_gc;
|
||||||
static int during_gc;
|
static int during_gc;
|
||||||
@ -351,7 +321,7 @@ VALUE *rb_gc_stack_start = 0;
|
|||||||
__inline__
|
__inline__
|
||||||
#endif
|
#endif
|
||||||
static int
|
static int
|
||||||
looks_pointerp(ptr)
|
is_pointer_to_heap(ptr)
|
||||||
void *ptr;
|
void *ptr;
|
||||||
{
|
{
|
||||||
register RVALUE *p = RANY(ptr);
|
register RVALUE *p = RANY(ptr);
|
||||||
@ -376,7 +346,7 @@ mark_locations_array(x, n)
|
|||||||
register long n;
|
register long n;
|
||||||
{
|
{
|
||||||
while (n--) {
|
while (n--) {
|
||||||
if (looks_pointerp(*x)) {
|
if (is_pointer_to_heap(*x)) {
|
||||||
rb_gc_mark(*x);
|
rb_gc_mark(*x);
|
||||||
}
|
}
|
||||||
x++;
|
x++;
|
||||||
@ -438,7 +408,7 @@ void
|
|||||||
rb_gc_mark_maybe(obj)
|
rb_gc_mark_maybe(obj)
|
||||||
void *obj;
|
void *obj;
|
||||||
{
|
{
|
||||||
if (looks_pointerp(obj)) {
|
if (is_pointer_to_heap(obj)) {
|
||||||
rb_gc_mark(obj);
|
rb_gc_mark(obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -585,13 +555,13 @@ rb_gc_mark(ptr)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (looks_pointerp(obj->as.node.u1.node)) {
|
if (is_pointer_to_heap(obj->as.node.u1.node)) {
|
||||||
rb_gc_mark(obj->as.node.u1.node);
|
rb_gc_mark(obj->as.node.u1.node);
|
||||||
}
|
}
|
||||||
if (looks_pointerp(obj->as.node.u2.node)) {
|
if (is_pointer_to_heap(obj->as.node.u2.node)) {
|
||||||
rb_gc_mark(obj->as.node.u2.node);
|
rb_gc_mark(obj->as.node.u2.node);
|
||||||
}
|
}
|
||||||
if (looks_pointerp(obj->as.node.u3.node)) {
|
if (is_pointer_to_heap(obj->as.node.u3.node)) {
|
||||||
obj = RANY(obj->as.node.u3.node);
|
obj = RANY(obj->as.node.u3.node);
|
||||||
goto Top;
|
goto Top;
|
||||||
}
|
}
|
||||||
@ -684,7 +654,7 @@ rb_gc_mark(ptr)
|
|||||||
default:
|
default:
|
||||||
rb_bug("rb_gc_mark(): unknown data type 0x%x(0x%x) %s",
|
rb_bug("rb_gc_mark(): unknown data type 0x%x(0x%x) %s",
|
||||||
obj->as.basic.flags & T_MASK, obj,
|
obj->as.basic.flags & T_MASK, obj,
|
||||||
looks_pointerp(obj)?"corrupted object":"non object");
|
is_pointer_to_heap(obj)?"corrupted object":"non object");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1220,8 +1190,8 @@ id2ref(obj, id)
|
|||||||
if (ptr == Qfalse) return Qfalse;
|
if (ptr == Qfalse) return Qfalse;
|
||||||
if (ptr == Qnil) return Qnil;
|
if (ptr == Qnil) return Qnil;
|
||||||
|
|
||||||
ptr = id ^ FIXNUM_FLAG;
|
ptr = id ^ FIXNUM_FLAG; /* unset FIXNUM_FLAG */
|
||||||
if (!looks_pointerp(ptr)) {
|
if (!is_pointer_to_heap(ptr)) {
|
||||||
rb_raise(rb_eRangeError, "0x%x is not id value", ptr);
|
rb_raise(rb_eRangeError, "0x%x is not id value", ptr);
|
||||||
}
|
}
|
||||||
if (BUILTIN_TYPE(ptr) == 0) {
|
if (BUILTIN_TYPE(ptr) == 0) {
|
||||||
|
2
hash.c
2
hash.c
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
2
intern.h
2
intern.h
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
2
io.c
2
io.c
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
275
lib/cgi.rb
275
lib/cgi.rb
@ -5,10 +5,10 @@ $Date$
|
|||||||
|
|
||||||
cgi.rb
|
cgi.rb
|
||||||
|
|
||||||
Version 1.20
|
Version 1.31
|
||||||
|
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
Wakou Aoyama <wakou@fsinet.or.jp>
|
Wakou Aoyama <wakou@fsinet.or.jp>
|
||||||
|
|
||||||
@ -108,7 +108,7 @@ and see MAKE COOKIE OBJECT.
|
|||||||
|
|
||||||
=== GET ENVIRONMENT VALUE
|
=== GET ENVIRONMENT VALUE
|
||||||
|
|
||||||
require "CGI"
|
require "cgi"
|
||||||
cgi = CGI.new
|
cgi = CGI.new
|
||||||
value = cgi.auth_type
|
value = cgi.auth_type
|
||||||
# ENV["AUTH_TYPE"]
|
# ENV["AUTH_TYPE"]
|
||||||
@ -141,7 +141,7 @@ HTTP_CACHE_CONTROL HTTP_FROM HTTP_HOST HTTP_NEGOTIATE HTTP_PRAGMA
|
|||||||
HTTP_REFERER HTTP_USER_AGENT
|
HTTP_REFERER HTTP_USER_AGENT
|
||||||
|
|
||||||
|
|
||||||
=== PRINT HTTP HEADER AND HTML STRING TO $>
|
=== PRINT HTTP HEADER AND HTML STRING TO $DEFAULT_OUTPUT ($>)
|
||||||
|
|
||||||
require "cgi"
|
require "cgi"
|
||||||
cgi = CGI.new("html3") # add HTML generation methods
|
cgi = CGI.new("html3") # add HTML generation methods
|
||||||
@ -176,6 +176,8 @@ HTTP_REFERER HTTP_USER_AGENT
|
|||||||
=end
|
=end
|
||||||
|
|
||||||
|
|
||||||
|
require 'English'
|
||||||
|
|
||||||
class CGI
|
class CGI
|
||||||
|
|
||||||
CR = "\015"
|
CR = "\015"
|
||||||
@ -183,7 +185,7 @@ class CGI
|
|||||||
EOL = CR + LF
|
EOL = CR + LF
|
||||||
v = $-v
|
v = $-v
|
||||||
$-v = false
|
$-v = false
|
||||||
VERSION = "1.20"
|
VERSION = "1.31"
|
||||||
RELEASE_DATE = "$Date$"
|
RELEASE_DATE = "$Date$"
|
||||||
$-v = v
|
$-v = v
|
||||||
|
|
||||||
@ -223,7 +225,7 @@ $-v = v
|
|||||||
end
|
end
|
||||||
|
|
||||||
def stdoutput
|
def stdoutput
|
||||||
$>
|
$DEFAULT_OUTPUT
|
||||||
end
|
end
|
||||||
|
|
||||||
private :env_table, :stdinput, :stdoutput
|
private :env_table, :stdinput, :stdoutput
|
||||||
@ -237,10 +239,9 @@ $-v = v
|
|||||||
url_encoded_string = CGI::escape("string")
|
url_encoded_string = CGI::escape("string")
|
||||||
=end
|
=end
|
||||||
def CGI::escape(string)
|
def CGI::escape(string)
|
||||||
str = string.dup
|
string.gsub(/ /n, '+').gsub(/([^a-zA-Z0-9_.-])/n) do
|
||||||
str.gsub!(/ /n, '+')
|
sprintf("%%%02X", $1.unpack("C")[0])
|
||||||
str.gsub!(/([^a-zA-Z0-9_.-])/n){ sprintf("%%%02X", $1.unpack("C")[0]) }
|
end
|
||||||
str
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -249,10 +250,9 @@ $-v = v
|
|||||||
string = CGI::unescape("url encoded string")
|
string = CGI::unescape("url encoded string")
|
||||||
=end
|
=end
|
||||||
def CGI::unescape(string)
|
def CGI::unescape(string)
|
||||||
str = string.dup
|
string.gsub(/\+/n, ' ').gsub(/%([0-9a-fA-F]{2})/n) do
|
||||||
str.gsub!(/\+/n, ' ')
|
[$1.hex].pack("c")
|
||||||
str.gsub!(/%([0-9a-fA-F]{2})/n){ [$1.hex].pack("c") }
|
end
|
||||||
str
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -261,12 +261,7 @@ $-v = v
|
|||||||
CGI::escapeHTML("string")
|
CGI::escapeHTML("string")
|
||||||
=end
|
=end
|
||||||
def CGI::escapeHTML(string)
|
def CGI::escapeHTML(string)
|
||||||
str = string.dup
|
string.gsub(/&/n, '&').gsub(/\"/n, '"').gsub(/>/n, '>').gsub(/</n, '<')
|
||||||
str.gsub!(/&/n, '&')
|
|
||||||
str.gsub!(/\"/n, '"')
|
|
||||||
str.gsub!(/>/n, '>')
|
|
||||||
str.gsub!(/</n, '<')
|
|
||||||
str
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -275,8 +270,7 @@ $-v = v
|
|||||||
CGI::unescapeHTML("HTML escaped string")
|
CGI::unescapeHTML("HTML escaped string")
|
||||||
=end
|
=end
|
||||||
def CGI::unescapeHTML(string)
|
def CGI::unescapeHTML(string)
|
||||||
str = string.dup
|
string.gsub(/&(.*?);/n) do
|
||||||
str.gsub!(/&(.*?);/n){
|
|
||||||
match = $1.dup
|
match = $1.dup
|
||||||
case match
|
case match
|
||||||
when /\Aamp\z/ni then '&'
|
when /\Aamp\z/ni then '&'
|
||||||
@ -295,8 +289,7 @@ $-v = v
|
|||||||
end
|
end
|
||||||
when /\A#x([0-9a-f]+)\z/ni then $1.hex.chr
|
when /\A#x([0-9a-f]+)\z/ni then $1.hex.chr
|
||||||
end
|
end
|
||||||
}
|
end
|
||||||
str
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -309,11 +302,9 @@ $-v = v
|
|||||||
# "<BR><A HREF="url"></A>"
|
# "<BR><A HREF="url"></A>"
|
||||||
=end
|
=end
|
||||||
def CGI::escapeElement(string, *element)
|
def CGI::escapeElement(string, *element)
|
||||||
str = string.dup
|
string.gsub(/<\/?(?:#{element.join("|")})(?!\w)(?:.|\n)*?>/ni) do
|
||||||
str.gsub!(/<\/?(?:#{element.join("|")})(?!\w)(?:.|\n)*?>/ni){
|
|
||||||
CGI::escapeHTML($&)
|
CGI::escapeHTML($&)
|
||||||
}
|
end
|
||||||
str
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -328,11 +319,9 @@ $-v = v
|
|||||||
# "<BR><A HREF="url"></A>"
|
# "<BR><A HREF="url"></A>"
|
||||||
=end
|
=end
|
||||||
def CGI::unescapeElement(string, *element)
|
def CGI::unescapeElement(string, *element)
|
||||||
str = string.dup
|
string.gsub(/<\/?(?:#{element.join("|")})(?!\w)(?:.|\n)*?>/ni) do
|
||||||
str.gsub!(/<\/?(?:#{element.join("|")})(?!\w)(?:.|\n)*?>/ni){
|
|
||||||
CGI::unescapeHTML($&)
|
CGI::unescapeHTML($&)
|
||||||
}
|
end
|
||||||
str
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -493,7 +482,7 @@ status:
|
|||||||
|
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
=== PRINT HTTP HEADER AND STRING TO $>
|
=== PRINT HTTP HEADER AND STRING TO $DEFAULT_OUTPUT ($>)
|
||||||
cgi = CGI.new
|
cgi = CGI.new
|
||||||
cgi.out{ "string" }
|
cgi.out{ "string" }
|
||||||
# Content-Type: text/html
|
# Content-Type: text/html
|
||||||
@ -555,7 +544,7 @@ convert string charset, and set language to "ja".
|
|||||||
=begin
|
=begin
|
||||||
=== PRINT
|
=== PRINT
|
||||||
cgi = CGI.new
|
cgi = CGI.new
|
||||||
cgi.print # default: cgi.print == $>.print
|
cgi.print # default: cgi.print == $DEFAULT_OUTPUT.print
|
||||||
=end
|
=end
|
||||||
def print(*options)
|
def print(*options)
|
||||||
stdoutput.print(*options)
|
stdoutput.print(*options)
|
||||||
@ -637,7 +626,7 @@ convert string charset, and set language to "ja".
|
|||||||
if @value.kind_of?(String)
|
if @value.kind_of?(String)
|
||||||
buf.concat CGI::escape(@value)
|
buf.concat CGI::escape(@value)
|
||||||
else
|
else
|
||||||
buf.concat(@value.filter{|v| CGI::escape(v) }.join("&"))
|
buf.concat(@value.collect{|v| CGI::escape(v) }.join("&"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if @domain
|
if @domain
|
||||||
@ -675,7 +664,7 @@ convert string charset, and set language to "ja".
|
|||||||
name, values = pairs.split('=',2)
|
name, values = pairs.split('=',2)
|
||||||
name = CGI::unescape(name)
|
name = CGI::unescape(name)
|
||||||
values ||= ""
|
values ||= ""
|
||||||
values = values.split('&').filter{|v| CGI::unescape(v) }
|
values = values.split('&').collect{|v| CGI::unescape(v) }
|
||||||
if cookies.has_key?(name)
|
if cookies.has_key?(name)
|
||||||
cookies[name].value.push(*values)
|
cookies[name].value.push(*values)
|
||||||
else
|
else
|
||||||
@ -697,7 +686,7 @@ convert string charset, and set language to "ja".
|
|||||||
params = Hash.new([])
|
params = Hash.new([])
|
||||||
|
|
||||||
query.split(/[&;]/n).each do |pairs|
|
query.split(/[&;]/n).each do |pairs|
|
||||||
key, value = pairs.split('=',2).filter{|v| CGI::unescape(v) }
|
key, value = pairs.split('=',2).collect{|v| CGI::unescape(v) }
|
||||||
if params.has_key?(key)
|
if params.has_key?(key)
|
||||||
params[key].push(value)
|
params[key].push(value)
|
||||||
else
|
else
|
||||||
@ -711,30 +700,28 @@ convert string charset, and set language to "ja".
|
|||||||
|
|
||||||
module QueryExtension
|
module QueryExtension
|
||||||
|
|
||||||
%w[ CONTENT_LENGTH SERVER_PORT ].
|
for env in %w[ CONTENT_LENGTH SERVER_PORT ]
|
||||||
each{|env|
|
|
||||||
eval( <<-END )
|
eval( <<-END )
|
||||||
def #{env.sub(/^HTTP_/n, '').downcase}
|
def #{env.sub(/^HTTP_/n, '').downcase}
|
||||||
env_table["#{env}"] && Integer(env_table["#{env}"])
|
env_table["#{env}"] && Integer(env_table["#{env}"])
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
|
||||||
%w[ AUTH_TYPE CONTENT_TYPE GATEWAY_INTERFACE PATH_INFO
|
for env in %w[ AUTH_TYPE CONTENT_TYPE GATEWAY_INTERFACE PATH_INFO
|
||||||
PATH_TRANSLATED QUERY_STRING REMOTE_ADDR REMOTE_HOST
|
PATH_TRANSLATED QUERY_STRING REMOTE_ADDR REMOTE_HOST
|
||||||
REMOTE_IDENT REMOTE_USER REQUEST_METHOD SCRIPT_NAME
|
REMOTE_IDENT REMOTE_USER REQUEST_METHOD SCRIPT_NAME
|
||||||
SERVER_NAME SERVER_PROTOCOL SERVER_SOFTWARE
|
SERVER_NAME SERVER_PROTOCOL SERVER_SOFTWARE
|
||||||
|
|
||||||
HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_ENCODING
|
HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_ENCODING
|
||||||
HTTP_ACCEPT_LANGUAGE HTTP_CACHE_CONTROL HTTP_FROM HTTP_HOST
|
HTTP_ACCEPT_LANGUAGE HTTP_CACHE_CONTROL HTTP_FROM HTTP_HOST
|
||||||
HTTP_NEGOTIATE HTTP_PRAGMA HTTP_REFERER HTTP_USER_AGENT ].
|
HTTP_NEGOTIATE HTTP_PRAGMA HTTP_REFERER HTTP_USER_AGENT ]
|
||||||
each{|env|
|
|
||||||
eval( <<-END )
|
eval( <<-END )
|
||||||
def #{env.sub(/^HTTP_/n, '').downcase}
|
def #{env.sub(/^HTTP_/n, '').downcase}
|
||||||
env_table["#{env}"]
|
env_table["#{env}"]
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
|
||||||
def raw_cookie
|
def raw_cookie
|
||||||
env_table["HTTP_COOKIE"]
|
env_table["HTTP_COOKIE"]
|
||||||
@ -761,7 +748,7 @@ convert string charset, and set language to "ja".
|
|||||||
stdinput.binmode
|
stdinput.binmode
|
||||||
content_length -= stdinput.read((boundary + EOL).size).size
|
content_length -= stdinput.read((boundary + EOL).size).size
|
||||||
|
|
||||||
require "tempfile.rb"
|
require "tempfile"
|
||||||
|
|
||||||
until -1 == content_length
|
until -1 == content_length
|
||||||
head = nil
|
head = nil
|
||||||
@ -771,10 +758,10 @@ convert string charset, and set language to "ja".
|
|||||||
until head and (/#{boundary}(?:#{EOL}|--)/n === buf)
|
until head and (/#{boundary}(?:#{EOL}|--)/n === buf)
|
||||||
|
|
||||||
if (not head) and (/#{EOL}#{EOL}/n === buf)
|
if (not head) and (/#{EOL}#{EOL}/n === buf)
|
||||||
buf.sub!(/\A((?:.|\n)*?#{EOL})#{EOL}/n){
|
buf = buf.sub(/\A((?:.|\n)*?#{EOL})#{EOL}/n) do
|
||||||
head = $1.dup
|
head = $1.dup
|
||||||
""
|
""
|
||||||
}
|
end
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -793,13 +780,13 @@ convert string charset, and set language to "ja".
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
buf.sub!(/\A((?:.|\n)*?)(?:#{EOL})?#{boundary}(#{EOL}|--)/n){
|
buf = buf.sub(/\A((?:.|\n)*?)(?:#{EOL})?#{boundary}(#{EOL}|--)/n) do
|
||||||
body.print $1
|
body.print $1
|
||||||
if "--" == $2
|
if "--" == $2
|
||||||
content_length = -1
|
content_length = -1
|
||||||
end
|
end
|
||||||
""
|
""
|
||||||
}
|
end
|
||||||
|
|
||||||
body.rewind
|
body.rewind
|
||||||
|
|
||||||
@ -849,24 +836,20 @@ convert string charset, and set language to "ja".
|
|||||||
|
|
||||||
# offline mode. read name=value pairs on standard input.
|
# offline mode. read name=value pairs on standard input.
|
||||||
def read_from_cmdline
|
def read_from_cmdline
|
||||||
require "shellwords.rb"
|
require "shellwords"
|
||||||
|
|
||||||
unless ARGV.empty?
|
string = unless ARGV.empty?
|
||||||
str = ARGV.join(' ')
|
ARGV.join(' ')
|
||||||
else
|
else
|
||||||
if STDIN.tty?
|
if STDIN.tty?
|
||||||
STDERR.print(
|
STDERR.print(
|
||||||
%|(offline mode: enter name=value pairs on standard input)\n|
|
%|(offline mode: enter name=value pairs on standard input)\n|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
str = readlines.join(' ')
|
readlines.join(' ').gsub(/\n/n, '')
|
||||||
str.gsub!(/\n/n, '')
|
end.gsub(/\\=/n, '%3D').gsub(/\\&/n, '%26')
|
||||||
end
|
|
||||||
|
|
||||||
str.gsub!(/\\=/n, '%3D')
|
words = Shellwords.shellwords(string)
|
||||||
str.gsub!(/\\&/n, '%26')
|
|
||||||
|
|
||||||
words = Shellwords.shellwords(str)
|
|
||||||
|
|
||||||
if words.find{|x| /=/n === x }
|
if words.find{|x| /=/n === x }
|
||||||
words.join('&')
|
words.join('&')
|
||||||
@ -938,22 +921,17 @@ convert string charset, and set language to "ja".
|
|||||||
=end
|
=end
|
||||||
def CGI::pretty_shift(string, shift = " ")
|
def CGI::pretty_shift(string, shift = " ")
|
||||||
shift = " " if true == shift
|
shift = " " if true == shift
|
||||||
str = string.dup
|
string.gsub(/\n(?!\z)/n, "\n" + shift)
|
||||||
str.gsub!(/\n(?!\z)/n, "\n" + shift)
|
|
||||||
str
|
|
||||||
end
|
end
|
||||||
def CGI::pretty_nest(string, shift = " ")
|
def CGI::pretty_nest(string, shift = " ")
|
||||||
str = string.dup
|
string.gsub(/(<(\w+).*?>)((?:.|\n)*?)(<\/\2>)/n) do
|
||||||
str.gsub!(/(<(\w+).*?>)((?:.|\n)*?)(<\/\2>)/n){
|
|
||||||
$1 + CGI::pretty_shift(CGI::pretty_nest($3, shift), shift) + $4
|
$1 + CGI::pretty_shift(CGI::pretty_nest($3, shift), shift) + $4
|
||||||
}
|
end
|
||||||
str
|
|
||||||
end
|
end
|
||||||
def CGI::pretty(string, shift = " ")
|
def CGI::pretty(string, shift = " ")
|
||||||
str = string.dup
|
CGI::pretty_nest(
|
||||||
str.gsub!(/<(?:.|\n)*?>/n, "\n\\0")
|
string.gsub(/<(?:.|\n)*?>/n, "\n\\0").gsub(/<(?:.|\n)*?>(?!\n)/n, "\\0\n"), shift
|
||||||
str.gsub!(/<(?:.|\n)*?>(?!\n)/n, "\\0\n")
|
)
|
||||||
CGI::pretty_nest(str, shift)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -1037,7 +1015,6 @@ convert string charset, and set language to "ja".
|
|||||||
|
|
||||||
|
|
||||||
module HtmlExtension
|
module HtmlExtension
|
||||||
extend TagMaker
|
|
||||||
|
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
@ -1699,162 +1676,176 @@ convert string charset, and set language to "ja".
|
|||||||
|
|
||||||
|
|
||||||
module Html3
|
module Html3
|
||||||
extend TagMaker
|
|
||||||
|
|
||||||
def doctype
|
def doctype
|
||||||
%|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">|
|
%|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def element_init
|
||||||
|
extend TagMaker
|
||||||
|
methods = ""
|
||||||
# - -
|
# - -
|
||||||
%w[ A TT I B U STRIKE BIG SMALL SUB SUP EM STRONG DFN CODE SAMP KBD VAR
|
for element in %w[ A TT I B U STRIKE BIG SMALL SUB SUP EM STRONG
|
||||||
CITE FONT ADDRESS DIV center MAP APPLET PRE XMP LISTING DL OL UL DIR
|
DFN CODE SAMP KBD VAR CITE FONT ADDRESS DIV center MAP
|
||||||
MENU SELECT table TITLE STYLE SCRIPT H1 H2 H3 H4 H5 H6 TEXTAREA FORM
|
APPLET PRE XMP LISTING DL OL UL DIR MENU SELECT table TITLE
|
||||||
BLOCKQUOTE CAPTION ].
|
STYLE SCRIPT H1 H2 H3 H4 H5 H6 TEXTAREA FORM BLOCKQUOTE
|
||||||
each{|element|
|
CAPTION ]
|
||||||
eval( <<-BEGIN + nn_element_def(element) + <<-END )
|
methods.concat( <<-BEGIN + nn_element_def(element) + <<-END )
|
||||||
def #{element.downcase}(attributes = {})
|
def #{element.downcase}(attributes = {})
|
||||||
BEGIN
|
BEGIN
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
|
||||||
# - O EMPTY
|
# - O EMPTY
|
||||||
%w[ IMG BASE BASEFONT BR AREA LINK PARAM HR INPUT ISINDEX META ].
|
for element in %w[ IMG BASE BASEFONT BR AREA LINK PARAM HR INPUT
|
||||||
each{|element|
|
ISINDEX META ]
|
||||||
eval( <<-BEGIN + nOE_element_def(element) + <<-END )
|
methods.concat( <<-BEGIN + nOE_element_def(element) + <<-END )
|
||||||
def #{element.downcase}(attributes = {})
|
def #{element.downcase}(attributes = {})
|
||||||
BEGIN
|
BEGIN
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
|
||||||
# O O or - O
|
# O O or - O
|
||||||
%w[ HTML HEAD BODY P PLAINTEXT DT DD LI OPTION tr th td ].
|
for element in %w[ HTML HEAD BODY P PLAINTEXT DT DD LI OPTION tr
|
||||||
each{|element|
|
th td ]
|
||||||
eval( <<-BEGIN + nO_element_def(element) + <<-END )
|
methods.concat( <<-BEGIN + nO_element_def(element) + <<-END )
|
||||||
def #{element.downcase}(attributes = {})
|
def #{element.downcase}(attributes = {})
|
||||||
BEGIN
|
BEGIN
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
eval(methods)
|
||||||
|
end
|
||||||
|
|
||||||
end # Html3
|
end # Html3
|
||||||
|
|
||||||
|
|
||||||
module Html4
|
module Html4
|
||||||
extend TagMaker
|
|
||||||
|
|
||||||
def doctype
|
def doctype
|
||||||
%|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">|
|
%|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def element_init
|
||||||
|
extend TagMaker
|
||||||
|
methods = ""
|
||||||
# - -
|
# - -
|
||||||
%w[ TT I B BIG SMALL EM STRONG DFN CODE SAMP KBD VAR CITE ABBR ACRONYM
|
for element in %w[ TT I B BIG SMALL EM STRONG DFN CODE SAMP KBD
|
||||||
SUB SUP SPAN BDO ADDRESS DIV MAP OBJECT H1 H2 H3 H4 H5 H6 PRE Q
|
VAR CITE ABBR ACRONYM SUB SUP SPAN BDO ADDRESS DIV MAP OBJECT
|
||||||
INS DEL DL OL UL LABEL SELECT OPTGROUP FIELDSET LEGEND BUTTON TABLE
|
H1 H2 H3 H4 H5 H6 PRE Q INS DEL DL OL UL LABEL SELECT OPTGROUP
|
||||||
TITLE STYLE SCRIPT NOSCRIPT TEXTAREA FORM A BLOCKQUOTE CAPTION ].
|
FIELDSET LEGEND BUTTON TABLE TITLE STYLE SCRIPT NOSCRIPT
|
||||||
each{|element|
|
TEXTAREA FORM A BLOCKQUOTE CAPTION ]
|
||||||
eval( <<-BEGIN + nn_element_def(element) + <<-END )
|
methods.concat( <<-BEGIN + nn_element_def(element) + <<-END )
|
||||||
def #{element.downcase}(attributes = {})
|
def #{element.downcase}(attributes = {})
|
||||||
BEGIN
|
BEGIN
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
|
||||||
# - O EMPTY
|
# - O EMPTY
|
||||||
%w[ IMG BASE BR AREA LINK PARAM HR INPUT COL META ].
|
for element in %w[ IMG BASE BR AREA LINK PARAM HR INPUT COL META ]
|
||||||
each{|element|
|
methods.concat( <<-BEGIN + nOE_element_def(element) + <<-END )
|
||||||
eval( <<-BEGIN + nOE_element_def(element) + <<-END )
|
|
||||||
def #{element.downcase}(attributes = {})
|
def #{element.downcase}(attributes = {})
|
||||||
BEGIN
|
BEGIN
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
|
||||||
# O O or - O
|
# O O or - O
|
||||||
%w[ HTML BODY P DT DD LI OPTION THEAD TFOOT TBODY COLGROUP TR TH TD HEAD].
|
for element in %w[ HTML BODY P DT DD LI OPTION THEAD TFOOT TBODY
|
||||||
each{|element|
|
COLGROUP TR TH TD HEAD]
|
||||||
eval( <<-BEGIN + nO_element_def(element) + <<-END )
|
methods.concat( <<-BEGIN + nO_element_def(element) + <<-END )
|
||||||
def #{element.downcase}(attributes = {})
|
def #{element.downcase}(attributes = {})
|
||||||
BEGIN
|
BEGIN
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
eval(methods)
|
||||||
|
end
|
||||||
|
|
||||||
end # Html4
|
end # Html4
|
||||||
|
|
||||||
|
|
||||||
module Html4Tr
|
module Html4Tr
|
||||||
extend TagMaker
|
|
||||||
|
|
||||||
def doctype
|
def doctype
|
||||||
%|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">|
|
%|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def element_init
|
||||||
|
extend TagMaker
|
||||||
|
methods = ""
|
||||||
# - -
|
# - -
|
||||||
%w[ TT I B U S STRIKE BIG SMALL EM STRONG DFN CODE SAMP KBD VAR CITE
|
for element in %w[ TT I B U S STRIKE BIG SMALL EM STRONG DFN
|
||||||
ABBR ACRONYM FONT SUB SUP SPAN BDO ADDRESS DIV CENTER MAP OBJECT
|
CODE SAMP KBD VAR CITE ABBR ACRONYM FONT SUB SUP SPAN BDO
|
||||||
APPLET H1 H2 H3 H4 H5 H6 PRE Q INS DEL DL OL UL DIR MENU LABEL SELECT
|
ADDRESS DIV CENTER MAP OBJECT APPLET H1 H2 H3 H4 H5 H6 PRE Q
|
||||||
OPTGROUP FIELDSET LEGEND BUTTON TABLE IFRAME NOFRAMES TITLE STYLE
|
INS DEL DL OL UL DIR MENU LABEL SELECT OPTGROUP FIELDSET
|
||||||
SCRIPT NOSCRIPT TEXTAREA FORM A BLOCKQUOTE CAPTION ].
|
LEGEND BUTTON TABLE IFRAME NOFRAMES TITLE STYLE SCRIPT
|
||||||
each{|element|
|
NOSCRIPT TEXTAREA FORM A BLOCKQUOTE CAPTION ]
|
||||||
eval( <<-BEGIN + nn_element_def(element) + <<-END )
|
methods.concat( <<-BEGIN + nn_element_def(element) + <<-END )
|
||||||
def #{element.downcase}(attributes = {})
|
def #{element.downcase}(attributes = {})
|
||||||
BEGIN
|
BEGIN
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
|
||||||
# - O EMPTY
|
# - O EMPTY
|
||||||
%w[ IMG BASE BASEFONT BR AREA LINK PARAM HR INPUT COL ISINDEX META ].
|
for element in %w[ IMG BASE BASEFONT BR AREA LINK PARAM HR INPUT
|
||||||
each{|element|
|
COL ISINDEX META ]
|
||||||
eval( <<-BEGIN + nOE_element_def(element) + <<-END )
|
methods.concat( <<-BEGIN + nOE_element_def(element) + <<-END )
|
||||||
def #{element.downcase}(attributes = {})
|
def #{element.downcase}(attributes = {})
|
||||||
BEGIN
|
BEGIN
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
|
||||||
# O O or - O
|
# O O or - O
|
||||||
%w[ HTML BODY P DT DD LI OPTION THEAD TFOOT TBODY COLGROUP TR TH TD HEAD ].
|
for element in %w[ HTML BODY P DT DD LI OPTION THEAD TFOOT TBODY
|
||||||
each{|element|
|
COLGROUP TR TH TD HEAD ]
|
||||||
eval( <<-BEGIN + nO_element_def(element) + <<-END )
|
methods.concat( <<-BEGIN + nO_element_def(element) + <<-END )
|
||||||
def #{element.downcase}(attributes = {})
|
def #{element.downcase}(attributes = {})
|
||||||
BEGIN
|
BEGIN
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
eval(methods)
|
||||||
|
end
|
||||||
|
|
||||||
end # Html4Tr
|
end # Html4Tr
|
||||||
|
|
||||||
|
|
||||||
module Html4Fr
|
module Html4Fr
|
||||||
include Html4Tr
|
|
||||||
extend TagMaker
|
|
||||||
|
|
||||||
def doctype
|
def doctype
|
||||||
%|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">|
|
%|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def element_init
|
||||||
|
extend TagMaker
|
||||||
|
extend Html4Tr
|
||||||
|
element_init()
|
||||||
|
methods = ""
|
||||||
# - -
|
# - -
|
||||||
%w[ FRAMESET ].
|
for element in %w[ FRAMESET ]
|
||||||
each{|element|
|
methods.concat( <<-BEGIN + nn_element_def(element) + <<-END )
|
||||||
eval( <<-BEGIN + nn_element_def(element) + <<-END )
|
|
||||||
def #{element.downcase}(attributes = {})
|
def #{element.downcase}(attributes = {})
|
||||||
BEGIN
|
BEGIN
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
|
||||||
# - O EMPTY
|
# - O EMPTY
|
||||||
%w[ FRAME ].
|
for element in %w[ FRAME ]
|
||||||
each{|element|
|
methods.concat( <<-BEGIN + nOE_element_def(element) + <<-END )
|
||||||
eval( <<-BEGIN + nOE_element_def(element) + <<-END )
|
|
||||||
def #{element.downcase}(attributes = {})
|
def #{element.downcase}(attributes = {})
|
||||||
BEGIN
|
BEGIN
|
||||||
end
|
end
|
||||||
END
|
END
|
||||||
}
|
end
|
||||||
|
eval(methods)
|
||||||
|
end
|
||||||
|
|
||||||
end # Html4Fr
|
end # Html4Fr
|
||||||
|
|
||||||
@ -1875,17 +1866,22 @@ convert string charset, and set language to "ja".
|
|||||||
case type
|
case type
|
||||||
when "html3"
|
when "html3"
|
||||||
extend Html3
|
extend Html3
|
||||||
|
element_init()
|
||||||
extend HtmlExtension
|
extend HtmlExtension
|
||||||
when "html4"
|
when "html4"
|
||||||
extend Html4
|
extend Html4
|
||||||
|
element_init()
|
||||||
extend HtmlExtension
|
extend HtmlExtension
|
||||||
when "html4Tr"
|
when "html4Tr"
|
||||||
extend Html4Tr
|
extend Html4Tr
|
||||||
|
element_init()
|
||||||
extend HtmlExtension
|
extend HtmlExtension
|
||||||
when "html4Fr"
|
when "html4Fr"
|
||||||
extend Html4Fr
|
extend Html4Fr
|
||||||
|
element_init()
|
||||||
extend HtmlExtension
|
extend HtmlExtension
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if defined?(MOD_RUBY) and (RUBY_VERSION < "1.4.3")
|
if defined?(MOD_RUBY) and (RUBY_VERSION < "1.4.3")
|
||||||
@ -1905,6 +1901,25 @@ end
|
|||||||
|
|
||||||
== HISTORY
|
== HISTORY
|
||||||
|
|
||||||
|
=== Version 1.31 - wakou
|
||||||
|
|
||||||
|
2000/05/08 21:51:30
|
||||||
|
|
||||||
|
- improvement of time forming new CGI object accompanied with HTML generation methods.
|
||||||
|
|
||||||
|
=== Version 1.30 - wakou
|
||||||
|
|
||||||
|
2000/05/07 21:51:14
|
||||||
|
|
||||||
|
- require English.rb
|
||||||
|
- improvement of load time.
|
||||||
|
|
||||||
|
=== Version 1.21 - wakou
|
||||||
|
|
||||||
|
2000/05/02 21:44:12
|
||||||
|
|
||||||
|
- support for ruby 1.5.3 (2000-05-01) (Array#filter --> Array#collect!)
|
||||||
|
|
||||||
=== Version 1.20 - wakou
|
=== Version 1.20 - wakou
|
||||||
|
|
||||||
2000/04/03 18:31:42
|
2000/04/03 18:31:42
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
# Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
# Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
# Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
require 'cgi'
|
require 'cgi'
|
||||||
require 'final'
|
require 'final'
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
# Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
# Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
# Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
if $SAFE > 0
|
if $SAFE > 0
|
||||||
STDERR.print "-r debug.rb is not available in safe mode\n"
|
STDERR.print "-r debug.rb is not available in safe mode\n"
|
||||||
@ -526,7 +526,7 @@ EOHELP
|
|||||||
end
|
end
|
||||||
|
|
||||||
def debug_funcname(id)
|
def debug_funcname(id)
|
||||||
if id == 0
|
if id.nil?
|
||||||
"toplevel"
|
"toplevel"
|
||||||
else
|
else
|
||||||
id.id2name
|
id.id2name
|
||||||
|
12
lib/mkmf.rb
12
lib/mkmf.rb
@ -328,6 +328,11 @@ def create_makefile(target)
|
|||||||
end
|
end
|
||||||
$DLDFLAGS = CONFIG["DLDFLAGS"]
|
$DLDFLAGS = CONFIG["DLDFLAGS"]
|
||||||
|
|
||||||
|
if $configure_args['--enable-shared']
|
||||||
|
$libs = CONFIG["LIBRUBYARG"] + " " + $libs
|
||||||
|
$DLDFLAGS = $DLDFLAGS + " -L$(topdir)"
|
||||||
|
end
|
||||||
|
|
||||||
if RUBY_PLATFORM =~ /beos/
|
if RUBY_PLATFORM =~ /beos/
|
||||||
$libs = $libs + " " + CONFIG["LIBRUBYARG"]
|
$libs = $libs + " " + CONFIG["LIBRUBYARG"]
|
||||||
$DLDFLAGS = $DLDFLAGS + " -L" + CONFIG["prefix"] + "/lib"
|
$DLDFLAGS = $DLDFLAGS + " -L" + CONFIG["prefix"] + "/lib"
|
||||||
@ -338,8 +343,6 @@ def create_makefile(target)
|
|||||||
if File.exist? target + ".def"
|
if File.exist? target + ".def"
|
||||||
defflag = "--def=" + target + ".def"
|
defflag = "--def=" + target + ".def"
|
||||||
end
|
end
|
||||||
$libs = $libs + " " + CONFIG["LIBRUBYARG"]
|
|
||||||
$DLDFLAGS = $DLDFLAGS + " -L$(topdir)"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
unless $objs then
|
unless $objs then
|
||||||
@ -460,13 +463,10 @@ end
|
|||||||
|
|
||||||
$OBJEXT = CONFIG["OBJEXT"]
|
$OBJEXT = CONFIG["OBJEXT"]
|
||||||
$objs = nil
|
$objs = nil
|
||||||
$libs = "-lc"
|
$libs = CONFIG["DLDLIBS"]
|
||||||
$local_flags = ""
|
$local_flags = ""
|
||||||
case RUBY_PLATFORM
|
case RUBY_PLATFORM
|
||||||
when /cygwin|beos|openstep|nextstep|rhapsody/
|
|
||||||
$libs = ""
|
|
||||||
when /mswin32/
|
when /mswin32/
|
||||||
$libs = ""
|
|
||||||
$local_flags = "rubymw.lib -link /LIBPATH:$(topdir) /EXPORT:Init_$(TARGET)"
|
$local_flags = "rubymw.lib -link /LIBPATH:$(topdir) /EXPORT:Init_$(TARGET)"
|
||||||
end
|
end
|
||||||
$LOCAL_LIBS = ""
|
$LOCAL_LIBS = ""
|
||||||
|
@ -5,7 +5,7 @@ $Date$
|
|||||||
|
|
||||||
net/telnet.rb
|
net/telnet.rb
|
||||||
|
|
||||||
Version 1.30
|
Version 1.31
|
||||||
|
|
||||||
Wakou Aoyama <wakou@fsinet.or.jp>
|
Wakou Aoyama <wakou@fsinet.or.jp>
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ Wakou Aoyama <wakou@fsinet.or.jp>
|
|||||||
# if ignore timeout then set "Timeout" to false.
|
# if ignore timeout then set "Timeout" to false.
|
||||||
"Waittime" => 0, # default: 0
|
"Waittime" => 0, # default: 0
|
||||||
"Proxy" => proxy # default: nil
|
"Proxy" => proxy # default: nil
|
||||||
# proxy is Telnet or TCPsocket object
|
# proxy is Net::Telnet or IO object
|
||||||
})
|
})
|
||||||
|
|
||||||
Telnet object has socket class methods.
|
Telnet object has socket class methods.
|
||||||
@ -157,6 +157,12 @@ of cource, set sync=true or flush is necessary.
|
|||||||
|
|
||||||
== HISTORY
|
== HISTORY
|
||||||
|
|
||||||
|
=== Version 1.31
|
||||||
|
|
||||||
|
2000/05/02 21:48:39
|
||||||
|
|
||||||
|
- Proxy option: can receive IO object
|
||||||
|
|
||||||
=== Version 1.30
|
=== Version 1.30
|
||||||
|
|
||||||
2000/04/03 18:27:02
|
2000/04/03 18:27:02
|
||||||
@ -437,7 +443,7 @@ module Net
|
|||||||
EOL = CR + LF
|
EOL = CR + LF
|
||||||
v = $-v
|
v = $-v
|
||||||
$-v = false
|
$-v = false
|
||||||
VERSION = "1.30"
|
VERSION = "1.31"
|
||||||
RELEASE_DATE = "$Date$"
|
RELEASE_DATE = "$Date$"
|
||||||
$-v = v
|
$-v = v
|
||||||
|
|
||||||
@ -487,12 +493,12 @@ module Net
|
|||||||
end
|
end
|
||||||
|
|
||||||
if @options.has_key?("Proxy")
|
if @options.has_key?("Proxy")
|
||||||
if @options["Proxy"].kind_of?(Telnet)
|
if @options["Proxy"].kind_of?(Net::Telnet)
|
||||||
@sock = @options["Proxy"].sock
|
@sock = @options["Proxy"].sock
|
||||||
elsif @options["Proxy"].kind_of?(TCPsocket)
|
elsif @options["Proxy"].kind_of?(IO)
|
||||||
@sock = @options["Proxy"]
|
@sock = @options["Proxy"]
|
||||||
else
|
else
|
||||||
raise "Error; Proxy is Telnet or TCPSocket object."
|
raise "Error; Proxy is Net::Telnet or IO object."
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
message = "Trying " + @options["Host"] + "...\n"
|
message = "Trying " + @options["Host"] + "...\n"
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# by Yukihiro Matsumoto <matz@netlab.co.jp>
|
# by Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
# Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
# Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
# Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
#
|
#
|
||||||
|
|
||||||
unless defined? Thread
|
unless defined? Thread
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# timeout.rb -- execution timeout
|
# timeout.rb -- execution timeout
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
# Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
# Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
# Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
#
|
#
|
||||||
#= SYNOPSIS
|
#= SYNOPSIS
|
||||||
#
|
#
|
||||||
|
2
object.c
2
object.c
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
13
parse.y
13
parse.y
@ -525,6 +525,10 @@ mlhs_node : variable
|
|||||||
{
|
{
|
||||||
$$ = attrset($1, $3);
|
$$ = attrset($1, $3);
|
||||||
}
|
}
|
||||||
|
| primary '.' tCONSTANT
|
||||||
|
{
|
||||||
|
$$ = attrset($1, $3);
|
||||||
|
}
|
||||||
| backref
|
| backref
|
||||||
{
|
{
|
||||||
rb_backref_error($1);
|
rb_backref_error($1);
|
||||||
@ -547,6 +551,10 @@ lhs : variable
|
|||||||
{
|
{
|
||||||
$$ = attrset($1, $3);
|
$$ = attrset($1, $3);
|
||||||
}
|
}
|
||||||
|
| primary '.' tCONSTANT
|
||||||
|
{
|
||||||
|
$$ = attrset($1, $3);
|
||||||
|
}
|
||||||
| backref
|
| backref
|
||||||
{
|
{
|
||||||
rb_backref_error($1);
|
rb_backref_error($1);
|
||||||
@ -3319,13 +3327,16 @@ yylex()
|
|||||||
case '1': case '2': case '3':
|
case '1': case '2': case '3':
|
||||||
case '4': case '5': case '6':
|
case '4': case '5': case '6':
|
||||||
case '7': case '8': case '9':
|
case '7': case '8': case '9':
|
||||||
|
tokadd('$');
|
||||||
while (ISDIGIT(c)) {
|
while (ISDIGIT(c)) {
|
||||||
tokadd(c);
|
tokadd(c);
|
||||||
c = nextc();
|
c = nextc();
|
||||||
}
|
}
|
||||||
|
if (is_identchar(c))
|
||||||
|
break;
|
||||||
pushback(c);
|
pushback(c);
|
||||||
tokfix();
|
tokfix();
|
||||||
yylval.node = NEW_NTH_REF(atoi(tok()));
|
yylval.node = NEW_NTH_REF(atoi(tok()+1));
|
||||||
return tNTH_REF;
|
return tNTH_REF;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
7
regex.c
7
regex.c
@ -2977,23 +2977,22 @@ re_compile_fastmap(bufp)
|
|||||||
for (j = 0,c = 0;j < (int)size; j++) {
|
for (j = 0,c = 0;j < (int)size; j++) {
|
||||||
unsigned int cc = EXTRACT_MBC(&p[j*8]);
|
unsigned int cc = EXTRACT_MBC(&p[j*8]);
|
||||||
beg = WC2MBC1ST(cc);
|
beg = WC2MBC1ST(cc);
|
||||||
while (c < beg) {
|
while (c <= beg) {
|
||||||
if (ismbchar(c))
|
if (ismbchar(c))
|
||||||
fastmap[c] = 1;
|
fastmap[c] = 1;
|
||||||
c++;
|
c++;
|
||||||
}
|
}
|
||||||
|
|
||||||
cc = EXTRACT_MBC(&p[j*8+4]);
|
cc = EXTRACT_MBC(&p[j*8+4]);
|
||||||
beg = WC2MBC1ST(cc);
|
|
||||||
if (cc < 0xff) {
|
if (cc < 0xff) {
|
||||||
num_literal = 1;
|
num_literal = 1;
|
||||||
while (c <= beg) {
|
while (c <= cc) {
|
||||||
if (ismbchar(c))
|
if (ismbchar(c))
|
||||||
fastmap[c] = 1;
|
fastmap[c] = 1;
|
||||||
c++;
|
c++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
c = beg + 1;
|
c = WC2MBC1ST(cc);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j = c; j < (1 << BYTEWIDTH); j++) {
|
for (j = c; j < (1 << BYTEWIDTH); j++) {
|
||||||
|
6
ruby.c
6
ruby.c
@ -1,4 +1,4 @@
|
|||||||
/************************************************
|
/**********************************************************************
|
||||||
|
|
||||||
ruby.c -
|
ruby.c -
|
||||||
|
|
||||||
@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
12
ruby.h
12
ruby.h
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
@ -73,16 +73,6 @@ extern "C" {
|
|||||||
#include <alloca.h>
|
#include <alloca.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__CYGWIN32__)
|
|
||||||
#if defined(USEIMPORTLIB)
|
|
||||||
#include "import.h"
|
|
||||||
#else
|
|
||||||
#if !defined(__CYGWIN__)
|
|
||||||
#define environ (*__imp___cygwin_environ)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _AIX
|
#ifdef _AIX
|
||||||
#pragma alloca
|
#pragma alloca
|
||||||
#endif
|
#endif
|
||||||
|
6
signal.c
6
signal.c
@ -1,4 +1,4 @@
|
|||||||
/************************************************
|
/**********************************************************************
|
||||||
|
|
||||||
signal.c -
|
signal.c -
|
||||||
|
|
||||||
@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
#include "ruby.h"
|
#include "ruby.h"
|
||||||
#include "rubysig.h"
|
#include "rubysig.h"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/************************************************
|
/**********************************************************************
|
||||||
|
|
||||||
sprintf.c -
|
sprintf.c -
|
||||||
|
|
||||||
@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
#include "ruby.h"
|
#include "ruby.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
2
string.c
2
string.c
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
Copyright (C) 1993-2000 Yukihiro Matsumoto
|
||||||
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||||
Copyright (C) 2000 Information-technology Promotion Agancy, Japan
|
Copyright (C) 2000 Information-technology Promotion Agency, Japan
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#define RUBY_VERSION "1.5.3"
|
#define RUBY_VERSION "1.5.3"
|
||||||
#define RUBY_RELEASE_DATE "2000-05-01"
|
#define RUBY_RELEASE_DATE "2000-05-09"
|
||||||
#define RUBY_VERSION_CODE 153
|
#define RUBY_VERSION_CODE 153
|
||||||
#define RUBY_RELEASE_CODE 20000501
|
#define RUBY_RELEASE_CODE 20000509
|
||||||
|
@ -58,6 +58,7 @@ s%@LIBRUBY_ALIASES@%%g
|
|||||||
s%@LIBRUBY@%libruby.lib%g
|
s%@LIBRUBY@%libruby.lib%g
|
||||||
s%@LIBRUBYARG@%libruby.lib%g
|
s%@LIBRUBYARG@%libruby.lib%g
|
||||||
s%@SOLIBS@%%g
|
s%@SOLIBS@%%g
|
||||||
|
s%@DLDLIBS@%%g
|
||||||
s%@arch@%i386-mswin32%g
|
s%@arch@%i386-mswin32%g
|
||||||
s%@sitedir@%${prefix}/lib/ruby/site_ruby%g
|
s%@sitedir@%${prefix}/lib/ruby/site_ruby%g
|
||||||
s%@configure_args@%--with-make-prog=nmake%g
|
s%@configure_args@%--with-make-prog=nmake%g
|
||||||
|
@ -498,6 +498,7 @@ EXPORTS
|
|||||||
rb_str_new3
|
rb_str_new3
|
||||||
rb_str_new4
|
rb_str_new4
|
||||||
rb_str_to_str
|
rb_str_to_str
|
||||||
|
rb_str_associate
|
||||||
rb_obj_as_string
|
rb_obj_as_string
|
||||||
rb_str_dup
|
rb_str_dup
|
||||||
rb_str_plus
|
rb_str_plus
|
||||||
@ -508,6 +509,8 @@ EXPORTS
|
|||||||
rb_str_dup_frozen
|
rb_str_dup_frozen
|
||||||
rb_str_resize
|
rb_str_resize
|
||||||
rb_str_cat
|
rb_str_cat
|
||||||
|
rb_str_cat2
|
||||||
|
rb_str_append
|
||||||
rb_str_concat
|
rb_str_concat
|
||||||
rb_str_hash
|
rb_str_hash
|
||||||
rb_str_cmp
|
rb_str_cmp
|
||||||
@ -568,17 +571,26 @@ EXPORTS
|
|||||||
rb_obj_instance_variables
|
rb_obj_instance_variables
|
||||||
rb_obj_remove_instance_variable
|
rb_obj_remove_instance_variable
|
||||||
rb_const_get_at
|
rb_const_get_at
|
||||||
|
rb_autoload_load
|
||||||
rb_const_get
|
rb_const_get
|
||||||
rb_mod_remove_const
|
rb_mod_remove_const
|
||||||
rb_mod_const_at
|
rb_mod_const_at
|
||||||
rb_mod_constants
|
|
||||||
rb_mod_const_of
|
rb_mod_const_of
|
||||||
|
rb_mod_constants
|
||||||
rb_const_defined_at
|
rb_const_defined_at
|
||||||
rb_autoload_defined
|
rb_autoload_defined
|
||||||
rb_const_defined
|
rb_const_defined
|
||||||
rb_const_set
|
rb_const_set
|
||||||
|
rb_const_assign
|
||||||
rb_define_const
|
rb_define_const
|
||||||
rb_define_global_const
|
rb_define_global_const
|
||||||
|
rb_cvar_declare
|
||||||
|
rb_cvar_set
|
||||||
|
rb_cvar_get
|
||||||
|
rb_cvar_defined
|
||||||
|
rb_cv_set
|
||||||
|
rb_cv_get
|
||||||
|
rb_define_class_variable
|
||||||
rb_iv_get
|
rb_iv_get
|
||||||
rb_iv_set
|
rb_iv_set
|
||||||
;version.c
|
;version.c
|
||||||
|
Loading…
x
Reference in New Issue
Block a user