# HG changeset patch # User Alexis S. L. Carvalho # Date 1183442800 10800 # Node ID e21a0e12ff1031ed74980e9ae8e8eaf5efe8cc06 # Parent 44e17f5029d05bb60cacd37ab6a6f06574c44b1d hgweb: use lrwxrwxrwx as the permissions of a symlink diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py --- 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() diff --git a/mercurial/templater.py b/mercurial/templater.py --- 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],