From 7f159a283a3eda32d45bc10bcf2d238950e8e1cf Mon Sep 17 00:00:00 2001
From: substantialnoninfringinguser <substantialnoninfringinguser@gmail.com>
Date: Wed, 13 May 2009 05:36:17 +0100
Subject: [PATCH] [svn] Changes to file abstraction, that seemed to make it
 work by magic

Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8182 by julian @ 1/18/2009 5:07 PM
---
 expo/fileAbstraction.py | 55 +++++++++++++++++++++++------------------
 1 file changed, 31 insertions(+), 24 deletions(-)

diff --git a/expo/fileAbstraction.py b/expo/fileAbstraction.py
index deb1a4a..a14eceb 100644
--- a/expo/fileAbstraction.py
+++ b/expo/fileAbstraction.py
@@ -1,25 +1,32 @@
-import troggle.settings as settings
-import os
-
-def urljoin(x, y): return x + "/" + y
-
-def listdir(*path):
-    try:
-        l = ""
-        root = os.path.join(settings.FILES, *path)
-        for p in os.listdir(root):
-            if os.path.isdir(os.path.join(root, p)):
-                l += p + "/\n"
-            elif os.path.isfile(os.path.join(root, p)):
-                l += p + "\n"
-            #Ignore non-files and non-directories
-        return l
-    except:
-        return urllib.urlopen(settings.FILES + "listdir/" + reduce(urljoin, path))
-
-def readFile(*path):
-    try:
-        f = open(os.path.join(settings.FILES, *path))
-    except:
-        f = urllib.urlopen(settings.FILES + "download/" + reduce(urljoin, path))
+import troggle.settings as settings
+import os
+import urllib
+
+def urljoin(x, y): return x + "/" + y
+
+def listdir(*path):
+    try:
+        strippedpath = [p for p in path if p]
+        root = os.path.join(settings.FILES, *strippedpath )
+        l = ""
+        #l = root + "\n"
+        #isdir = os.path.isdir(root)
+        #l += str(isdir) + "\n"
+        for p in os.listdir(root):
+            if os.path.isdir(os.path.join(root, p)):
+                l += p + "/\n"
+                
+            elif os.path.isfile(os.path.join(root, p)):
+                l += p + "\n"
+            #Ignore non-files and non-directories
+        return l
+    except:
+        return urllib.urlopen(settings.FILES + "listdir/" + reduce(urljoin, strippedpath))
+
+
+def readFile(*path):
+    try:
+        f = open(os.path.join(settings.FILES, *path))
+    except:
+        f = urllib.urlopen(settings.FILES + "download/" + reduce(urljoin, path))
     return f.read()
\ No newline at end of file