diff --git a/source/dub/internal/sdlang/lexer.d b/source/dub/internal/sdlang/lexer.d index 9b65453..4cc754b 100644 --- a/source/dub/internal/sdlang/lexer.d +++ b/source/dub/internal/sdlang/lexer.d @@ -13,7 +13,6 @@ import std.conv; import std.datetime; import std.file; -import std.stream : ByteOrderMarks, BOM; import std.traits; import std.typecons; import std.uni; @@ -1268,7 +1267,7 @@ try { - auto timezone = TimeZone.getTimeZone(timezoneStr); + auto timezone = PosixTimeZone.getTimeZone(timezoneStr); if(timezone) { static if (__VERSION__ >= 2067) auto fsecs = dateTimeFrac.fracSecs; else auto fsecs = FracSec.from!"hnsecs"(dateTimeFrac.fracSecs.total!"hnsecs"); diff --git a/source/dub/internal/sdlang/util.d b/source/dub/internal/sdlang/util.d index 7b9f9c8..d73b221 100644 --- a/source/dub/internal/sdlang/util.d +++ b/source/dub/internal/sdlang/util.d @@ -85,3 +85,21 @@ return "{unknown}"; } + +enum BOM { + UTF8, /// UTF-8 + UTF16LE, /// UTF-16 (little-endian) + UTF16BE, /// UTF-16 (big-endian) + UTF32LE, /// UTF-32 (little-endian) + UTF32BE, /// UTF-32 (big-endian) +} + +enum NBOM = __traits(allMembers, BOM).length; +immutable ubyte[][NBOM] ByteOrderMarks = +[ + [0xEF, 0xBB, 0xBF], //UTF8 + [0xFF, 0xFE], //UTF16LE + [0xFE, 0xFF], //UTF16BE + [0xFF, 0xFE, 0x00, 0x00], //UTF32LE + [0x00, 0x00, 0xFE, 0xFF] //UTF32BE +];