aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-07-04 08:18:23 +0200
committerhjk <hjk@qt.io>2023-07-04 07:05:43 +0000
commit418482b3e299840254c8d028597387a2fe4c7aac (patch)
tree7bd9d3a46dc4999201a740dc814c84943ae66101
parent1d1eb9c3a219223d44a93d4cf71f4a6cd0af8cbb (diff)
FakeVim: Assume UTF-8 for source also on Windows by default
... but make it configurable. Fixes: QTCREATORBUG-29320 Change-Id: Ib377c78e51afb7d06167c66306250a281aa9279c Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--src/plugins/fakevim/fakevimactions.cpp4
-rw-r--r--src/plugins/fakevim/fakevimactions.h1
-rw-r--r--src/plugins/fakevim/fakevimhandler.cpp3
3 files changed, 6 insertions, 2 deletions
diff --git a/src/plugins/fakevim/fakevimactions.cpp b/src/plugins/fakevim/fakevimactions.cpp
index de1f06f913..a6dc84b9b2 100644
--- a/src/plugins/fakevim/fakevimactions.cpp
+++ b/src/plugins/fakevim/fakevimactions.cpp
@@ -94,6 +94,7 @@ FakeVimSettings::FakeVimSettings()
setup(&showCmd, true, "ShowCmd", "sc", Tr::tr("Show partial command"));
setup(&relativeNumber, false, "RelativeNumber", "rnu", Tr::tr("Show line numbers relative to cursor"));
setup(&blinkingCursor, false, "BlinkingCursor", "bc", Tr::tr("Blinking cursor"));
+ setup(&systemEncoding, false, "SystemEncoding", {}, Tr::tr("Use system encoding for :source"));
setup(&scrollOff, 0, "ScrollOff", "so", Tr::tr("Scroll offset:"));
setup(&backspace, "indent,eol,start",
"Backspace", "bs", Tr::tr("Backspace:"));
@@ -149,7 +150,8 @@ FakeVimSettings::FakeVimSettings()
showCmd,
startOfLine,
passKeys,
- blinkingCursor
+ blinkingCursor,
+ HostOsInfo::isWindowsHost() ? LayoutItem(systemEncoding) : empty
},
Column {
incSearch,
diff --git a/src/plugins/fakevim/fakevimactions.h b/src/plugins/fakevim/fakevimactions.h
index eea53f50c1..94ba02a7f3 100644
--- a/src/plugins/fakevim/fakevimactions.h
+++ b/src/plugins/fakevim/fakevimactions.h
@@ -151,6 +151,7 @@ public:
FvBoolAspect emulateSurround;
FvBoolAspect blinkingCursor;
+ FvBoolAspect systemEncoding;
private:
void setup(FvBaseAspect *aspect, const QVariant &value,
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index bb3586b632..8a9adac441 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -6625,7 +6625,8 @@ bool FakeVimHandler::Private::handleExSourceCommand(const ExCommand &cmd)
} else if (!line.isEmpty() && !inFunction) {
//qDebug() << "EXECUTING: " << line;
ExCommand cmd;
- QString commandLine = QString::fromLocal8Bit(line);
+ QString commandLine = s.systemEncoding() ? QString::fromLocal8Bit(line)
+ : QString::fromUtf8(line);
while (parseExCommand(&commandLine, &cmd)) {
if (!handleExCommandHelper(cmd))
break;