Skip to content

Commit 9ce2a4b

Browse files
yarikopticByron
authored andcommitted
BF: pass original exception into replace_surrogate_encode
Fixes my incorrect fix in gitpython-developers#598
1 parent 9640213 commit 9ce2a4b

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

git/compat.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ def surrogateescape_handler(exc):
177177
# exception anyway after this function is called, even though I think
178178
# it's doing what it should. It seems that the strict encoder is called
179179
# to encode the unicode string that this function returns ...
180-
decoded = replace_surrogate_encode(mystring)
180+
decoded = replace_surrogate_encode(mystring, exc)
181181
else:
182182
raise exc
183183
except NotASurrogateError:
@@ -189,7 +189,7 @@ class NotASurrogateError(Exception):
189189
pass
190190

191191

192-
def replace_surrogate_encode(mystring):
192+
def replace_surrogate_encode(mystring, exc):
193193
"""
194194
Returns a (unicode) string, not the more logical bytes, because the codecs
195195
register_error functionality expects this.
@@ -204,7 +204,7 @@ def replace_surrogate_encode(mystring):
204204
# The following magic comes from Py3.3's Python/codecs.c file:
205205
if not 0xD800 <= code <= 0xDCFF:
206206
# Not a surrogate. Fail with the original exception.
207-
raise NotASurrogateError
207+
raise exc
208208
# mybytes = [0xe0 | (code >> 12),
209209
# 0x80 | ((code >> 6) & 0x3f),
210210
# 0x80 | (code & 0x3f)]

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy