[#16211] pstore.rb and sync.rb — Kazuhiro NISHIYAMA <zn@...>

西山和広です。

19 messages 2002/03/04
[#16245] Re: pstore.rb and sync.rb — keiju@... (石塚圭樹) 2002/03/07

けいじゅ@日本ラショナルソフトウェアです.

[#16240] [Oni Guruma] look behind — nobu.nakada@...

なかだです。

14 messages 2002/03/07

[#16283] ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

124 messages 2002/03/08
[#16307] Re: ライブラリ拡大計画 — TAKAHASHI Masayoshi <maki@...> 2002/03/10

高橋征義です。

[#16317] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/11

まつもと ゆきひろです

[#16318] Re: ライブラリ拡大計画 — Tanaka Akira <akr@...17n.org> 2002/03/11

In article <1015827556.101112.6552.nullmailer@ev.netlab.jp>,

[#16320] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/11

まつもと ゆきひろです

[#16347] Re: ライブラリ拡大計画 — Minero Aoki <aamine@...> 2002/03/12

あおきです。

[#16308] Re: ライブラリ拡大計画 — WATANABE Hirofumi <eban@...> 2002/03/11

わたなべです。

[#16626] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/27

まつもと ゆきひろです

[#16628] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/03/27

At Wed, 27 Mar 2002 18:56:03 +0900,

[#16629] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/27

まつもと ゆきひろです

[#16647] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/03/28

At Thu, 28 Mar 2002 00:12:49 +0900,

[#16674] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/03/29

At Thu, 28 Mar 2002 23:45:49 +0900,

[#16675] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/29

まつもと ゆきひろです

[#16680] Re: ライブラリ拡大計画 — nobu.nakada@... 2002/03/29

なかだです。

[#16681] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/29

まつもと ゆきひろです

[#16683] Re: ライブラリ拡大計画 — nobu.nakada@... 2002/03/29

なかだです。

[#16687] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/03/30

At Fri, 29 Mar 2002 20:32:17 +0900,

[#16718] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/04/02

At Sun, 31 Mar 2002 02:20:04 +0900,

[#16371] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/03/13

At Fri, 8 Mar 2002 18:05:01 +0900,

[#16373] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/14

まつもと ゆきひろです

[#16397] Re: ライブラリ拡大計画 — nobu.nakada@... 2002/03/14

なかだです。

[#16404] Re: ライブラリ拡大計画 — Tanaka Akira <akr@...17n.org> 2002/03/14

In article <20020314133401.3918E10F3@sharui.nakada.kanuma.tochigi.jp>,

[#16406] Re: ライブラリ拡大計画 — nobu.nakada@... 2002/03/15

なかだです。

[#16290] IO#gets improvement — nobu.nakada@...

なかだです。

27 messages 2002/03/08
[#16291] Re: IO#gets improvement — Tanaka Akira <akr@...17n.org> 2002/03/08

In article <20020308131426.8C36123B9@sharui.nakada.kanuma.tochigi.jp>,

[#16294] Re: IO#gets improvement — nobu.nakada@... 2002/03/09

なかだです。

[#16549] Re: IO#gets improvement — nobu.nakada@... 2002/03/23

なかだです。

[#16486] mswin32 configuration — nobu.nakada@...

なかだです。

20 messages 2002/03/19
[#16488] Re: mswin32 configuration — "U.Nakamura" <usa@...> 2002/03/19

こんにちは、なかむら(う)です。

[#16489] Re: mswin32 configuration — nobu.nakada@... 2002/03/19

なかだです。

[#16490] Re: mswin32 configuration — "U.Nakamura" <usa@...> 2002/03/19

こんにちは、なかむら(う)です。

[#16545] BigFloat — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

51 messages 2002/03/23
[#16547] Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/03/23

At Sat, 23 Mar 2002 22:55:45 +0900,

[#16548] Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/03/23

At Sun, 24 Mar 2002 02:20:26 +0900,

[#16550] Re: BigFloat — Tanaka Akira <akr@...17n.org> 2002/03/23

In article <867ko3yyik.wl@archon.local.idaemons.org>,

[#16551] Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/03/23

At Sun, 24 Mar 2002 04:21:59 +0900,

[#16552] Re: BigFloat — Tanaka Akira <akr@...17n.org> 2002/03/23

In article <864rj7yljs.wl@archon.local.idaemons.org>,

[#16553] Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/03/23

At Sun, 24 Mar 2002 07:44:15 +0900,

[#16560] Re: BigFloat — Tanaka Akira <akr@...17n.org> 2002/03/24

In article <861yeazvtg.wl@archon.local.idaemons.org>,

[#16565] Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/03/24

At Sun, 24 Mar 2002 15:41:18 +0900,

[#16575] Re: if Re: BigFloat — keiju@... (石塚圭樹) 2002/03/24

けいじゅ@日本ラショナルソフトウェアです.

[#16715] Re: if Re: BigFloat — keiju@... (石塚圭樹) 2002/04/02

けいじゅ@日本ラショナルソフトウェアです.

[#16725] Re: if Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/04/02

At Tue, 2 Apr 2002 16:16:04 +0900,

[#16789] Re: if Re: BigFloat — "Shigeo Kobayashi" <shigeo@...> 2002/04/08

[#16805] Re: if Re: BigFloat — Shin-ichiro HARA <sinara@...> 2002/04/09

原です。

[#16811] Re: if Re: BigFloat — "Shigeo Kobayashi" <shigeo@...> 2002/04/09

[#16555] File.fnmatch (Re: [rubyist:1286] Re: ARGV の機能) — Koji Arai <JCA02266@...>

新井です。

11 messages 2002/03/24

[#16593] Oniguruma and multibyte character literal — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

15 messages 2002/03/25
[#16594] Re: Oniguruma and multibyte character literal — matz@... (Yukihiro Matsumoto) 2002/03/25

まつもと ゆきひろです

[#16652] [OniGuruma] nested repeat operator — "K.Kosako" <kosako@...>

[ruby-talk:36959]で指摘された

31 messages 2002/03/29
[#16669] Re: [OniGuruma] nested repeat operator — Tanaka Akira <akr@...17n.org> 2002/03/29

In article <20020329022810.68F9E17@helium.ruby-lang.org>,

[#16676] Re: [OniGuruma] nested repeat operator — "K.Kosako" <kosako@...> 2002/03/29

Tanaka Akiraさんの<hvohemzoku6.fsf@coulee.a02.aist.go.jp>から

[ruby-dev:16193] Re: getopts() broken

From: "Akinori MUSHA" <knu@...>
Date: 2002-03-03 20:55:41 UTC
List: ruby-dev #16193
At Mon, 4 Mar 2002 05:12:42 +0900,
I wrote:
>  なお、上記の仕様は sh(1) の getopts を知っていると間違えそう
> なので、ちょっといじってみます。

 以下のようにいじりました。

- single_opts_exp, single_colon, single_colon_exp はあまり存在
  意義がないので廃止。--c と -- に続けて一文字オプションを指定
  する(不正な)ケースは arg のループで弾くようにした。

- 第一引数内に : を許すようにした。("ab:cde:f" 等)

- --long-option=value 形式の = を入れた指定に対応。

- 空の初期値を 0 にしておいて後で nil にする意味が分からないので
  やめた。

- インデントを直した。

すっきりしたので、問題なさそうならあとで 1.7 に入れます。

-- 
                     /
                    /__  __            Akinori.org / MUSHA.org
                   / )  )  ) )  /     FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ /  ( (__(  @ iDaemons.org / and.or.jp

"Somewhere out of a memory.. of lighted streets on quiet nights.."

Index: lib/getopts.rb
===================================================================
RCS file: /src/ruby/lib/getopts.rb,v
retrieving revision 1.5
diff -u -r1.5 getopts.rb
--- lib/getopts.rb	2001/05/06 15:04:52	1.5
+++ lib/getopts.rb	2002/03/03 20:43:49
@@ -16,11 +16,6 @@
 
 
 def getopts( single_opts, *options )
-  single_opts_exp = (single_opts && !single_opts.empty?) ?
-                        /[#{single_opts}]/ : nil
-  single_colon_exp = nil
-  single_colon = nil
-  opt = arg = val = nil
   boolopts = {}
   valopts = {}
   argv = ARGV
@@ -30,34 +25,25 @@
   # set default
   #
   if single_opts then
-    single_opts.each_byte do |byte|
-      boolopts[ byte.chr ] = false
+    single_opts.scan(/.:?/) do |opt|
+      if opt.size == 1 then
+	boolopts[ opt ] = false
+      else
+        valopts[ opt[0, 1] ] = 0
+      end
+    end
   end
-end
   unless options.empty? then
-    single_colon = ''
-
-    options.each do |opt|
-      m = /\A([^:]+):(.*)\z/.match( opt )
-      if m then
-        valopts[ m[1] ] = m[2].empty? ? 0 : m[2]
+    options.each do |arg|
+      opt, val = arg.split(':', 2)
+      if val then
+        valopts[ opt ] = val.empty? ? nil : val
       else
         boolopts[ opt ] = false
-end
-  end
-    valopts.each do |opt, dflt|
-      if opt.size == 1 then
-        single_colon << opt
-end
-  end
-
-    if single_colon.empty? then
-      single_colon = single_colon_exp = nil
-      else
-      single_colon_exp = /[#{single_colon}]/
+      end
     end
   end
-  
+
   #
   # scan
   #
@@ -70,10 +56,11 @@
       break
 
     when /\A--(.*)/
-      opt = $1
-      if valopts.key? opt  then         # imclean --src +trash
-        return nil if argv.empty?
-        valopts[ opt ] = argv.shift
+      opt, val = $1.split('=', 2)
+      if opt.size == 1 then
+	return nil
+      elsif valopts.key? opt  then         # imclean --src +trash
+	  valopts[ opt ] = val || argv.shift or return nil
       elsif boolopts.key? opt then      # ruby --verbose
         boolopts[ opt ] = true
       else
@@ -85,41 +72,39 @@
       arg = $1
       0.upto( arg.size - 1 ) do |idx|
         opt = arg[idx, 1]
-        if single_opts and single_opts_exp === opt then
+        if boolopts.key? opt then
           boolopts[ opt ] = true        # ruby -h
           c += 1
-
-        elsif single_colon and single_colon_exp === opt then
+        elsif valopts.key? opt then
           val = arg[ (idx+1)..-1 ]
           if val.empty? then            # ruby -e 'p $:'
-            return nil if argv.empty?
-            valopts[ opt ] = argv.shift
+            valopts[ opt ] = argv.shift or return nil
           else                          # cc -ohello ...
             valopts[ opt ] = val
-      end
+	  end
           c += 1
 
           break
-          else
+	else
           return nil
-          end
-        end
+	end
+      end
 
     else                                # ruby test.rb
       newargv.push arg
-      end
+    end
 
     arg = argv.shift
-    end
-    
+  end
+
   #
   # set
   #
   boolopts.each do |opt, val|
     eval "$OPT_#{opt} = val"
-    end
+  end
   valopts.each do |opt, val|
-    eval "$OPT_#{opt} = #{val == 0 ? 'nil' : 'val'}"
+    eval "$OPT_#{opt} = val"
   end
   argv.replace newargv
 

In This Thread