10688 Commits

Author SHA1 Message Date
akr
18d8fbac54 * re.c (match_backref_number): new function for converting a backref
name/number to an integer.
  (match_offset): use match_backref_number.
  (match_begin): ditto.
  (match_end): ditto.
  (name_to_backref_number): raise IndexError instead of RuntimeError.
  (match_inspect): show capture index.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 07:12:44 +00:00
ko1
a44f38ff52 * eval_intern.h (CHECK_STACK_OVERFLOW): reserve frame size.
[ruby-dev:32485]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 06:00:56 +00:00
ko1
3923d7f420 * vm.c (rb_thread_mark): use rb_gc_mark_maybe() for
VM stack specified by mark_stack_len.
* insnhelper.ci: clear vm stack extended by opt value.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 05:56:00 +00:00
akr
3a8f7f1d7f * include/ruby/ruby.h (FilePathStringValue): defined. similar to
FilePathValue but no taint check.

* file.c (rb_get_path_no_checksafe): implementation of
  FilePathStringValue.
  (rb_file_s_basename): use FilePathStringValue.
  (rb_file_s_dirname): ditto.
  (rb_file_s_extname): ditto.
  (rb_file_s_split): ditto.
  (rb_file_join): ditto.

* dir.c (file_s_fnmatch): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 05:12:31 +00:00
akr
5a1c2b2677 * re.c (append_utf8): check unicode range.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 03:50:11 +00:00
nobu
78cc1c45ee * lib/cgi.rb (read_multipart): exclude blanks from header values.
[ruby-list:44327]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 03:39:04 +00:00
nobu
54f236542d * file.c (rb_get_path): use the original object if to_path method is
not defined.  [ruby-dev:32473]

* io.c (rb_f_open): call to_open on non-string objects, instead of
  to_str.  [ruby-dev:32473]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 03:18:21 +00:00
nobu
45fa4a4b63 * string.c (tr_find): returns true if no characters to be removed is
specified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 03:12:25 +00:00
nobu
0076f3b3f8 * parse.y (parser_magic_comment): delimits with a semicolon.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 03:03:18 +00:00
nobu
4892115ada * 2007-12-09
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14149 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 02:30:22 +00:00
nobu
54c146d2c3 * string.c (tr_trans): get rid of segfaults when has mulitbytes but
source sets have no mulitbytes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 02:29:24 +00:00
akr
221e6de720 fix added test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 01:25:32 +00:00
akr
be98b422b0 more tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 00:56:10 +00:00
akr
56f8092459 more tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 00:31:02 +00:00
akr
78eae5da62 * encoding.c (rb_enc_precise_mbclen): return needmore if underlying
implementation returns a length longer than e-p.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 19:10:58 +00:00
akr
4db4d80357 fix previous commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 18:47:42 +00:00
akr
cbff149e47 add a test for casecmp with sjis string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14142 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 18:45:20 +00:00
akr
cde5b2a9cf * encoding.c (rb_enc_mbclen): return 1 if underlying implementation
returns a length longer than e-p.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 18:41:47 +00:00
akr
6c6cf008cd add a test for concatinating euc-jp and ascii-8bit string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14140 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 17:41:47 +00:00
akr
ec165c09b0 ignore y.output.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 14:58:56 +00:00
akr
0bb9c3e6d9 unused variables removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 09:24:52 +00:00
akr
1dd06c4301 * signal.c (posix_signal): return value.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 09:01:43 +00:00
akr
d4463c42c0 * enum.c (enum_count): suppress warning.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14136 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 08:53:20 +00:00
gotoyuzo
cf95a55cc9 * test/openssl/test_pkcs7.rb: Remove redundant module namespace.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 08:23:07 +00:00
akr
5b57724691 * ruby.c (proc_options): make rb_raise format as a string literal to
avoid warning.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14134 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 08:11:52 +00:00
akr
b12bb50149 * re.c (rb_reg_check_preprocess): new function for validating regexp
fragment.

* parse.y (regexp): invoke reg_fragment_check.
  (reg_fragment_check): defined.
  (reg_fragment_check_gen): defined.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 07:21:05 +00:00
akr
9667f7953e add test for UTF-8 bit pattern.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 04:31:26 +00:00
akr
f1b7e60cb9 * encoding.c (rb_enc_mbclen): make it never fail.
(rb_enc_nth): don't check the return value of rb_enc_mbclen.
  (rb_enc_strlen): ditto.
  (rb_enc_precise_mbclen): return needmore(1) if e <= p.
  (rb_enc_get_ascii): new function for extracting ASCII character.

* include/ruby/encoding.h (rb_enc_get_ascii): declared.

* include/ruby/regex.h (ismbchar): removed.

* re.c (rb_reg_expr_str): use rb_enc_get_ascii.
  (unescape_escaped_nonascii): use rb_enc_precise_mbclen to determine
  the termination of escaped non-ASCII character.
  (unescape_nonascii): use rb_enc_precise_mbclen.
  (rb_reg_quote): use rb_enc_get_ascii.
  (rb_reg_regsub): use rb_enc_get_ascii.

* string.c (rb_str_reverse) don't check the return value of
  rb_enc_mbclen.
  (rb_str_split_m): don't call rb_enc_mbclen with e <= p.

* parse.y (is_identchar): use ISASCII.
  (parser_ismbchar): removed.
  (parser_precise_mbclen): new macro.
  (parser_isascii): new macro.
  (parser_tokadd_mbchar): use parser_precise_mbclen to check invalid
  character precisely.
  (parser_tokadd_string): use parser_isascii.
  (parser_yylex): ditto.
  (is_special_global_name): don't call is_identchar with e <= p.
  (rb_enc_symname_p): ditto.

  [ruby-dev:32455]

* ext/tk/sample/tkextlib/vu/canvSticker2.rb: remove coding cookie
  because the encoding is not UTF-8.  [ruby-dev:32475]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 02:50:43 +00:00
gotoyuzo
990bec9702 * ext/openssl/lib/net/ftptls.rb, ext/openssl/lib/net/telnets.rb:
half-finished libraries are discontinued.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-07 11:35:13 +00:00
akr
9bc20bef7a * lib/pp.rb: use Hash for recursion check as inspect.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-07 06:45:28 +00:00
nobu
62c94002ef * thread.c (recursive_pop): use object ID.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-07 06:04:03 +00:00
nobu
2257138aa5 * array.c (flatten): some performance improvements, based on a patch
from Yusuke ENDOH <mame AT tsg.ne.jp> in [ruby-core:13877].
  [ruby-core:13851]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-07 03:27:20 +00:00
nobu
ff2ec563b2 * thread.c (rb_exec_recursive): use Hash instead of Array for
performance improvement.  [ruby-core:13898]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-07 03:22:28 +00:00
matz
0f8e9a24c1 * parse.y (arg): typo fixed ("!" -> "|") in the ripper code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-07 02:52:37 +00:00
matz
aff0d98a5b * parse.y (arg): tUPLUS no longer works as identity operation any
more.  inspired by [ruby-talk:265532].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-07 02:51:31 +00:00
akr
a42bb2a456 add test for [ruby-dev:32452].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-07 01:42:16 +00:00
akr
92af9c0d54 reproduce segv.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-06 10:09:44 +00:00
akr
b791feb694 use \xf0 instead of \xfd for valid first byte of a UTF-8 character.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-06 10:06:41 +00:00
akr
948d1a6821 add ML ref.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-06 09:37:40 +00:00
akr
69406aad50 * encoding.c (rb_enc_precise_mbclen): new function for mbclen with
validation.

* include/ruby/encoding.h (rb_enc_precise_mbclen): declared.
  (MBCLEN_CHARFOUND): new macro.
  (MBCLEN_INVALID): new macro.
  (MBCLEN_NEEDMORE): new macro.

* include/ruby/oniguruma.h (OnigEncodingTypeST): replace mbc_enc_len
  by precise_mbc_enc_len.
  (ONIGENC_PRECISE_MBC_ENC_LEN): new macro.
  (ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND): new macro.
  (ONIGENC_CONSTRUCT_MBCLEN_INVALID): new macro.
  (ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE): new macro.
  (ONIGENC_MBCLEN_CHARFOUND): new macro.
  (ONIGENC_MBCLEN_INVALID): new macro.
  (ONIGENC_MBCLEN_NEEDMORE): new macro.
  (ONIGENC_MBC_ENC_LEN): use ONIGENC_PRECISE_MBC_ENC_LEN.

* enc/euc_jp.c: validation implemented.

* enc/sjis.c: ditto.

* enc/utf8.c: ditto.

* string.c (rb_str_inspect): use rb_enc_precise_mbclen for invalid
  encoding.
  (rb_str_valid_encoding_p): new method String#valid_encoding?.

* io.c (rb_io_getc): use rb_enc_precise_mbclen.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-06 09:28:26 +00:00
nobu
de4ec68991 * bootstraptest/test_knownbug.rb: new test for block and
define_method.

* bootstraptest/test_syntax.rb: moved [ruby-dev:32429] from
  test_knownbug.rb.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-06 02:04:19 +00:00
nobu
95cf86dd26 * bootstraptest/test_knownbug.rb: test for [ruby-talk:266422].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-06 00:27:35 +00:00
nobu
a5c6b705db * regparse.c (i_apply_case_fold): fix for negative character class. a
patch from Yusuke ENDOH <mame AT tsg.ne.jp> in [ruby-core:13884].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14116 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-05 16:37:25 +00:00
naruse
46d6af3a9c * ext/iconv/iconv.c (iconv_s_list): support NetBSD/Citrus iconv.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-05 16:04:12 +00:00
nobu
360a674fe5 * thread.c (thread_initialize): fixed typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-05 07:43:08 +00:00
nobu
430f5a1d61 * proc.c (rb_proc_s_new): call initialize. [ruby-core:13824]
* proc.c (rb_proc_location): return file name and line number where
  the proc is defined.

* thread.c (thread_s_new): call initialize.  [ruby-core:13835]

* thread.c (thread_initialize): split initialize method.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-05 07:18:52 +00:00
nobu
0af432ce08 * parse.y (rb_intern3): fix to changing encoding to default, and
uncommented r13835, which is rare but not impossible.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-05 06:25:56 +00:00
nobu
e8ffe28214 * range.c (step_i, range_step): support non-fixnum steps.
[ruby-talk:282100]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-05 06:15:23 +00:00
ko1
9c1e3d00d5 * compile.c (iseq_compile_each): fix typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-05 05:25:58 +00:00
nobu
45b05313ec * ChangeLog: fix ML number.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-05 04:53:51 +00:00