This patch fixes the bug.

Thanks

Paolo
2006-09-06  Paolo Bonzini  <[EMAIL PROTECTED]>

        * kernel/File.st: Add #pathFor:ifNone:.
        * kernel/Directory.st: Use it in #create:.


--- orig/NEWS
+++ mod/NEWS
@@ -13,6 +13,9 @@ o   Moved gdk_draw_ functions to GdkDraw
 o   Fixed bug in methods containing both -0.0 and 0.0 (positive and negative
     floating-point zero).
 
+o   Fixed bug in Directory class>>#create:, that could not create a
+    directory relative to the current directory.
+
 o   Fixed bug in SortedCollection.  After #removeAtIndex:, adds would leave
     the collection unordered.
 


--- orig/kernel/Directory.st
+++ mod/kernel/Directory.st
@@ -147,7 +147,7 @@ allFilesMatching: aPattern do: aBlock
 
 create: dirName
     "Create a directory named dirName."
-    ^(VFS.VFSHandler for: (File pathFor: dirName))
+    ^(VFS.VFSHandler for: (File pathFor: dirName ifNone: [ Directory working 
]))
        createDir: (File stripPathFrom: dirName)
 ! !
 


--- orig/kernel/File.st
+++ mod/kernel/File.st
@@ -97,18 +97,26 @@ stripPathFrom: aString
     ^aString copyFrom: index + 1 to: aString size
 !
 
-pathFor: aString
+pathFor: aString ifNone: aBlock
     "Determine the path of the name of a file called `aString', and
      answer the result.  With the exception of the root directory, the
-     final slash is stripped."
+     final slash is stripped.  If there is no path, evaluate aBlock and
+     return the result."
     | index |
-    aString isEmpty ifTrue: [ ^'' ].
+    aString isEmpty ifTrue: [ ^aBlock value ].
     index := aString findLast: [ :each | each = Directory pathSeparator ].
-    index = 0 ifTrue: [ ^'' ].
+    index = 0 ifTrue: [ ^aBlock value ].
     index = 1 ifTrue: [ ^Directory pathSeparatorString ].
     ^aString copyFrom: 1 to: index - 1.
 !
 
+pathFor: aString
+    "Determine the path of the name of a file called `aString', and
+     answer the result.  With the exception of the root directory, the
+     final slash is stripped."
+    ^self pathFor: aString ifNone: [ '' ]
+!
+
 stripFileNameFor: aString
     "Determine the path of the name of a file called `aString', and
      answer the result as a directory name including the final slash."



_______________________________________________
help-smalltalk mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to