changeset 4778:e21a0e12ff10

hgweb: use lrwxrwxrwx as the permissions of a symlink
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Tue, 03 Jul 2007 03:06:40 -0300
parents 44e17f5029d0
children 37e11c768db9 62c56d8f368b
files mercurial/hgweb/hgweb_mod.py mercurial/templater.py
diffstat 2 files changed, 11 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/hgweb/hgweb_mod.py
+++ b/mercurial/hgweb/hgweb_mod.py
@@ -404,7 +404,7 @@ class hgweb(object):
                      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 @@ class hgweb(object):
                      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 @@ class hgweb(object):
                        "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
+++ b/mercurial/templater.py
@@ -245,6 +245,13 @@ def indent(text, prefix):
                 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 @@ common_filters = {
     "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],