2003-03-31
3 lines of code changed in:
* hash.c (env_reject_bang): untaint key string.
* hash.c (env_delete_m): execute block only if deleting key does
not exist.
15 lines of code changed in:
* pack.c (pack_pack): do not call rb_str_buf_cat() with NULL ptr,
which causes SEGV; jump to grow instead. [ruby-dev:19944]
13 lines of code changed in:
2003-03-29
3 lines of code changed in:
* instruby.rb, ext/extmk.rb, lib/benchmark.rb, lib/cgi.rb,
lib/debug.rb, lib/getoptlong.rb, lib/optparse.rb, lib/time.rb,
lib/date/format.rb, lib/irb/ruby-lex.rb lib/uri/common.rb: revert
escape for `-' in character class.
44 lines of code changed in:
* eval.c (avalue_to_svalue): use rb_check_array_type() again.
Clarify how "to_ary" and "to_a" work. [ruby-talk:68155]
* eval.c (svalue_to_avalue): ditto.
* eval.c (svalue_to_mrhs): ditto.
* eval.c (rb_eval): unary splat to use to_a, but we need a hack to
exclude Object#to_a until it's removed.
* object.c (rb_Array): check obj.respond_to?("to_a"). Currently
all object respond_to "to_a", but Object#to_a will be removed.
* range.c (Init_Range): undefine to_ary.
* re.c (Init_Regexp): ditto.
* regex.c (re_compile_pattern): do not warn if "-" is at the top
or last of character class.
84 lines of code changed in:
* MANIFEST (ext/aix_mksym.rb): remove obsolete file.
4 lines of code changed in:
Import Ruby/zlib from rough.
3745 lines of code changed in:
2003-03-28
3 lines of code changed in:
* variable.c (rb_class_path): hold temporary class path in a
instance variable to get rid of GC. [ruby-dev:19932]
* variable.c (classname): remove temporary class path when exact
name found.
18 lines of code changed in:
Use rb_str2cstr() instead of STR2CSTR() macro.
10 lines of code changed in:
Entries for bigdecimal added.
12 lines of code changed in:
Copied from rough/bigdecimal,documents & some sample programs added.
5934 lines of code changed in:
Added comment for Net::HTTP.get(arg1, arg2, arg3)
5 lines of code changed in:
* regex.c (re_compile_pattern): fix [:name:] handling.
/[\[:digit:]]/ was treated as /[[:digit:]]/.
/[[:-@]/ was treated as /[\[:\-@]/.
/[%-[:digit:]]/ was treated as /[%-\[:digit:]\]/.
39 lines of code changed in:
2003-03-27
3 lines of code changed in:
* string.c (rb_str_capitalize_bang): check length before upcase
first character. (ruby-bugs:PR#697)
6 lines of code changed in:
commit miss.
2 lines of code changed in:
* dln.c (dln_find_1): break if path list end, even for too long
path names. (ruby-bugs-ja:PR#412)
8 lines of code changed in:
2003-03-26
3 lines of code changed in:
* eval.c (avalue_splat): new function to do unary * (splat)
operator.
* eval.c (avalue_to_svalue,svalue_to_avalue,svalue_to_mrhs): do
not use implicit "to_ary" conversion.
* ext/curses/curses.c (GetWINDOW,GetMOUSE): add taint check.
* ext/curses/curses.c (curses_init_screen): ditto.
* ext/curses/curses.c (window_initialize): ditto.
* gc.c (os_each_obj): prohibit ObjectSpace#each_object in safe
mode ($SAFE >= 4).
112 lines of code changed in:
backout
2 lines of code changed in:
* signal.c (trap): return "DEFAULT" and "IGNORE" respectively for
previous sighandler SIG_DFL and SIG_IGN. [ruby-talk:67860]
20 lines of code changed in:
2003-03-25
3 lines of code changed in:
* eval.c (rb_yield_0): call avalue_to_mrhs() to assign block
parameter |a|. [ruby-dev:19897]
* ruby.c (ruby_set_argv): freeze argument strings.
12 lines of code changed in:
* io.c (rb_io_initialize): should check rb_secure(4).
* dir.c (dir_s_getwd): should check rb_secure(4).
* object.c (rb_obj_infect): function version of OBJ_INFECT().
* eval.c (rb_secure_update): new function to check object update.
34 lines of code changed in:
* ext/strscan/strscan.c: should infect also return values of #inspect.
* ext/strscan/strscan.c: use snprintf() instead of sprintf().
25 lines of code changed in:
security enhancement of dl library (need test).
175 lines of code changed in:
Added rb_secure(4). (Thanks to Minero Aoki)
23 lines of code changed in:
update NotImplementError to NotImplementedError.
6 lines of code changed in:
fix typos.
77 lines of code changed in:
* io.c (rb_io_fread): may lose data on nonblocking read.
16 lines of code changed in:
* parse.y (block_append): warn unused lteral.
5 lines of code changed in:
* lib/jcode.rb (tr!, delete!, szueeze!): add empty string checking.
6 lines of code changed in:
2003-03-23
3 lines of code changed in:
* gc.c (rb_gc_call_finalizer_at_exit): use free() if dfree is -1.
10 lines of code changed in:
* time.c (make_time_t): try search_time_t if mktime/timegm is failed.
27 lines of code changed in:
* lib/optparse.rb, lib/jcode.rb, ext/tk/lib/tk.rb: reorder character
class /[\]\[]/ to /[\[\]]/ to readability.
18 lines of code changed in:
* lib/uri/common.rb: `[', `]', `-' in chracter
class in regexp to avoid warning.
2 lines of code changed in:
* lib/date/format.rb, lib/uri/common.rb: `[', `]', `-' in chracter
class in regexp to avoid warning.
9 lines of code changed in:
* regex.c (re_compile_pattern): fix previous change.
* instruby.rb, ext/extmk.rb, ext/tk/lib/tk.rb, lib/benchmark.rb,
lib/cgi.rb, lib/debug.rb, lib/getoptlong.rb, lib/jcode.rb,
lib/optparse.rb, lib/time.rb, lib/date/format.rb,
lib/irb/ruby-lex.rb: escape `[', `]', `-' in chracter class in
regexp to avoid warning.
56 lines of code changed in:
2003-03-21
3 lines of code changed in:
* regex.c (re_compile_pattern): give warning for unescaped square
brackets and minus in character class. [ruby-dev:19868]
21 lines of code changed in:
* eval.c (bmcall): missing type.
5 lines of code changed in:
* sprintf.c (rb_f_sprintf): copy sign bits only if value is
negative.
9 lines of code changed in:
* missing.h: include <stdarg.h> or <varargs.h> if HAVE_VSNPRINTF
is not defined.
10 lines of code changed in:
*** empty log message ***
1 lines of code changed in:
* lib/optparse.rb (OptionParser#order!): follow recent change
of proc argument.
6 lines of code changed in:
2003-03-20
3 lines of code changed in:
* numeric.c (flo_to_s): change format specifier to "%.15g" to
avoid unnecessary 9s (e.g. 99.59999999999999). (ruby-bugs-ja PR#406)
6 lines of code changed in:
* parse.y (stmt, primary): get rid of SEGV at empty or invalid
condition. (ruby-bugs-ja:PR#410)
* parse.y (cond_negative): negate condition node when NODE_NOT.
36 lines of code changed in:
* eval.c (load_dyna): clear ruby_errinfo. (ruby-bugs-ja PR#409)
* io.c (read_all): make str empty if given. (ruby-bugs-ja PR#408)
* io.c (io_read): ditto.
* io.c (rb_io_sysread): ditto.
* range.c: do not override min and max.
* sprintf.c (remove_sign_bits): octal left most digit for negative
numbers may be '3'. (ruby-bugs-ja PR#407)
* sprintf.c (rb_f_sprintf): should prefix sign bits if bignum is
negative, using sign_bits().
* eval.c (avalue_to_mrhs): split argument passing and assignment
conversion.
* eval.c (svalue_to_mrhs): ditto.
* eval.c (avalue_to_svalue): avalue_to_svalue([[1,2]]) should be
[[1,2]], not [1,2] to wrap-around.
685 lines of code changed in:
* eval.c (bmcall): add volatile to avoid GC problem.
6 lines of code changed in:
* lib/tracer.rb (trace_func): save and recover Thread.critical state.
Fixed by Fukumoto Atsushi <fukumoto@imasy.or.jp> [ruby-dev:19830]
9 lines of code changed in:
add test for previous change.
5 lines of code changed in:
* lib/pp.rb (object_address_group): use to_s instead of name
to get name of class.
6 lines of code changed in:
* io.c (prep_stdio): set binmode only if the file descriptor
is not connected to a terminal on Cygwin.
12 lines of code changed in:
2003-03-11
3 lines of code changed in:
* lib/net/smtp.rb: Digest string wrongly included '\n' when user name is too long (ruby-bugs-ja:PR#404).
8 lines of code changed in:
* lib/net/http.rb: speeding up by avoiding extra flush. (suggested by Brian Candler <B.Candler@pobox.com>)
11 lines of code changed in:
* eval.c (massign): remove unnecessary array unpacking; it should
be handled before massign() by svalue_to_mrhs().
* eval.c (svalue_to_mrhs): '*a = v' value conversion to avalue
(i.e. [1] => [[1]], [1,2] => [1,2]).
* eval.c (rb_eval): use svalue_to_mrhs.
* eval.c (rb_yield_0): ditto.
* eval.c (proc_invoke): break from "Proc#yield" is legal.
52 lines of code changed in:
2003-03-10
3 lines of code changed in:
* file.c (rb_find_file): need world writable directory check for
relative paths too.
* file.c (rb_find_file): world writable directory check if
$SAFE >= 1 (was $SAFE >= 2).
24 lines of code changed in:
* lib/net/pop.rb: do not dispatch LIST when a mailbox is empty.
* lib/net/pop.rb: merge the 'STAT' patch from Frank S.Fejes <frank@oopdreams.com>, with modifications (listed below).
* lib/net/pop.rb: new method Net::POP#mail_size.
* lib/net/pop.rb: new method Net::POP#bytes.
* lib/net/pop.rb: new method Net::POPCommand#stat.
110 lines of code changed in:
* lib/fileutils.rb (mkdir, mkdir_p): revert.
* instruby.rb (umask): umask 0022, not 0.
9 lines of code changed in:
* lib/fileutils.rb (mkdir, mkdir_p): set mode to 0755.
* Makefile.in (fake.rb): set ALT_SEPARATOR to the default value.
18 lines of code changed in:
2003-03-08
3 lines of code changed in:
new method is Process.detach, not Proc#detach.
1 lines of code changed in:
* eval.c (massign): fix a bug not to expand in assigment to sole
lhs. [ruby-dev:19766]
6 lines of code changed in:
* lib/pp.rb (Kernel.pp): module function.
(MatchData#pretty_print): new method.
18 lines of code changed in:
* ext/tcltklib/extconf.rb (find_tcl, find_tk): return true if
non-versioned found. [ruby-dev:19759]
12 lines of code changed in:
* ext/dbm/extconf.rb: add QDBM support.
5 lines of code changed in:
* parse.y (dsym): :"symbol string" style should not contain `\0'.
* process.c (proc_detach): new method Proc#detach(pid) which
create background watcher thread to issue waitpid. [new]
* process.c (rb_detach_process): utility function to detach
process from C code.
* ext/pty/pty.c (pty_finalize_syswait): terminate watcher thread,
and detach child process (by creating new idle waitpid watcher
thread).
* ext/pty/pty.c (pty_syswait): may lost signal stopped child.
119 lines of code changed in:
* ext/Win32API/Win32API (Win32API_initialize): should check number of
papameters.
5 lines of code changed in:
* ext/Win32API/Win32API.c: no longer use inline-asms.
* ext/Win32API/extconf.rb: no need to add gcc options.
61 lines of code changed in:
* configure.in: better YACC support on HP-UX.
17 lines of code changed in:
commit miss
0 lines of code changed in:
* configure.in, bcc32/Makefile.sub, win32/Makefile.sub: define
RUBY_EXPORT to export symbols.
* defines.h: use RUBY_EXTERN instead of EXTERN.
* intern.h, re.h, ruby.h, rubysig.h: ditto.
* win32/win32.h: remove EXTERN definition.
117 lines of code changed in:
* array.c (rb_ary_aref): give warning if index is a symbol.
[ruby-list:37217]
* array.c (rb_ary_aset): raise TypeError if index is a symbol.
25 lines of code changed in:
* missing/strftime.c: HP-UX support.
19 lines of code changed in:
* io.c (rb_io_popen): do not call rb_io_close() directly, call
"close" method instead. [ruby-dev:19717]
* io.c (rb_io_s_open): ditto.
* hash.c (rb_any_hash): remove DEFER_INTS. all do_hash() calls in
st.c are at the top of functions. No reentrant problem.
33 lines of code changed in:
* configure.in: better HP-UX support.
* missing/strftime.c: ditto.
13 lines of code changed in:
* ext/dl/MANIFEST: Exclude .cvsignore. [found by: eban]
5 lines of code changed in:
* ext/Win32API/MANIFEST: Belatedly add lib/win32/registry.rb.
5 lines of code changed in:
* MANIFEST: Belatedly add Test::Unit files. D'oh!
27 lines of code changed in:
* parse.y (yycompile): zero clear ruby_eval_tree_begin if
compilation failed.
6 lines of code changed in:
* marshal.c (w_nbyte): should output always via rb_io_write().
* marshal.c (dump_ensure): ditto.
* marshal.c (marshal_dump): should call "binmode" method, if it
responds to.
* marshal.c (r_byte): should input always via "getc" method.
* marshal.c (r_bytes0): should input always via "read" method.
* marshal.c (marshal_load): need not to set up FILE* fp;
41 lines of code changed in:
* parse.y (arg): parse 'lhs = a rescue b' as 'lhs=(a rescue b)'.
* io.c (rb_io_fread): should not clearerr() if there's no filled
buffer (i.e. rb_io_fread() returning zero).
62 lines of code changed in:
* misc/ruby-mode.el (ruby-expr-beg): escaped char syntax.
* misc/ruby-mode.el (ruby-parse-partial): ditto.
* misc/ruby-mode.el (ruby-parse-partial): no deep indent for
block.
* misc/ruby-mode.el (ruby-backward-arg): skip arguments backward.
* misc/ruby-mode.el (ruby-calculate-indent): too deep indentation.
76 lines of code changed in: