Mercurial > hg
view mercurial/osutil.py @ 6174:434139080ed4
Permit XML entities to be escaped in template output.
Useful for creating XML documents directly from Hg logging. Can also be used for
HTML. For use in content, will escape '&', '<', and for completeness '>'
(although it is not strictly necessary). For use in attributes, will also escape
' and ". Will also replace nonprinting (ASCII) control characters with spaces,
since these are illegal in XML.
author | Jesse Glick <jesse.glick@sun.com> |
---|---|
date | Mon, 28 Jan 2008 22:19:12 -0500 |
parents | 5105b119edd2 |
children | 0d513661d6c2 |
line wrap: on
line source
import os, stat def _mode_to_kind(mode): if stat.S_ISREG(mode): return stat.S_IFREG if stat.S_ISDIR(mode): return stat.S_IFDIR if stat.S_ISLNK(mode): return stat.S_IFLNK if stat.S_ISBLK(mode): return stat.S_IFBLK if stat.S_ISCHR(mode): return stat.S_IFCHR if stat.S_ISFIFO(mode): return stat.S_IFIFO if stat.S_ISSOCK(mode): return stat.S_IFSOCK return mode def listdir(path, stat=False): '''listdir(path, stat=False) -> list_of_tuples Return a sorted list containing information about the entries in the directory. If stat is True, each element is a 3-tuple: (name, type, stat object) Otherwise, each element is a 2-tuple: (name, type) ''' result = [] prefix = path + os.sep names = os.listdir(path) names.sort() for fn in names: st = os.lstat(prefix + fn) if stat: result.append((fn, _mode_to_kind(st.st_mode), st)) else: result.append((fn, _mode_to_kind(st.st_mode))) return result