i
[chise/ruby.git] / chise / path.rb
index 8a34ea7..b6e5522 100755 (executable)
@@ -10,13 +10,21 @@ class String
 end
 
 class Pathname
-  def escape # copied from cgi.rb
+  def nuescape
     s = @path.gsub(/([\/%]+)/n){
       "%" + $1.unpack("H2" * $1.size).join("%").upcase
     }
     Pathname.new(s)
   end
 
+  def escape
+#    s = self.basename.to_s.gsub(/([\/%<>*?]+)/n){
+    s = self.basename.to_s.gsub(/([\/<>*?]+)/n){
+      "%" + $1.unpack("H2" * $1.size).join("%").upcase
+    }
+    Pathname.new(self.dirname+s)
+  end
+
   def unescape # copied from cgi.rb
     s = @path.tr("+", " ").gsub(/((?:%[0-9a-fA-F]{2})+)/n) {
       [$1.delete("%")].pack("H*")