Project

General

Profile

Actions

Bug #1614

closed

startup failure with non-ascii path

Added by nobu (Nobuyoshi Nakada) almost 15 years ago. Updated almost 13 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 1.9.2dev (2009-06-12) [i386-mswin32_90]
Backport:
[ruby-dev:38594]

Description

=begin
なかだです。

http://d.hatena.ne.jp/mirichi/20090611/p1 のように、実行ファイル
のパスにnon-ascii文字が含まれているとencdbのロードの際に失敗して
起動できません。

$ q=あ
$ mkdir $q
$ ln libruby.1.9.1.* ruby $q
$ DYLD_LIBRARY_PATH="$q" $q/ruby
internal:prelude:3:in require': incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError) from <internal:prelude>:3:in block in '
from internal:prelude:1:in each' from <internal:prelude>:1:in '

file_expand_path()で絶対パスをコピーするときにencodingをコピーし
ていないようです。


Index: file.c

--- file.c (revision 23669)
+++ file.c (working copy)
@@ -2794,4 +2794,5 @@ file_expand_path(VALUE fname, VALUE dnam
BUFCHECK(bdiff >= buflen);
memset(buf, '/', p - buf);

  • rb_enc_copy(result, fname);
    }
    if (p > buf && p[-1] == '/')

--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦
=end

Actions #1

Updated by nobu (Nobuyoshi Nakada) almost 15 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
Applied in changeset r23670.
=end

Actions #2

Updated by nobu (Nobuyoshi Nakada) almost 15 years ago

  • Category set to core
  • Status changed from Closed to Open
  • Target version set to 2.0.0
  • ruby -v set to ruby 1.9.2dev (2009-06-12) [i386-mswin32_90]

=begin

=end

Actions #3

Updated by wanabe (_ wanabe) almost 15 years ago

=begin
ワナベと申します。

2009/06/12 14:51 に Nobuyoshi Nakada さんは書きました:

なかだです。

http://d.hatena.ne.jp/mirichi/20090611/p1 のように、実行ファイル
のパスにnon-ascii文字が含まれているとencdbのロードの際に失敗して
起動できません。
(中略)
file_expand_path()で絶対パスをコピーするときにencodingをコピーし
ていないようです。

Index: file.c

--- file.c (revision 23669)
+++ file.c (working copy)
@@ -2794,4 +2794,5 @@ file_expand_path(VALUE fname, VALUE dnam
BUFCHECK(bdiff >= buflen);
memset(buf, '/', p - buf);

  •   rb_enc_copy(result, fname);
    
    }
    if (p > buf && p[-1] == '/')

エンコーディングのことは全くわからないのですが、もしかしたら同関数中の
/* skip drive letter */ の部分でも同様の処理が必要になるのではないでしょうか。

--
ワナベ

=end

Actions #4

Updated by yugui (Yuki Sonoda) over 14 years ago

  • Target version changed from 2.0.0 to 1.9.2

=begin

=end

Actions #5

Updated by yugui (Yuki Sonoda) over 14 years ago

  • Assignee set to nobu (Nobuyoshi Nakada)

=begin
applied in a changeset.
=end

Actions #6

Updated by naruse (Yui NARUSE) over 14 years ago

  • Status changed from Open to Closed

=begin

=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0