Commit graph

9854 commits

Author SHA1 Message Date
matz
67245eec71 * eval.c (rb_thread_restore_context): save current value of
lastline and lastmatch in the thread struct for later restore.

* eval.c (rb_thread_save_context): restore lastline and lastmatch.

* numeric.c (flo_to_s): should handle negative float value.

* class.c (rb_include_module): should check whole ancestors to
  avoid duplicate module inclusion.

* string.c (trnext): should check backslash before updating "now"
  position.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-09-08 14:17:53 +00:00
knu
970dbfde6f * ext/digest/digest.c (rb_digest_base_s_hexdigest): remove a debug
print.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-09-06 05:29:27 +00:00
shugo
99ae768645 * ext/readline/readline.c: restore terminal mode
even if readline() interrupted.

* ext/readline/readline.c: returned string need to
  be tainted.

* ext/readline/readline.c: fixed memory leak.

* ext/readline/readline.c: allow negative index.

* ext/readline/readline.c: added Readline::HISTORY.size
  same as Readline::HISTORY.length

* ext/readline/readline.c: allow conditional parsing
  of the ~/.inputrc file by `$if Ruby'.

* ext/readline/extconf.rb: check whether the
  libreadline has the variable `rl_completion_append_character'
  (this feature was implemented from GNU readline 2.1).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-09-06 05:14:06 +00:00
knu
4c9a9a620a * ext/digest/digest.c (rb_digest_base_s_digest,
rb_digest_base_s_hexdigest): ensure that a string is given.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-09-06 05:02:29 +00:00
nobu
a09435ec20 * ext/socket/socket.c (Init_socket): remove duplicating constants.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1730 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-09-05 22:18:56 +00:00
matz
2e2786ccab * re.c (Init_Regexp): to_s to be alias to inspect.
* parse.y (yylex): should support 'keyword='.

* ruby.c (proc_options): should not adjust argc/argv if -e option
  is supplied.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-09-05 06:54:57 +00:00
matz
c9d1be6327 * ruby.c (proc_options): should not alter origargv[].
* ruby.c (set_arg0): long strings for $0 dumped core.

* ruby.c (set_arg0): use setprogtitle() if it's available.

* io.c (rb_io_popen): accept integer flags as mode.

* file.c (rb_find_file_ext): extension table can be supplied from
  outside.  renamed.

* eval.c (rb_f_require): replace rb_find_file_noext by
  rb_find_file_ext.

* eval.c (rb_provided): should also check feature without
  extension.

* numeric.c (flo_to_s): do not rely on decimal point to be '.'


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-09-03 05:31:36 +00:00
matz
b47a99485b * parse.y (yylex): ternary ? can be followed by newline.
* eval.c (rb_f_require): should check static linked libraries
  before raising exception.

* array.c (rb_ary_equal): check identiry equality first.

* string.c (rb_str_equal): ditto.

* struct.c (rb_struct_equal): ditto.

* numeric.c (Init_Numeric): undef Integer::new.

* eval.c (rb_eval): NODE_WHILE should update result for each
  conditional evaluation.

* eval.c (rb_eval): NODE_UNTIL should return last evaluated value
  (or value given to break).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-29 06:28:51 +00:00
eban
e15efe7733 * ext/digest/sha2/extconf.rb: fix support for cross-compiling.
* mkconfig.rb: fix support for autoconf 2.52.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-20 10:56:03 +00:00
ttate
9665191df9 * curses.c: fix window_keypad() and curses_keyname() for NetBSD's libcurses.
* curses.c: attribute control routines and background manipulation routines
  are always available.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-16 07:24:20 +00:00
usa
9ba7324ceb * ext/socket/socket.c (s_recvfrom): fix typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-16 04:54:31 +00:00
usa
429ad453f8 * ext/socket/socket.c (s_recvform): avoid VC++6 warning.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-16 00:54:54 +00:00
knu
6ce3130067 * ext/digest/*/extconf.rb: really fix so that they build from any
directory.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-14 20:05:21 +00:00
knu
ad4c17c021 * ext/digest/sha2/extconf.rb: fix so that they build from any
directory.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-14 19:05:37 +00:00
knu
6a581e6317 * ext/digest/defs.h: Define NO_UINT64_T instead of emitting an
error to fail.

* ext/digest/sha2/extconf.rb: Do not exit on error, and utilize
  NO_UINT64_T to detect if the system has a 64bit integer type.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-14 17:04:00 +00:00
knu
5b63fc556f * ext/digest/sha2/extconf.rb: do not create Makefile when no 64bit
integer type is detected.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-14 12:15:21 +00:00
ttate
56f454f77d bug fix for Window#{keypad,keypad=}
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-13 02:13:06 +00:00
ttate
9eded5fa13 new methods and constants for using the mouse, character attributes,
colors and key codes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-12 23:42:44 +00:00
matz
d94dbed46d * socket.c: wrap UNIX code by ifdef HAVE_SYS_UN_H.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-06 06:10:10 +00:00
matz
f33a61c28d * string.c (rb_str_lstrip_bang): new method.
* string.c (rb_str_rstrip_bang): new method.

* string.c (rb_str_associate): should consider STR_ASSOC too.

* eval.c (rb_undefined): do not recurse if method_missing is
  undefined.

* process.c (proc_waitpid): now all arguments are optional.

* process.c (Init_process): waitpid is now alias to wait.

* process.c (Init_process): waitpid2 is now alias to wait2.

* process.c (rb_waitpid): made public.

* ext/pty/pty.c (pty_getpty): avoid disturbing SIGCHLD using
  thread and rb_waitpid.

* process.c (proc_getpgrp): now takes no argument on all
  platforms.

* process.c (proc_setpgrp): ditto.

* ext/socket/socket.c (sock_s_pack_sockaddr_in): added
  Socket::pack_sockaddr_in(). [new]

* ext/socket/socket.c (sock_s_pack_sockaddr_un): added
  Socket::pack_sockaddr_un(). [new]

* ext/socket/socket.c (sock_s_pack_sockaddr_in): added
  Socket::unpack_sockaddr_in(). [new]

* ext/socket/socket.c (sock_s_pack_sockaddr_un): added
  Socket::unpack_sockaddr_un(). [new]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-06 03:05:23 +00:00
nobu
4b7c92fa90 * process.c (last_status_set): nothing returned, should be void.
* ext/socket/socket.c (load_addr_info): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-31 08:04:13 +00:00
knu
e54216b740 * ext/extmk.rb.in, lib/mkmf.rb: dig the target subdirectory for
lib/* files properly in case of create_makefile("dir/name").


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-24 10:29:17 +00:00
knu
9e214f30c4 * ext/extmk.rb.in, lib/mkmf.rb: introduce a couple of new make
variables: CLEANFILES and DISTCLEANFILES.  They'd typically be
  defined in a file "depend".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-22 12:24:12 +00:00
knu
eaddc4a94b Rename *.jp to *.ja, since jp is a region code and ja is a language
code.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-19 05:44:26 +00:00
matz
f35971afdf * regex.c (NUM_FAILURE_ITEMS): was confusing NUM_REG_ITEMS and
NUM_NONREG_ITEMS, which have happened to be same value.

* class.c (rb_class_new): subclass check moved to this function.

* class.c (rb_class_boot): check less version of rb_class_new().

* eval.c (proc_invoke): should preserve iter status for embedded
  frame in the block.

* file.c (rb_file_s_expand_path): may overrun buffer on stack.

* string.c (rb_str_insert): forgot to call rb_str_modify().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-18 05:56:05 +00:00
usa
9078b69592 * ext/extmk.rb.in: modify RM macro because command.com/cmd.exe don't
recognize single quotation as quote character.

* lib/mkmf.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-17 02:13:13 +00:00
knu
f4b516777b * ext/digest/*/extconf.rb: fix so that they build from any
directory.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-14 03:29:50 +00:00
knu
76d7dae26a Import the "digest" module and the submodules, from the Rough Ruby
project.

  ext/digest:
    This module provides the module Digest and the abstract class
    Digest::Base.

  ext/digest/md5 (which obsoletes ext/md5):
    This module provides the class Digest::MD5 which implements the
    MD5 Message-Digest Algorithm.

  ext/digest/rmd160:
    This module provides the class Digest::RMD160 which implements the
    RIPEMD-160 cryptographic hash function.

  ext/digest/sha1 (which obsoletes ext/sha1):
    This module provides the class Digest::SHA1 which implements the
    SHA-1 Secure Hash Algorithm.

  ext/digest/sha2:
    This module provides the classes Digest::SHA256, Digest::SHA384
    and Digest::SHA512 which implement the SHA-256, SHA-384 and
    SHA-512 Secure Hash Algorithms, respectively.

  lib/md5.rb, lib/sha1.rb:
    These files are provided for backward compatibility.

All these classes have the common API, which previously ext/md5 and
ext/sha1 modules provided.  While the new API keeps 100% backward
compatibility, it has been enriched with several utility methods.

Read digest.txt for further details.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-13 20:06:14 +00:00
knu
6ecd6fe37b * ext/extmk.rb.in: support multi-level ext/ directories.
(e.g. you can have ext/foo, ext/foo/bar and ext/foo/baz)

* ext/.cvsignore: let cvs ignore extinit.c.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-13 18:02:10 +00:00
knu
c0a9b71aeb * lib/mkmf.rb: use File::split to split a target into a prefix and
a module name.  This also works around a just found bug of
  String#rindex.

* ext/extmk.rb.in: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-13 14:19:28 +00:00
knu
4439ee97cb Let cvs ignore extmk.log.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-12 12:02:34 +00:00
eban
18efb38b21 * ext/socket/socket.c (ruby_connect): workaround for the setup of
Cygwin socket(EALREADY).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-12 06:16:49 +00:00
eban
4d134d47d6 * ext/extmk.rb.in: modify RM macro.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-09 07:54:49 +00:00
knu
eab46f5fc6 Detypo and reword a bit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-05 15:47:03 +00:00
matz
ffe1cf575e * error.c (exc_exception): clone the receiver exception instead of
creating brand new exception object of the receiver.

* eval.c (rb_eval_string_wrap): extend new ruby_top_self, not
  original self.

* eval.c (rb_eval_cmd): respect ruby_wrapper if set.

* eval.c (eval): do not update ruby_class unless scope is not
  provided.

* eval.c (eval): preserve wrapper information.

* eval.c (proc_invoke): ditto.

* eval.c (block_pass): ditto.

* parse.y (void_expr): too much warnings for void context
  (e.g. foo[1] that can be mere Proc call).

* error.c (rb_name_error): new function to raise NameError with
  name attribute set.

* eval.c (rb_f_missing): set name and args in the exception
  object. [new]

* error.c (name_name): NameError#name - new method.

* error.c (nometh_args): NoMethodError#args - new method.

* lex.c (rb_reserved_word): lex_state after tRESCUE should be
  EXPR_MID.

* gc.c (add_heap): allocation size of the heap unit is doubled for
  each allocation.

* dir.c (isdelim): space, tab, and newline are no longer
  delimiters for glob patterns.

* eval.c (svalue_to_avalue): new conversion scheme between single
  value and array values.

* eval.c (avalue_to_svalue): ditto.

* eval.c (rb_eval): REXPAND now uses avalue_to_svalue(), return
  and yield too.

* eval.c (rb_yield_0): use avalue_to_svalue().

* eval.c (proc_invoke): Proc#call gives avaules, whereas
  Proc#yield gives mvalues.

* eval.c (bmcall): convert given value (svalue) to avalue.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-07-02 08:46:28 +00:00
eban
10e80b2402 * ext/tcltklib/stubs.c (ruby_tcltk_stubs): fix a typo in comment
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-25 01:52:59 +00:00
knu
c0648ecc85 * ext/readline/readline.c (readline_event): a non-void function
should return a value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-23 09:30:42 +00:00
eban
3aa7e4f741 * ext/socket/socket.c (ruby_connect): typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-22 15:49:08 +00:00
eban
2cf4fce053 * ext/socket/socket.c (ruby_connect): workaround for the setup of
Cygwin socket.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-22 14:44:44 +00:00
matz
def42c9a0c * eval.c (rb_yield_0): no mvalue_to_svalue conversion here.
* eval.c (massign): takes svalue, convert it to mvalue inside.

* eval.c (rb_eval): parameters for yield/return are always
  svalues now.

* eval.c (svalue_to_mvalue): more strict conversion.

* eval.c (mvalue_to_svalue): ditto.

* st.c (new_size): prime hash size enabled.

* ext/socket/socket.c (Init_socket): SO_* constants added.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-22 09:12:24 +00:00
knu
0c92a85e6a * ext/readline/readline.c: add new methods:
Readline::completion_append_character and
  Readline::completion_append_character=.k


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-19 09:21:38 +00:00
usa
a5c0e5a382 * ext/extmk.rb.in: Use -F and -T for mswin32 because cl.exe doesn't support -o officially and cl.exe considers that *.cc and *.cxx are OBJs.
* lib/mkmf.rb: ditto.

* win32/Makefile.sub: Use del instead of rm. All these changes are derived from Nobuyoshi Nakada's patch. Thanks.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-09 07:41:44 +00:00
eban
21524a3fc0 * ext/extmk.rb.in, lib/mkmf.rb (xsystem): write log file.
print command line.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-05 04:54:52 +00:00
eban
ac376af4f4 * ext/etc/extconf.rb: use egrep_cpp.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-05 04:43:17 +00:00
matz
353650e6b4 * parse.y (yylex): fixed 'print CGI::bar() {}, "\n"' syntax
breakage, adding new lex_state status.  sigh. [new]

* file.c (rb_file_s_unlink): should not allow if $SAFE >= 2.

* range.c (Init_Range): define "to_ary".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-01 06:47:32 +00:00
eban
e8fb16c70f * configure.in: use waitpid on mingw32.
* ext/dbm/extconf.rb: include <ndbm.h>, not <gdbm.h>.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1481 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-01 02:25:28 +00:00
eban
ac41cd6844 * mkconfig.rb, ext/configsub.rb: VERSION -> RUBY_VERSION.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-31 04:40:37 +00:00
matz
4cd1cd7201 * ruby.c (proc_options): unexpected SecurityError happens when -T4.
* regex.c (re_compile_pattern): * \1 .. \9 should be
  backreferences always.

* regex.c (re_match): backreferences corresponding to
  unclosed/unmatched parentheses should fail always.

* string.c (rb_str_cat): use rb_str_buf_cat() if possible. [new]

* string.c (rb_str_append): ditto.

* string.c (rb_str_buf_cat): remove unnecessary check (type,
  taint, modify) to gain performance.

* string.c (rb_str_buf_append): ditto.

* string.c (rb_str_buf_finish): removed.

* string.c (rb_str_buf_new): buffering string function. [new]

* string.c (rb_str_buf_append): ditto.

* string.c (rb_str_buf_cat): ditto.

* string.c (rb_str_buf_finish): ditto.

* time.c (make_time_t): local time adjustment revised.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-30 09:10:30 +00:00
eban
032825472b * configure.in: remove unnecessary AC_CANONICAL_BUILD
* defins.h: #define HAVE_SETITIMER on Cygwin(bug fixed).
* ruby.c: use relative path from LIBRUBY_SO.
* ruby.c: don't use -mwin32 option on Cygwin.
* cygwin/GNUmakefile.in: ditto.
* ext/sdbm/_sdbm: ditto.
* ext/tcltklib/extconf.rb: ditto.
* ext/tcltklib/stubs.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-28 16:07:34 +00:00
usa
e83171c4c4 * ext/extconf.rb.in: make the priority of the make rule of .c higher than .C .
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-28 13:25:34 +00:00