[#37492] ReFe 0.6 — Minero Aoki <aamine@...>

あおきです。

27 messages 2003/04/01
[#37525] ReFe 0.7 (Re: ReFe 0.6) — Minero Aoki <aamine@...> 2003/04/06

あおきです。

[#37528] Re: ReFe 0.7 (Re: ReFe 0.6) — Koji Arai <JCA02266@...> 2003/04/07

新井です。

[#37545] Re: ReFe 0.7 (Re: ReFe 0.6) — Kazuhiro NISHIYAMA <zn@...> 2003/04/10

西山和広です。

[#37546] Re: ReFe 0.7 (Re: ReFe 0.6) — Koji Arai <JCA02266@...> 2003/04/10

新井です。

[#37551] Re: ReFe 0.7 (Re: ReFe 0.6) — Kazuhiro NISHIYAMA <zn@...> 2003/04/11

西山和広です。

[#37554] refe.el (Re: ReFe 0.7 (Re: ReFe 0.6)) — Koji Arai <JCA02266@...> 2003/04/12

新井です。

[#37619] net/pop.rbにUIDLコマンドでMessage-Idのリストを取得するメソッド — Keisuke Minami <keisuke@...>

こんにちは。三並です。

18 messages 2003/04/26

[#37622] net/imapのTHREAD Extension 対応 — wanowa.kimura@... (kimura wataru)

 木村といいます。

31 messages 2003/04/27
[#37628] Re: net/imapのTHREAD Extension 対応 — Shugo Maeda <shugo@...> 2003/04/28

前田です。

[#37632] Re: net/imap のTHREAD Extension 対応 — wanowa.kimura@... (kimura wataru) 2003/04/28

 木村といいます。

[#37635] Re: net/imap のTHREAD Extension 対応 — Shugo Maeda <shugo@...> 2003/04/30

前田です。

[#37638] Re: net/imap のTHREAD Extension 対応 — wanowa.kimura@... (kimura wataru) 2003/05/01

 木村です。

[#37641] Re: net/imap のTHREAD Extension 対応 — Shugo Maeda <shugo@...> 2003/05/02

前田です。

[#37647] Re: net/imap のTHREAD Extension 対応 — wanowa.kimura@... (kimura wataru) 2003/05/06

 木村です。

[#37648] マッチした部分を配列にしまう方法 — Hirano Satoshi <hirano@...> 2003/05/07

こんにちは。

[ruby-list:37483] Re: Tmpfile.newがデフォルトで/tmpを利用すること

From: nobu.nakada@...
Date: 2003-04-01 04:33:23 UTC
List: ruby-list #37483
なかだです。

At Mon, 31 Mar 2003 22:24:09 +0900,
Siena. / SHINAGAWA, Norihide wrote:
> $SAFE > 0 の時のデフォルトの動作は、最初に /tmp で試して、例外が
> 上がったら / を、更に例外が上がったら . を使う、という提案に修正します。
> ちょっと複雑になりますが、これはいかがでしょうか。

/と.の順序については違和感がないでもないですが、とりあえずこん
なところでしょうか。


Index: tempfile.rb
===================================================================
RCS file: //sharui/cvs/ruby/src/ruby/lib/tempfile.rb,v
retrieving revision 1.17
diff -u -2 -p -r1.17 tempfile.rb
--- tempfile.rb	20 Jan 2003 12:27:53 -0000	1.17
+++ tempfile.rb	1 Apr 2003 04:18:33 -0000
@@ -24,5 +24,8 @@ class Tempfile < SimpleDelegator
   def initialize(basename, tmpdir=ENV['TMPDIR']||ENV['TMP']||ENV['TEMP']||'/tmp')
     if $SAFE > 0 and tmpdir.tainted?
-      tmpdir = '/tmp'
+      tmplist = %w'/tmp / .'
+      tmpdir = tmplist.shift
+    else
+      tmplist = []
     end
 
@@ -34,5 +37,5 @@ class Tempfile < SimpleDelegator
 
       begin
-	tmpname = sprintf('%s/%s%d.%d', tmpdir, basename, $$, n)
+	tmpname = File.expand_path("#{basename}#{$$}.#{n}", tmpdir)
 	lock = tmpname + '.lock'
 	n += 1
@@ -41,8 +44,13 @@ class Tempfile < SimpleDelegator
 
       Dir.mkdir(lock)
-    rescue
+    rescue Errno::EEXIST
       failure += 1
       retry if failure < MAX_TRY
       raise "cannot generate tempfile `%s'" % tmpname
+    rescue
+      tmpdir = tmplist.shift or
+        raise "no tmpdir for tempfile `%s'" % tmpname
+      n = failure = 0
+      retry
     ensure
       Thread.critical = false


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

In This Thread