]> git.sven.stormbind.net Git - sven/exfat-utils.git/blobdiff - debian/patches/utf16-fix
Add debian/patches/utf16-fix - fix handling of characters beyond BMP. Thanks to Vladi...
[sven/exfat-utils.git] / debian / patches / utf16-fix
diff --git a/debian/patches/utf16-fix b/debian/patches/utf16-fix
new file mode 100644 (file)
index 0000000..10bce32
--- /dev/null
@@ -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;