From b271ecb02a659115092aa73ebf2e15bf607c4bb8 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Fri, 15 Dec 2006 00:03:27 +0000 Subject: [PATCH] Fix 'home' bugs --- lib/hcoop.dtl | 5 ++++- src/domain.sig | 1 + src/plugins/hcoop.sml | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/hcoop.dtl b/lib/hcoop.dtl index d2e4673..d9fe950 100644 --- a/lib/hcoop.dtl +++ b/lib/hcoop.dtl @@ -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}} diff --git a/src/domain.sig b/src/domain.sig index b85bbf7..6762fc6 100644 --- a/src/domain.sig +++ b/src/domain.sig @@ -20,6 +20,7 @@ signature DOMAIN = sig + val yourPath : string -> bool val isIdent : char -> bool val validHost : string -> bool val validDomain : string -> bool diff --git a/src/plugins/hcoop.sml b/src/plugins/hcoop.sml index b5f0f2b..3f6f5b8 100644 --- a/src/plugins/hcoop.sml +++ b/src/plugins/hcoop.sml @@ -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 ^ "/" -- 2.20.1