comparison mercurial/encoding.py @ 15769:afdf4f5bac61

encoding: use hint markup for "please check your locale settings" This will also make test-encoding.t pass on windows. The test would hit some other code path that already used hint markup.
author Mads Kiilerich <mads@kiilerich.com>
date Mon, 26 Dec 2011 15:01:06 +0100
parents 2ebe3d0ce91d
children 84c58da3a1f8
comparison
equal deleted inserted replaced
15768:cdf9c43445df 15769:afdf4f5bac61
103 return localstr(s, r) 103 return localstr(s, r)
104 else: 104 else:
105 return localstr(u.encode('UTF-8'), r) 105 return localstr(u.encode('UTF-8'), r)
106 106
107 except LookupError, k: 107 except LookupError, k:
108 raise error.Abort("%s, please check your locale settings" % k) 108 raise error.Abort(k, hint="please check your locale settings")
109 except UnicodeDecodeError: 109 except UnicodeDecodeError:
110 pass 110 pass
111 u = s.decode("utf-8", "replace") # last ditch 111 u = s.decode("utf-8", "replace") # last ditch
112 return u.encode(encoding, "replace") # can't round-trip 112 return u.encode(encoding, "replace") # can't round-trip
113 113
130 return s.decode(encoding, encodingmode).encode("utf-8") 130 return s.decode(encoding, encodingmode).encode("utf-8")
131 except UnicodeDecodeError, inst: 131 except UnicodeDecodeError, inst:
132 sub = s[max(0, inst.start - 10):inst.start + 10] 132 sub = s[max(0, inst.start - 10):inst.start + 10]
133 raise error.Abort("decoding near '%s': %s!" % (sub, inst)) 133 raise error.Abort("decoding near '%s': %s!" % (sub, inst))
134 except LookupError, k: 134 except LookupError, k:
135 raise error.Abort("%s, please check your locale settings" % k) 135 raise error.Abort(k, hint="please check your locale settings")
136 136
137 # How to treat ambiguous-width characters. Set to 'wide' to treat as wide. 137 # How to treat ambiguous-width characters. Set to 'wide' to treat as wide.
138 wide = (os.environ.get("HGENCODINGAMBIGUOUS", "narrow") == "wide" 138 wide = (os.environ.get("HGENCODINGAMBIGUOUS", "narrow") == "wide"
139 and "WFA" or "WF") 139 and "WFA" or "WF")
140 140