Mercurial > hg
comparison hgext/win32text.py @ 5966:11af38a592ae
Register data filters in a localrepo instead of util
- Changing data filters implementation is easier, adddatafilter() can rewrap
filter after inspecting their prototype
- Custom data filters really belongs to localrepo, mixing them with generic
wrapper like "pipefilter" or "tempfilter" looks wrong.
- util.filtertable should not be accessed from extensions
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Mon, 28 Jan 2008 21:39:47 +0100 |
parents | a5fe27b83a4a |
children | f8ad3b76e923 |
comparison
equal
deleted
inserted
replaced
5965:abe373e16fe6 | 5966:11af38a592ae |
---|---|
60 def cleverencode(s, cmd): | 60 def cleverencode(s, cmd): |
61 if clevertest(s, cmd): | 61 if clevertest(s, cmd): |
62 return dumbencode(s, cmd) | 62 return dumbencode(s, cmd) |
63 return s | 63 return s |
64 | 64 |
65 util.filtertable.update({ | 65 _filters = { |
66 'dumbdecode:': dumbdecode, | 66 'dumbdecode:': dumbdecode, |
67 'dumbencode:': dumbencode, | 67 'dumbencode:': dumbencode, |
68 'cleverdecode:': cleverdecode, | 68 'cleverdecode:': cleverdecode, |
69 'cleverencode:': cleverencode, | 69 'cleverencode:': cleverencode, |
70 }) | 70 } |
71 | 71 |
72 def forbidcrlf(ui, repo, hooktype, node, **kwargs): | 72 def forbidcrlf(ui, repo, hooktype, node, **kwargs): |
73 halt = False | 73 halt = False |
74 for rev in xrange(repo.changelog.rev(bin(node)), repo.changelog.count()): | 74 for rev in xrange(repo.changelog.rev(bin(node)), repo.changelog.count()): |
75 c = repo.changectx(rev) | 75 c = repo.changectx(rev) |
97 '[encode]\n' | 97 '[encode]\n' |
98 '** = cleverencode:\n' | 98 '** = cleverencode:\n' |
99 '[decode]\n' | 99 '[decode]\n' |
100 '** = cleverdecode:\n')) | 100 '** = cleverdecode:\n')) |
101 return halt | 101 return halt |
102 | |
103 def reposetup(ui, repo): | |
104 if not repo.local(): | |
105 return | |
106 for name, fn in _filters.iteritems(): | |
107 repo.adddatafilter(name, fn) | |
108 |