152 |
152 |
153 Returns a 2-tuple of ``(text, validatehash)`` where ``text`` is the |
153 Returns a 2-tuple of ``(text, validatehash)`` where ``text`` is the |
154 processed text and ``validatehash`` is a bool indicating whether the |
154 processed text and ``validatehash`` is a bool indicating whether the |
155 returned text should be checked for hash integrity. |
155 returned text should be checked for hash integrity. |
156 """ |
156 """ |
157 return self._processflagsfunc(text, flags, 'read', raw=True)[1] |
157 return self._processflagsfunc(text, flags, 'raw')[1] |
158 |
158 |
159 def _processflagsfunc(self, text, flags, operation, raw=False): |
159 def _processflagsfunc(self, text, flags, operation): |
160 # fast path: no flag processors will run |
160 # fast path: no flag processors will run |
161 if flags == 0: |
161 if flags == 0: |
162 return text, True |
162 return text, True |
163 if not operation in ('read', 'write'): |
163 if operation not in ('read', 'write', 'raw'): |
164 raise error.ProgrammingError(_("invalid '%s' operation") % |
164 raise error.ProgrammingError(_("invalid '%s' operation") % |
165 operation) |
165 operation) |
166 # Check all flags are known. |
166 # Check all flags are known. |
167 if flags & ~REVIDX_KNOWN_FLAGS: |
167 if flags & ~REVIDX_KNOWN_FLAGS: |
168 raise self._flagserrorclass(_("incompatible revision flag '%#x'") % |
168 raise self._flagserrorclass(_("incompatible revision flag '%#x'") % |
186 |
186 |
187 processor = self._flagprocessors[flag] |
187 processor = self._flagprocessors[flag] |
188 if processor is not None: |
188 if processor is not None: |
189 readtransform, writetransform, rawtransform = processor |
189 readtransform, writetransform, rawtransform = processor |
190 |
190 |
191 if raw: |
191 if operation == 'raw': |
192 vhash = rawtransform(self, text) |
192 vhash = rawtransform(self, text) |
193 elif operation == 'read': |
193 elif operation == 'read': |
194 text, vhash = readtransform(self, text) |
194 text, vhash = readtransform(self, text) |
195 else: # write operation |
195 else: # write operation |
196 text, vhash = writetransform(self, text) |
196 text, vhash = writetransform(self, text) |