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