10901 Commits

Author SHA1 Message Date
nobu
38a24d73c8 * re.c (rb_reg_search): return byte offset. [ruby-dev:32452]
* re.c (rb_reg_match, rb_reg_match2, rb_reg_match_m): convert byte
  offset to char index.

* string.c (rb_str_index): return byte offset.  [ruby-dev:32472]

* string.c (rb_str_split_m): calculate in byte offset.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 04:50:35 +00:00
akr
eaba0fc94a add ML ref.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 03:16:02 +00:00
ko1
b7090e3673 * benchmark/bm_vm1_neq.rb, bm_vm1_not.rb: prop set.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 00:59:04 +00:00
ko1
3db5e76e50 * benchmark/bm_vm1_neq.rb, bm_vm1_not.rb: added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 00:57:10 +00:00
matz
126e7ed66f * object.c (rb_obj_not_match): wrong test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 23:25:20 +00:00
akr
862b6b68a4 update tests for String#inspect replacing \xHH instead of \OOO.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 23:18:25 +00:00
matz
6e12ae857e * parse.y (parser_yylex): wrong token was generated. [ruby-dev:32498]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 23:16:54 +00:00
akr
f4592d7bb0 * re.c (rb_reg_expr_str): use \xHH instead of \OOO.
* regerror.c (to_ascii): ditto.
  (onig_snprintf_with_pattern): ditto.
  (onig_snprintf_with_pattern): ditto.

* string.c (rb_str_inspect): ditto.
  (rb_str_dump): ditto.

* parse.y (parser_yylex): ditto.

* ruby.c (proc_options): ditto.

* file.c (rb_f_test): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 21:48:05 +00:00
akr
08eb58d3dd * re.c (rb_reg_names): new method Regexp#names.
(rb_reg_named_captures): new method Regexp#named_captures
  (match_regexp): new method MatchData#regexp.
  (match_names): new method MatchData#names.

* lib/pp.rb (MatchData#pretty_print): show names of named captures.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 21:44:19 +00:00
matz
9d8075b99c * parse.y (expr): redefinable not (!) operator.
* parse.y (arg): ditto.

* object.c (rb_obj_not): new method "!".

* object.c (rb_obj_not_equal): new method "!=".

* object.c (rb_obj_not_match): new method "!~".

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 16:39:49 +00:00
akr
e56e8c758d * re.c (rb_reg_s_last_match): accept named capture's name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 13:35:38 +00:00
akr
2d101f0a87 Regexp#fixed_encoding? documented.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 11:57:06 +00:00
akr
7a7c26be73 document named capture of MatchData#{offset,begin,end,inspect}.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 07:35:54 +00:00
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