From 29e2aa696d5db7705c498738a16525cbcd0b0ee3 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Fri, 18 Dec 2015 10:23:09 +0200 Subject: [PATCH] Test UTF-32LE before UTF-16LE since UTF-16LE BOM is a prefix of UTF-32LE BOM. --- PC/launcher.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/PC/launcher.c b/PC/launcher.c index e414237feab..121aa5bfabe 100644 --- a/PC/launcher.c +++ b/PC/launcher.c @@ -965,10 +965,12 @@ typedef struct { */ static BOM BOMs[] = { { 3, { 0xEF, 0xBB, 0xBF }, CP_UTF8 }, /* UTF-8 - keep first */ - { 2, { 0xFF, 0xFE }, CP_UTF16LE }, /* UTF-16LE */ - { 2, { 0xFE, 0xFF }, CP_UTF16BE }, /* UTF-16BE */ + /* Test UTF-32LE before UTF-16LE since UTF-16LE BOM is a prefix + * of UTF-32LE BOM. */ { 4, { 0xFF, 0xFE, 0x00, 0x00 }, CP_UTF32LE }, /* UTF-32LE */ { 4, { 0x00, 0x00, 0xFE, 0xFF }, CP_UTF32BE }, /* UTF-32BE */ + { 2, { 0xFF, 0xFE }, CP_UTF16LE }, /* UTF-16LE */ + { 2, { 0xFE, 0xFF }, CP_UTF16BE }, /* UTF-16BE */ { 0 } /* sentinel */ };