From: Sven Hoexter <sven@timegate.de>
Date: Mon, 21 May 2012 18:26:17 +0000 (+0200)
Subject: Add debian/patches/utf16-fix - fix handling of characters beyond BMP. Thanks to Vladi... 
X-Git-Tag: debian/0.9.7-2~4
X-Git-Url: http://git.sven.stormbind.net/?p=sven%2Fexfat-utils.git;a=commitdiff_plain;h=8bf2db5fea62e7a86030ce5affca82db6b58625f

Add debian/patches/utf16-fix - fix handling of characters beyond BMP. Thanks to Vladimir Serbinenko <phcoder@gmail.com>.
---

diff --git a/debian/changelog b/debian/changelog
index 47bc2ed..33eedfc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,8 @@ exfat-utils (0.9.7-2) UNRELEASED; urgency=low
     SConstruct file.
   * Add debian/patches/honor-cppflags - scons should use exported
     CPPFLAGS.
+  * Add debian/patches/utf16-fix - fix handling of characters beyond BMP.
+    Thanks to Vladimir Serbinenko <phcoder@gmail.com>.
 
  -- Sven Hoexter <hoexter@debian.org>  Thu, 17 May 2012 13:50:03 +0200
 
diff --git a/debian/patches/series b/debian/patches/series
index 06c25e1..e3ec1be 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 honor-cppflags
+utf16-fix
diff --git a/debian/patches/utf16-fix b/debian/patches/utf16-fix
new file mode 100644
index 0000000..10bce32
--- /dev/null
+++ b/debian/patches/utf16-fix
@@ -0,0 +1,22 @@
+Applied upstream in r283.
+http://code.google.com/p/exfat/source/detail?r=283
+Closes Debian bug #672898.
+Thanks to Vladimir Serbinenko <phcoder@gmail.com>.
+--- a/libexfat/utf.c
++++ b/libexfat/utf.c
+@@ -89,6 +89,7 @@ static const le16_t* utf16_to_wchar(cons
+ 			return NULL;
+ 		*wc = ((wchar_t) (le16_to_cpu(input[0]) & 0x3ff) << 10);
+ 		*wc |= (le16_to_cpu(input[1]) & 0x3ff);
++		*wc += 0x10000;
+ 		return input + 2;
+ 	}
+ 	else
+@@ -186,6 +187,7 @@ static le16_t* wchar_to_utf16(le16_t* ou
+ 	}
+ 	if (outsize < 2)
+ 		return NULL;
++	wc -= 0x10000;
+ 	output[0] = cpu_to_le16(0xd800 | ((wc >> 10) & 0x3ff));
+ 	output[1] = cpu_to_le16(0xdc00 | (wc & 0x3ff));
+ 	return output + 2;