Fix 'home' bugs
authorAdam Chlipala <adamc@hcoop.net>
Fri, 15 Dec 2006 00:03:27 +0000 (00:03 +0000)
committerAdam Chlipala <adamc@hcoop.net>
Fri, 15 Dec 2006 00:03:27 +0000 (00:03 +0000)
lib/hcoop.dtl
src/domain.sig
src/plugins/hcoop.sml

index d2e4673..d9fe950 100644 (file)
@@ -1,5 +1,8 @@
 {{HCoop-specific stuff}}
 
-extern val home : string -> string
+extern type homedir_path;
+{{Some relative subdirectory of your home directory}}
+
+extern val home : homedir_path -> your_path;
 {{Shortcut to denote a subdirectory of your home directory}}
 
index b85bbf7..6762fc6 100644 (file)
@@ -20,6 +20,7 @@
 
 signature DOMAIN = sig
 
+    val yourPath : string -> bool
     val isIdent : char -> bool
     val validHost : string -> bool
     val validDomain : string -> bool
index b5f0f2b..3f6f5b8 100644 (file)
@@ -24,6 +24,10 @@ open Ast
 
 val dl = ErrorMsg.dummyLoc
 
+val _ = Env.type_one "homedir_path"
+       Env.string
+       (fn dir => Domain.yourPath (Config.homeBase ^ "/" ^ Domain.getUser () ^ "/home/" ^ dir))
+
 val () = Env.registerFunction ("home",
                               fn [(EString dir, _)] => SOME (EString (Config.homeBase
                                                                       ^ "/"