diff --git a/src/dlangui/core/events.d b/src/dlangui/core/events.d index 5c3358ab..1f2ba17e 100644 --- a/src/dlangui/core/events.d +++ b/src/dlangui/core/events.d @@ -24,7 +24,7 @@ private import dlangui.widgets.widget; private import std.string; private import std.conv; -private import std.utf; +private import std.utf : toUTF32; /// Keyboard accelerator (key + modifiers) struct Accelerator { diff --git a/src/dlangui/core/files.d b/src/dlangui/core/files.d index 930b7463..63a77dd8 100644 --- a/src/dlangui/core/files.d +++ b/src/dlangui/core/files.d @@ -425,7 +425,7 @@ RootEntry[] getBookmarkPaths() nothrow import core.stdc.wchar_ : wcslen; import std.exception : enforce; - import std.utf : toUTF8, toUTF16z; + import std.utf : toUTF16z; import std.file : dirEntries, SpanMode; import std.string : endsWith; diff --git a/src/dlangui/core/i18n.d b/src/dlangui/core/i18n.d index e5e45759..3e5926da 100644 --- a/src/dlangui/core/i18n.d +++ b/src/dlangui/core/i18n.d @@ -65,7 +65,7 @@ import dlangui.core.logger; import dlangui.core.files; import dlangui.graphics.resources; private import dlangui.core.linestream; -private import std.utf; +private import std.utf : toUTF32; private import std.algorithm; private import std.string; private import std.file; diff --git a/src/dlangui/core/types.d b/src/dlangui/core/types.d index 926174ae..3d9f36f3 100644 --- a/src/dlangui/core/types.d +++ b/src/dlangui/core/types.d @@ -519,3 +519,15 @@ uint parseHexDigit(T)(T ch) pure nothrow { return ch - 'A' + 10; return uint.max; } + +/// replacement of deprecated std.utf.toUTF8 +string toUTF8(dstring str) { + import std.utf : encode, codeLength, byUTF; + char[] buf; + buf.length = codeLength!char(str); + int pos = 0; + foreach(ch; str.byUTF!char) { + buf.ptr[pos++] = ch; + } + return cast(string)buf; +} diff --git a/src/dlangui/dialogs/filedlg.d b/src/dlangui/dialogs/filedlg.d index 30750356..ecbc7bf9 100644 --- a/src/dlangui/dialogs/filedlg.d +++ b/src/dlangui/dialogs/filedlg.d @@ -41,7 +41,7 @@ import dlangui.dialogs.dialog; private import std.algorithm; private import std.file; private import std.path; -private import std.utf; +private import std.utf : toUTF32; private import std.string; private import std.array; private import std.conv : to; diff --git a/src/dlangui/dialogs/settingsdialog.d b/src/dlangui/dialogs/settingsdialog.d index 9da1d24c..b1be921d 100644 --- a/src/dlangui/dialogs/settingsdialog.d +++ b/src/dlangui/dialogs/settingsdialog.d @@ -19,7 +19,7 @@ import dlangui.dialogs.dialog; private import std.algorithm; private import std.file; private import std.path; -private import std.utf; +private import std.utf : toUTF32; private import std.conv : to; private import std.array : split; diff --git a/src/dlangui/dml/parser.d b/src/dlangui/dml/parser.d index 26eb29ad..0207af8e 100644 --- a/src/dlangui/dml/parser.d +++ b/src/dlangui/dml/parser.d @@ -31,7 +31,7 @@ import dlangui.widgets.widget; import dlangui.widgets.metadata; import std.conv : to; import std.algorithm : equal, min, max; -import std.utf : toUTF32, toUTF8; +import std.utf : toUTF32; import std.array : join; public import dlangui.dml.annotations; public import dlangui.dml.tokenizer; diff --git a/src/dlangui/dml/tokenizer.d b/src/dlangui/dml/tokenizer.d index 52887a75..5a7e73e7 100644 --- a/src/dlangui/dml/tokenizer.d +++ b/src/dlangui/dml/tokenizer.d @@ -4,7 +4,7 @@ import dlangui.core.types; import dlangui.core.linestream; import std.conv : to; -import std.utf : toUTF32, toUTF8; +import std.utf : toUTF32; import std.algorithm : equal, min, max; enum TokenType : ushort { @@ -450,7 +450,7 @@ class Tokenizer { } string getContextSource() { - string s = toUTF8(_lineText); + string s = toUTF8(cast(dstring)_lineText); if (_pos == 0) return " near `^^^" ~ s[0..min($,30)] ~ "`"; if (_pos >= _len) diff --git a/src/dlangui/package.d b/src/dlangui/package.d index 6e55264a..01cff0a8 100644 --- a/src/dlangui/package.d +++ b/src/dlangui/package.d @@ -83,5 +83,5 @@ public { // some useful imports from Phobos import std.algorithm : equal; import std.conv : to; - import std.utf : toUTF32, toUTF8; + import std.utf : toUTF32; }