merge revision(s) 34753:

	* io.c (rb_io_extract_modeenc): fail only if conflicting
	  text/binary modes given explicitly.  [ruby-dev:45268][Bug #6055]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@35826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 34552: [Bug #6516]

	* ext/zlib/zlib.c (do_inflate):  Inflate more data if buffered data
	  exists.  Allows Zlib::Inflate#set_dictionary to work.
	  [ruby-trunk - Bug #5929]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@35845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 35863,35864:

	* string.c (rb_enc_cr_str_buf_cat): don't reset coderange as unknown.
	  the condition 'ptr_a8 && str_cr != ENC_CODERANGE_7BIT' means not
	  unknown, str is also ASCII-8BIT because str_encindex == ptr_encindex,
	  and nont (str_cr == ENC_CODERANGE_UNKNOWN) and
	  str_cr != ENC_CODERANGE_7BIT means str_cr is valid because ASCII-8BIT
	  can't be broken. [ruby-dev:45688] [Bug #6509]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@35866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 35865:

	* lib/ipaddr.rb: Inhibit zero-filled octets in an IPv4 address in
	  all platforms. [ruby-dev:45671]

	* lib/ipaddr.rb: Allow the x:x:x:x:x:x:d.d.d.d form not limited to
	  IPv4 mapped/compatible addresses.  This change also makes it
	  possible for the parser to understand IPv4 mapped and compatible
	  IPv6 addresses in non-compressed form.

	* lib/ipaddr.rb: Stop exposing IPSocket.valid*? methods which were
	  only usable on non-IPv6-ready platforms.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@35917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 33730: [Bug #6574]

	* test/webrick/test_cgi.rb (class TestWEBrickCGI): respect
	  RbConfig::CONFIG["LIBPATHENV"]. [Bug #5135] [ruby-core:38653]

	* test/webrick/test_filehandler.rb (class WEBrick): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 35625: [Backport #6618]

	* thread.c (rb_threadptr_execute_interrupts_common):
	  test_signal_requiring of test/ruby/test_signal.rb fail if the sub
	  process is killed on waiting IO in lex_io_gets in rb_load_file in
	  rb_load_internal in require.
	  This is because
	  (1) the process receive the killing signal in
	      rb_thread_io_blocking_region in rb_read_internal in lex_io_gets.
	  (2) set th->errinfo as INT2FIX(TAG_FATAL) at
	      rb_threadptr_execute_interrupts_common.
	  (3) escape rb_load_file in rb_load_internal and jump to EXEC_TAG()
	      without set loaded as TRUE.
	  (4) call first rb_exc_raise(GET_THREAD()->errinfo); because loaded
	      is FALSE as above. this errinfo should be an exception object
	      but this is INT2FIX(TAG_FATAL).
	  Don't call first rb_exc_raise if GET_THREAD()->errinfo is Fixnum.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 34552: [Backport #6516]

	* ext/zlib/zlib.c (do_inflate):  Inflate more data if buffered data
	  exists.  Allows Zlib::Inflate#set_dictionary to work.
	  [ruby-trunk - Bug #5929]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 35434:[Backport #6593]

	* lib/drb/ssl.rb: generate 1024 bits RSA key instead of 512 bits.
	  OpenSSL 1.0.1 rejects 512 bits RSA key for TLS1.2 with SHA512.
	  http://rt.openssl.org/Ticket/Display.html?id=2769&user=guest&pass=guest
	  reported by Bohuslav Kabrda.
	  [ruby-core:43844] [ruby-trunk - Bug #6221]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 35081: [Backport #6605]

	* bignum.c (rb_big_pow): estimate result bit size more precisely.
	  [ruby-core:30735][Feature #3429]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 35913: [Backport #6640]

	* win32/win32.c (rb_w32_sysinit): let the system not display the
	  critical-error-handler message box and the Windows Error Reporting
	  dialog.  [ruby-core:45389] [Bug #6535]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 34633: [Backport #5124]

	* insns.def (splatarray): make new array if flag is set.

	* compile.c (iseq_compile_each): make new array with
	  splat. [ruby-core:21901][Feature #1125]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 32549,32557: [Backport #6661]

	* win32/win32.c, include/ruby/win32.h (rb_w32_io_cancelable_p): renamed
  from rb_w32_has_cancel_io().  now it takes a parameter as fd to check
  the fd is console or not, because we cannot cancel console input even
  if we have cancel_io function.

	* io.c (WAIT_FD_IN_WIN32): call above function instead of the old one,
  so now we can kill the thread which calls STDIN.gets.
  the problem was reported by ko1 vir IRC.

	* win32/win32.c (is_socket, is_console): add prototypes to fix compile
	  problem with gcc introduced at r32549.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 34348:

	* dir.c (dir_chdir, check_dirname): get rid of optimization-out.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 34372:

	* file.c (rb_enc_path_next, rb_enc_path_skip_prefix)
	  (rb_enc_path_last_separator, rb_enc_path_end)
	  (ruby_enc_find_basename, ruby_enc_find_extname): encoding-aware
	  path handling functions.

	* file.c (rb_home_dir, file_expand_path, rb_realpath_internal)
	  (rb_file_s_basename, rb_file_dirname, rb_file_s_extname)
	  (rb_file_join): should respect the encodings of arguments than
	  file system encoding.  [ruby-dev:45145] [Bug #5919]

	* dir.c (check_dirname, ruby_glob0): ditto.

	* ext/pathname/pathname.c (path_sub_ext): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 36258:

	* KNOWNBUGS.rb: Bug #2330 was fixed in r26718.
  [ruby-dev:40234] [ruby-core:27959]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 36259:

	* KNOWNBUGS.rb: add tests. [ruby-dev:45656] [Bug #6460]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c (rb_vm_rewrite_dfp_in_errinfo): Fix `unexpected return'
  occurs when a proc is called in ensure. [Backport #6460]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 34374:

	* file.c (rmext): no extension to strip if empty string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Revert r36285; it is fixed in r36286 in 1.9.3.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Revert r36279; it breaks C API compatibility.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e