hgweb: use lrwxrwxrwx as the permissions of a symlink
authorAlexis S. L. Carvalho <alexis@cecm.usp.br>
Tue, 03 Jul 2007 03:06:40 -0300
changeset 4745 e21a0e12ff10
parent 4744 44e17f5029d0
child 4746 62c56d8f368b
child 4782 37e11c768db9
hgweb: use lrwxrwxrwx as the permissions of a symlink
mercurial/hgweb/hgweb_mod.py
mercurial/templater.py
--- a/mercurial/hgweb/hgweb_mod.py	Tue Jul 03 03:06:40 2007 -0300
+++ b/mercurial/hgweb/hgweb_mod.py	Tue Jul 03 03:06:40 2007 -0300
@@ -404,7 +404,7 @@
                      parent=self.siblings(fctx.parents()),
                      child=self.siblings(fctx.children()),
                      rename=self.renamelink(fl, n),
-                     permissions=fctx.manifest().execf(f))
+                     permissions=fctx.manifest().flags(f))
 
     def fileannotate(self, fctx):
         f = fctx.path()
@@ -440,7 +440,7 @@
                      rename=self.renamelink(fl, n),
                      parent=self.siblings(fctx.parents()),
                      child=self.siblings(fctx.children()),
-                     permissions=fctx.manifest().execf(f))
+                     permissions=fctx.manifest().flags(f))
 
     def manifest(self, ctx, path):
         mf = ctx.manifest()
@@ -477,7 +477,7 @@
                        "parity": parity.next(),
                        "basename": f,
                        "size": ctx.filectx(full).size(),
-                       "permissions": mf.execf(full)}
+                       "permissions": mf.flags(full)}
 
         def dirlist(**map):
             fl = files.keys()
--- a/mercurial/templater.py	Tue Jul 03 03:06:40 2007 -0300
+++ b/mercurial/templater.py	Tue Jul 03 03:06:40 2007 -0300
@@ -245,6 +245,13 @@
                 yield '\n'
     return "".join(indenter())
 
+def permissions(flags):
+    if "l" in flags:
+        return "lrwxrwxrwx"
+    if "x" in flags:
+        return "-rwxr-xr-x"
+    return "-rw-r--r--"
+
 common_filters = {
     "addbreaks": nl2br,
     "basename": os.path.basename,
@@ -260,7 +267,7 @@
     "hgdate": hgdate,
     "isodate": isodate,
     "obfuscate": obfuscate,
-    "permissions": lambda x: x and "-rwxr-xr-x" or "-rw-r--r--",
+    "permissions": permissions,
     "person": person,
     "rfc822date": lambda x: util.datestr(x, "%a, %d %b %Y %H:%M:%S"),
     "short": lambda x: x[:12],