dont try to create a FileBasedMailbox for STORAGE_ROOT/users
[org.ibex.mail.git] / src / org / ibex / mail / target / Script.java
index 27541d7..1f822a7 100644 (file)
@@ -95,7 +95,8 @@ public class Script extends Target {
         }
         private Sub getSub(String s) { return new Sub(s); }
 
-        public Object get(Object name) throws JSExn {
+        public Object get(Object name_) throws JSExn {
+            String name = (String)name_;
             if (name.equals("math")) { return ibexMath; }
             if (name.equals("string")) { return ibexString; }
             if (name.equals("date")) { return METHOD; }
@@ -105,6 +106,8 @@ public class Script extends Target {
             if (name.equals("log.info")) { return METHOD; }
             if (name.equals("log.warn")) { return METHOD; }
             if (name.equals("log.error")) { return METHOD; }
+            if (name.equals("list")) { return getSub("list"); }
+            if (name.startsWith("list.")) { return org.ibex.mail.List.getList(name.substring(5)); }
             if (name.equals("mail")) { return getSub("mail"); }
             if (name.equals("mail.forward")) { return METHOD; }
             if (name.equals("mail.send")) { return METHOD; }
@@ -117,7 +120,8 @@ public class Script extends Target {
                 }
             }
             if (name.equals("mail.my.mailbox")) {
-               return FileBasedMailbox.getFileBasedMailbox(Mailbox.STORAGE_ROOT, true).slash("user", true).slash("megacz", true).slash("newmail", true);
+                FileBasedMailbox root = FileBasedMailbox.getFileBasedMailbox(Mailbox.STORAGE_ROOT, true);
+                return root.slash("user", true).slash("megacz", true).slash("newmail", true);
            }
             return super.get(name);
         }