From 799e6d2b1ad2ebb5154af8a90adedd216cd7440d Mon Sep 17 00:00:00 2001 From: kostas Date: Sun, 13 Jan 2013 11:46:47 +0000 Subject: [PATCH] Fossil output is now treated as utf-8 on Windows FossilOrigin-Name: 9c28f79677e9fcd17ba7927b07bdf1403d1d5715 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/MainWindow.cpp | 15 ++++++++++++++- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/manifest b/manifest index a190f5e..5bff22e 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C -\sReplaced\sthe\sQWebView\swith\sa\scustom\swidget\n-\sAdded\ssupport\sform\sBack\sand\sForward\smouse\sbuttons\sto\swebview\n -D 2013-01-13T10:36:07.204 +C Fossil\soutput\sis\snow\streated\sas\sutf-8\son\sWindows\n +D 2013-01-13T11:46:47.297 F dist/arch/PKGBUILD bf020b73b610f4c14e38feba027fe8f45b4fbc5c F dist/win/fuel.iss ef3558dbba409eb194938b930377fc9ee27d319e F doc/Building.txt 7c0f1060d4a08ed330058d4a3a68905c05228381 @@ -186,7 +186,7 @@ F src/FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2 F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261 -F src/MainWindow.cpp 530a35b4864c85de065252b912aee80ecf9c8de9 +F src/MainWindow.cpp f00d55c004f91ae1f514b6e4213ae43649553aa2 F src/MainWindow.h 9c70fd9db3bbd5f96132563819b50d21517aa740 F src/SettingsDialog.cpp 96650f3b7c24cb18bcf18def9860642bc58b9251 F src/SettingsDialog.h 01c1f876c64f750ba8820a0d745e377acabe4921 @@ -200,7 +200,7 @@ F ui/CommitDialog.ui 6200f6cabdcf40a20812e811be28e0793f82516f F ui/FileActionDialog.ui 89bb4dc2d0b8adcd41adcb11ec65f2028a09a12d F ui/MainWindow.ui 624844304042b74c462df27793a433183049f43f F ui/SettingsDialog.ui 55aefad7145c40d936c43759789d1b50e361b020 -P 4914092dd81da4678e5aa76e8c8a15bc7cb1e146 -R 6e79369ab4ba4e452578109856e7a09e +P c2c1b42f9604c19f48e4811c4eaf44d63aee60fe +R 4afe2419b7a5acf8ce65f69c04d56780 U kostas -Z 6275ed8dd52eed9456fd7db503e12414 +Z 8ae95f27e0d9cc7f19df4e88cf8777ad diff --git a/manifest.uuid b/manifest.uuid index 697191c..ba88b7e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -c2c1b42f9604c19f48e4811c4eaf44d63aee60fe \ No newline at end of file +9c28f79677e9fcd17ba7927b07bdf1403d1d5715 \ No newline at end of file diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 3598f69..77325d4 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include "CommitDialog.h" #include "FileActionDialog.h" #include "CloneDialog.h" @@ -1097,6 +1098,16 @@ bool MainWindow::runFossilRaw(const QStringList &args, QStringList *output, int fossilAbort = false; QString buffer; +#ifdef Q_WS_WIN32 + QTextCodec *codec = QTextCodec::codecForName("UTF-8"); +#else + QTextCodec *codec = QTextCodec::codecForLocale(); +#endif + + Q_ASSERT(codec); + QTextDecoder *decoder = codec->makeDecoder(); + Q_ASSERT(decoder); + while(true) { QProcess::ProcessState state = process.state(); @@ -1124,7 +1135,7 @@ bool MainWindow::runFossilRaw(const QStringList &args, QStringList *output, int qDebug() << input; #endif - buffer += input; + buffer += decoder->toUnicode(input); QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents); @@ -1238,6 +1249,8 @@ bool MainWindow::runFossilRaw(const QStringList &args, QStringList *output, int } } + delete decoder; + // Must be finished by now Q_ASSERT(process.state()==QProcess::NotRunning);