[#39464] Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

25 messages 2004/04/01
[#39608] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/02

遅い反応&File.fnmatchは使った事ない&ruby-devの方では

[#39609] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/02

File.fnmatch(と Dir.glob)をちょっと使ってみたのですが、

[#39610] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/02

山本です。

[#39611] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — matz@... (Yukihiro Matsumoto) 2004/05/02

まつもと ゆきひろです

[#39613] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/02

From: matz@ruby-lang.org (Yukihiro Matsumoto)

[#39616] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — matz@... (Yukihiro Matsumoto) 2004/05/02

まつもと ゆきひろです

[#39620] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/03

From: matz@ruby-lang.org (Yukihiro Matsumoto)

[#39621] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — matz@... (Yukihiro Matsumoto) 2004/05/03

まつもと ゆきひろです

[#39622] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/03

From: matz@ruby-lang.org (Yukihiro Matsumoto)

[ruby-list:39510] Win32API, GetUserName

From: AOKI Yoshihiro <aoki@...>
Date: 2004-04-08 01:53:32 UTC
List: ruby-list #39510
あおきよしひろです。

require 'Win32API'
name = ""
begin
  api = Win32API.new('advapi32', 'GetUserName', %w(p p), 'i')
  name = "\0" * 100 # Windowsではユーザー名は最大256まで許容されている
  api.call(name, "99")
  api = nil
  name.sub!(/\0.*/, "")
rescue
end
p name

というスクリプトですが、
  ・Windows Me
  ・うささんのruby 1.8.0 (2003-08-04) [i386-mswin32]
  ・exerb-2.6.7、exerb-cc-2.6.7.tar.gz
で、
  ・exerb -ccui18で固めると下一桁が6以上だとcallに失敗する
    15->OK
    16->bad
    95->OK
    96->bad
  ・ruby.exeから実行すると100以上で失敗する
という挙動に見えます。
callの第2引数はMSDNで「第1引数が指すバッファの最大サイズをTCHAR単位で
保持している、 1個の変数へのポインタ」となっており、
Unicode(UTF-8?、UCS-2?)を意識した文字列を与えないとだめなのでしょうか。
自分のWinXPでは"255"で動いており、末尾の \0 の有無は影響ないようです。
通常"64"(キリがよくて下一桁が6未満)もあれば十分なので構わないのですが。
ruby.exeとWin32Api.soはcmpを取って同一であることを確認しました。
-cui18で固めるのはXP側で行っています。


In This Thread

Prev Next