10901 Commits

Author SHA1 Message Date
nobu
3cce5965da * lib/mkmf.rb (try_var): should fail for functions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-14 02:54:08 +00:00
nobu
a2ccbc14d9 * configure.in (RUBY_CHECK_VARTYPE): check if a variable is defined
and its type.

* configure.in (timezone, altzone): check for recent cygwin.

* missing/strftime.c (strftime): fix for timezone.  [ruby-dev:32536]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-14 01:01:42 +00:00
akr
30c5d612c2 * eval.c (rb_protect): restore root_jmpbuf even if proc exits by
break such as dbm.delete_if { break }.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 23:19:14 +00:00
matz
c958d9a9c6 * string.c (str_nth): direct jump if string is 7bit only. great
performance boost for worst case.

* string.c (str_strlen): direct size if string is 7bit only.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 18:00:50 +00:00
matz
e0334fb250 * encoding.c (rb_enc_compatible): 1st argument (typically the
receiver) would have higher priority in encoding detection.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 17:30:54 +00:00
matz
c3b5279d49 * io.c (rb_io_synchronized): should check if initialized.
[ruby-dev:32585]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 17:06:41 +00:00
matz
7bb3ea6afa * re.c (rb_reg_initialize): embedded string may override encoding
of the regular expression.

* re.c (rb_reg_initialize): fix encoding of regular expression if
  embedded string has its own encoding specified.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 16:09:53 +00:00
matz
a648fc802b * encoding.c (rb_enc_compatible): encoding should never fall back
to ASCII-8BIT unless both encodings are ASCII-8BIT.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 13:44:02 +00:00
akr
968918da16 don't show shared and assoc for embed string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 12:32:06 +00:00
akr
9595af4ad5 * string.c (rb_str_shared_replace): make str noembed after free.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 11:52:15 +00:00
akr
719841ca37 * eval.c (rb_protect): restore root_jmpbuf to avoid SEGV by
'IO.pipe; [].each.next' with gcc version 3.3.5 (Debian 1:3.3.5-13)
  on IA64.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 11:10:46 +00:00
matz
7987f38467 * string.c (rb_str_succ): should not enter infinite loop for
non-ASCII, non-alphanumeric character at the bottom.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 09:20:13 +00:00
matz
66bae8ad6d * string.c (str_gsub): should copy encoding to the result.
* sprintf.c (rb_str_format): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 09:05:49 +00:00
matz
fb14b7eb05 * string.c (rb_str_split_m): need not to check encoding if regexp
is empty.

* string.c (rb_str_justify): associate encoding of original to the
  result. 

* string.c (rb_str_chomp_bang): need to check encoding of record
  separator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 08:28:40 +00:00
nobu
e18e893846 * encoding.c (enc_get_encoding): removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 08:05:00 +00:00
nobu
af69c73087 * encoding.c (rb_enc_compatible): should swap encoding indexes too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 08:03:31 +00:00
matz
02501dbe91 * encoding.c (rb_enc_compatible): should not judge compatibility
based on rb_enc_asciicompat().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14208 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 07:44:52 +00:00
matz
266d186bcf * include/ruby/io.h (MakeOpenFile): fptr->enc should be
intialized to zero.  [ruby-dev:32569]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 04:10:24 +00:00
akr
b21aa43b4c add test for [ruby-dev:32567].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 02:37:27 +00:00
akr
cf8c1e49dd upcase hex.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 00:21:18 +00:00
matz
b754d62f72 * io.c (rb_io_getc): use default external encoding if fptr->enc is
not set.  [ruby-dev:32565]

* lib/rubygems/package.rb (Gem::TarReader::Entry::rewind): typo fixed.
  [ruby-dev:32565]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-12 23:58:58 +00:00
matz
0ca7036682 * io.c (read_all): should associate default external encoding.
* io.c (io_read): should NOT associate default external encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-12 23:46:58 +00:00
akr
b92cee1ddb * re.c, regerror.c, string.c, parse.y, ruby.c, file.c:
use capital letter for \xHH notation.  [ruby-dev:32511]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-12 14:30:54 +00:00
matz
098ca00175 * io.c (rb_io_mode_enc): allow specifying external encoding in
open mode, e.g. open(path, "r:utf-8").

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-12 13:23:07 +00:00
matz
c6fa37e2f0 * eval_method.ci (rb_alias): no need to skip aliasing when new
equals to old.  [ruby-core:13990]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-12 12:27:39 +00:00
matz
6fd91d288c * io.c (rb_io_check_readable): set default external encoding to
STDIN.

* io.c (io_enc_str): associate encoding to output string.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-12 07:39:43 +00:00
matz
91142c95bb * parse.y (expr): 'not' and '!' should act as conditional
expression.   [ruby-dev:32548]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-12 03:45:36 +00:00
nobu
ad72efa269 * re.c (rb_reg_regsub): should copy encoding.
* string.c (rb_str_sub_bang, str_gsub): should check and copy encoding
  to be replaced.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-12 03:11:44 +00:00
matz
65a30eb3e7 * pack.c (pack_pack): RDoc update. a patch from Gary Wright
<radar2002 AT gmail.com>.  [ruby-core:13998]

* pack.c (pack_unpack): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-11 14:05:34 +00:00
akr
646f27b822 * encoding.c (rb_enc_ascget): renamed from rb_enc_get_ascii.
* include/ruby/encoding.h: follow the renaming.

* re.c: ditto. 



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-11 07:39:16 +00:00
nobu
7554dd1346 * Makefile.in, */Makefile.sub (CP, MV): added.
* common.mk (.y.c): not discard the old target until successfully
  created.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-11 07:19:28 +00:00
matz
2db98d937a * object.c (Init_Object): singleton_method_{added,removed,undefined}
hooks should be defined for BasicObject.  [ruby-dev:32531]

* eval.c (Init_eval): method_missing should be defined for all
  objects; moved to BasicObject.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-11 06:23:21 +00:00
nobu
3609358aac * test/ruby/test_transcode.rb: added tests from Martin Duerst <duerst
AT it.aoyama.ac.jp>.  [ruby-dev:32532]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-11 05:27:52 +00:00
nobu
a153fdb6ed * transcode.c (transcode_loop): get rid of SEGV at sequence can not be
converted.

* transcode.c (rb_str_transcode_bang): copy encoding.  [ruby-dev:32532]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-11 04:57:51 +00:00
akr
5802768b40 * encoding.c (rb_enc_get_ascii): add an argument to provide the
length of the returned character.

* include/ruby/encoding.h (rb_enc_get_ascii): add the argument.

* re.c (rb_reg_expr_str): modify rb_enc_get_ascii call.
  (rb_reg_quote): ditto.
  (rb_reg_regsub): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-11 03:08:50 +00:00
akr
9ee1ab0e28 * include/ruby/oniguruma.h (ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE):
parenthesize an argument.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-11 00:41:56 +00:00
matz
0dd39db036 * eval.c (rb_method_missing): RDoc update patch from Hugh Sasse
<hgs AT dmu.ac.uk>.  [ruby-core:12932]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 17:24:52 +00:00
matz
ff7f462bf4 * lib/net/http.rb (Net::HTTP::get): now supports gzip
content-encoding.  a patch from Hugh Sasse <hgs AT dmu.ac.uk>.
  [ruby-core:13451]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 16:53:52 +00:00
matz
6bd65de203 * parse.y (shadowing_lvar_gen): no duplicate error for "_".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 16:22:52 +00:00
knu
d2e596ad04 * array.c (rb_ary_slice_bang): If an invalid range is given, do
not raise an exception but return nil just like slice() does.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 13:25:39 +00:00
nobu
6d7999c132 * transcode.c (str_transcode): allow non-registered encodings.
[ruby-dev:32520]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 12:47:55 +00:00
matz
d04f108952 * array.c (rb_ary_slice_bang): should return nil if position out
of range.  a patch from Akinori MUSHA <knu AT iDaemons.org>.
  [ruby-dev:32518]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 12:01:45 +00:00
matz
f6a9c859be * re.c (rb_reg_match): should calculate offset by converted
operand.  [ruby-cvs:21416]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 10:03:48 +00:00
akr
32bfc874fa "// =~ :a" abort.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 09:49:37 +00:00
matz
9ab6f563a2 * lib/uri/common.rb (URI::REGEXP::PATTERN): typo in REG_NAME
regular expression.  a patch from Ueda Satoshi
  <s-ueda AT livedoor.jp>.  [ruby-dev:32514]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 09:31:28 +00:00
nobu
3a3bda73dd * string.c (rb_str_tmp_new): creates hidden temporary buffer.
* transcode.c (transcoding): added a pointer to function to flush.

* transcode.c (transcode_loop): do not use string internal.
  [ruby-dev:32512]

* transcode.c (str_transcode): allow Encoding objects.

* transcode_data.h (BYTE_LOOKUP): use actual struct name.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 08:46:06 +00:00
nobu
38b92f838f * transcode*.[ch], test/ruby/test_transcode.rb: set properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 08:25:01 +00:00
nobu
c26e32ec16 * string.c (rb_str_insert): should not add length in bytes to index in
chars.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 07:52:19 +00:00
matz
5ee029f62c * eval.c (rb_f_public_send): rename invoke_method to public_send.
it now invokes public method only no matter how it's called.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 05:34:50 +00:00
matz
7ded13f54b * transcode.c: new file to provide encoding conversion features.
code contributed by Martin Duerst.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 05:01:47 +00:00