mercurial/encoding.py
branchstable
changeset 15672 2ebe3d0ce91d
parent 15143 16c129b0f465
child 15769 afdf4f5bac61
--- a/mercurial/encoding.py	Fri Dec 16 21:09:40 2011 +0900
+++ b/mercurial/encoding.py	Fri Dec 16 21:09:41 2011 +0900
@@ -171,3 +171,22 @@
         return lu.encode(encoding)
     except UnicodeError:
         return s.lower() # we don't know how to fold this except in ASCII
+    except LookupError, k:
+        raise error.Abort(k, hint="please check your locale settings")
+
+def upper(s):
+    "best-effort encoding-aware case-folding of local string s"
+    try:
+        if isinstance(s, localstr):
+            u = s._utf8.decode("utf-8")
+        else:
+            u = s.decode(encoding, encodingmode)
+
+        uu = u.upper()
+        if u == uu:
+            return s # preserve localstring
+        return uu.encode(encoding)
+    except UnicodeError:
+        return s.upper() # we don't know how to fold this except in ASCII
+    except LookupError, k:
+        raise error.Abort(k, hint="please check your locale settings")