I think this should do the trick... but I could have just done something clumsy
again.

Mon Nov 19 05:13:26 CET 2007  Eric Kow <[EMAIL PROTECTED]>
  * Simplify getCurrentDirectorySansDarcs out of existence.
  
  It was buggy and needlessly complicated.

Mon Nov 19 18:44:22 CET 2007  Eric Kow <[EMAIL PROTECTED]>
  * Fix corner case in sansDarcs.
  Pointed out by Kevin Quick.

New patches:

[Simplify getCurrentDirectorySansDarcs out of existence.
Eric Kow <[EMAIL PROTECTED]>**20071119041326
 
 It was buggy and needlessly complicated.
] {
hunk ./src/Darcs/Lock.lhs 36
-import Data.List ( isPrefixOf, inits )
hunk ./src/Darcs/Lock.lhs 63
-#include "impossible.h"
hunk ./src/Darcs/Lock.lhs 175
-          look_for_tmp [] = try_directory "/tmp" getCurrentDirectorySansDarcs
+          look_for_tmp [] = try_directory "/tmp" (sansDarcs `fmap` getCurrentDirectory)
hunk ./src/Darcs/Lock.lhs 180
-getCurrentDirectorySansDarcs :: IO FilePath
-getCurrentDirectorySansDarcs = do
-  c <- getCurrentDirectory
-  case drop 5 $ reverse $ takeWhile no_darcs $ inits c of
-    []    -> impossible
-    (d:_) -> return d
-  where no_darcs x = not $ "_darcs" `isPrefixOf` x
+sansDarcs :: FilePath -> FilePath
+sansDarcs "" = ""
+sansDarcs ('/':'_':'d':'a':'r':'c':'s':_) = ""
+sansDarcs (x:xs) = x : sansDarcs xs
}

[Fix corner case in sansDarcs.
Eric Kow <[EMAIL PROTECTED]>**20071119174422
 Pointed out by Kevin Quick.
] {
hunk ./src/Darcs/Lock.lhs 182
-sansDarcs ('/':'_':'d':'a':'r':'c':'s':_) = ""
+sansDarcs "/_darcs" = ""
+sansDarcs ('/':'_':'d':'a':'r':'c':'s':'/':_) = ""
}

Context:

[TAG darcs unstable 2007-11-04
Eric Kow <[EMAIL PROTECTED]>**20071104235616] 
Patch bundle hash:
0171a949cea4cdf618c48922959a380e5acd8457
_______________________________________________
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel

Reply via email to