Module Name: src
Committed By: matt
Date: Wed Jul 25 01:07:49 UTC 2012
Modified Files:
src/sbin/gpt: gpt.c
Log Message:
Make sure utf-16 strings are written as little endian words.
To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sbin/gpt/gpt.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sbin/gpt/gpt.c
diff -u src/sbin/gpt/gpt.c:1.15 src/sbin/gpt/gpt.c:1.16
--- src/sbin/gpt/gpt.c:1.15 Sat Aug 27 17:38:16 2011
+++ src/sbin/gpt/gpt.c Wed Jul 25 01:07:49 2012
@@ -31,7 +31,7 @@
__FBSDID("$FreeBSD: src/sbin/gpt/gpt.c,v 1.16 2006/07/07 02:44:23 marcel Exp $");
#endif
#ifdef __RCSID
-__RCSID("$NetBSD: gpt.c,v 1.15 2011/08/27 17:38:16 joerg Exp $");
+__RCSID("$NetBSD: gpt.c,v 1.16 2012/07/25 01:07:49 matt Exp $");
#endif
#include <sys/param.h>
@@ -225,12 +225,14 @@ utf8_to_utf16(const uint8_t *s8, uint16_
}
if (utfbytes == 0) {
if (utfchar >= 0x10000 && s16idx + 2 >= s16len)
- utfchar = 0xfffd;
+ utfchar = htole16(0xfffd);
if (utfchar >= 0x10000) {
- s16[s16idx++] = 0xd800 | ((utfchar>>10)-0x40);
- s16[s16idx++] = 0xdc00 | (utfchar & 0x3ff);
+ s16[s16idx++] =
+ htole16(0xd800 | ((utfchar>>10)-0x40));
+ s16[s16idx++] =
+ htole16(0xdc00 | (utfchar & 0x3ff));
} else
- s16[s16idx++] = utfchar;
+ s16[s16idx++] = htole16(utfchar);
if (s16idx == s16len) {
s16[--s16idx] = 0;
return;