From 4a4f3993e73591702588eadcc735c5e807c57dc7 Mon Sep 17 00:00:00 2001 From: Jan Boon Date: Sat, 6 Apr 2024 00:59:34 +0800 Subject: [PATCH] move include, reject bom as well --- common/common.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/common/common.cpp b/common/common.cpp index 5c4b6f1e9..8e9b57d70 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #if defined(__APPLE__) && defined(__MACH__) #include @@ -27,7 +28,6 @@ #ifndef NOMINMAX # define NOMINMAX #endif -#include #include #include #include @@ -1528,6 +1528,7 @@ bool validate_file_name(const std::string & filename) { // - Unicode equivalents of illegal characters // - UTF-16 surrogate pairs // - UTF-8 replacement character + // - Byte order mark (BOM) // - Illegal characters: / \ : * ? " < > | for (char32_t c : filename_utf32) { if (c <= 0x1F // Control characters (C0) @@ -1538,6 +1539,7 @@ bool validate_file_name(const std::string & filename) { || c == 0x2216 // Set Minus (backslash equivalent) || (c >= 0xD800 && c <= 0xDFFF) // UTF-16 surrogate pairs || c == 0xFFFD // Replacement Character (UTF-8) + || c == 0xFEFF // Byte Order Mark (BOM) || c == '/' || c == '\\' || c == ':' || c == '*' // Illegal characters || c == '?' || c == '"' || c == '<' || c == '>' || c == '|') { return false;