[#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:37498] Re: Tmpfile.newがデフォルトで/tmpを利用すること

From: nobu.nakada@...
Date: 2003-04-03 03:28:43 UTC
List: ruby-list #37498
なかだです。

At Tue, 1 Apr 2003 22:47:37 +0900,
WATANABE Hirofumi wrote:
> > これは、あえてこのままにして「/tmp が存在しない環境では必ず
> > TMPDIR or TMP or TEMP を設定しないければならない」と強制するか、
> > どの環境でも同じ設定で動く事を優先して [ruby-list:37480] での
> > 提案と同じように代替のディレクトリ ( / or . ) を使うようにするか、
> > どちらが望ましいでしょうか。
> 
> /に書き込めるんなら、そのまま使うのではなく、Tempfileの中で
> /tmpを作ってしまえば少しはましかもしれません。

出すのを忘れてましたが、こんなとこでしょうか。ディレクトリは消
してませんが、やっぱり消したほうがいいですかねぇ。


Index: lib/tempfile.rb
===================================================================
RCS file: /pub/cvs/ruby/src/ruby/lib/tempfile.rb,v
retrieving revision 1.17.100.1
retrieving revision 1.17.100.2
diff -u -2 -p -u -w -r1.17.100.1 -r1.17.100.2
--- lib/tempfile.rb	1 Apr 2003 04:18:33 -0000	1.17.100.1
+++ lib/tempfile.rb	2 Apr 2003 00:11:00 -0000	1.17.100.2
@@ -6,4 +6,5 @@
 
 require 'delegate'
+require 'fileutils'
 
 # A class for managing temporary files.  This library is written to be
@@ -22,11 +23,19 @@ class Tempfile < SimpleDelegator
   # tmpdir is tainted, it uses /tmp. (Note that ENV values are
   # tainted by default)
-  def initialize(basename, tmpdir=ENV['TMPDIR']||ENV['TMP']||ENV['TEMP']||'/tmp')
-    if $SAFE > 0 and tmpdir.tainted?
-      tmplist = %w'/tmp / .'
-      tmpdir = tmplist.shift
-    else
-      tmplist = []
+  def initialize(basename, tmplist = [])
+    Array === tmplist or tmplist = [tmplist]
+    tmpdir = nil
+    if $SAFE > 0
+      tmplist.reject! {|tmpdir| tmpdir.tainted?}
+    elsif tmplist.empty?
+      tmplist = ENV.select(%w'TMPDIR TMP TEMP').compact
+    end
+    tmplist |= %w'/tmp tmp'
+    tmplist.collect! do |d|
+      tmpdir = File.expand_path(d)
+      tmpdir.untaint unless d.tainted?
+      tmpdir
     end
+    tmpdir = tmplist.shift
 
     lock = nil
@@ -34,8 +43,9 @@ class Tempfile < SimpleDelegator
     
     begin
+      FileUtils.mkpath(tmpdir)
       Thread.critical = true
 
       begin
-	tmpname = File.expand_path("#{basename}#{$$}.#{n}", tmpdir)
+	tmpname = File.join(tmpdir, "#{basename}#{$$}.#{n}")
 	lock = tmpname + '.lock'
 	n += 1
@@ -50,5 +60,5 @@ class Tempfile < SimpleDelegator
     rescue
       tmpdir = tmplist.shift or
-        raise "no tmpdir for tempfile `%s'" % tmpname
+        raise "no tmpdir for tempfile `%s'" % basename
       n = failure = 0
       retry


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

In This Thread