Fossil output is now treated as utf-8 on Windows

FossilOrigin-Name: 9c28f79677e9fcd17ba7927b07bdf1403d1d5715
This commit is contained in:
kostas 2013-01-13 11:46:47 +00:00
parent 6f8e7a622a
commit 799e6d2b1a
3 changed files with 21 additions and 8 deletions

View File

@ -1,5 +1,5 @@
C -\sReplaced\sthe\sQWebView\swith\sa\scustom\swidget\n-\sAdded\ssupport\sform\sBack\sand\sForward\smouse\sbuttons\sto\swebview\n C Fossil\soutput\sis\snow\streated\sas\sutf-8\son\sWindows\n
D 2013-01-13T10:36:07.204 D 2013-01-13T11:46:47.297
F dist/arch/PKGBUILD bf020b73b610f4c14e38feba027fe8f45b4fbc5c F dist/arch/PKGBUILD bf020b73b610f4c14e38feba027fe8f45b4fbc5c
F dist/win/fuel.iss ef3558dbba409eb194938b930377fc9ee27d319e F dist/win/fuel.iss ef3558dbba409eb194938b930377fc9ee27d319e
F doc/Building.txt 7c0f1060d4a08ed330058d4a3a68905c05228381 F doc/Building.txt 7c0f1060d4a08ed330058d4a3a68905c05228381
@ -186,7 +186,7 @@ F src/FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2
F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df
F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c
F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261 F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261
F src/MainWindow.cpp 530a35b4864c85de065252b912aee80ecf9c8de9 F src/MainWindow.cpp f00d55c004f91ae1f514b6e4213ae43649553aa2
F src/MainWindow.h 9c70fd9db3bbd5f96132563819b50d21517aa740 F src/MainWindow.h 9c70fd9db3bbd5f96132563819b50d21517aa740
F src/SettingsDialog.cpp 96650f3b7c24cb18bcf18def9860642bc58b9251 F src/SettingsDialog.cpp 96650f3b7c24cb18bcf18def9860642bc58b9251
F src/SettingsDialog.h 01c1f876c64f750ba8820a0d745e377acabe4921 F src/SettingsDialog.h 01c1f876c64f750ba8820a0d745e377acabe4921
@ -200,7 +200,7 @@ F ui/CommitDialog.ui 6200f6cabdcf40a20812e811be28e0793f82516f
F ui/FileActionDialog.ui 89bb4dc2d0b8adcd41adcb11ec65f2028a09a12d F ui/FileActionDialog.ui 89bb4dc2d0b8adcd41adcb11ec65f2028a09a12d
F ui/MainWindow.ui 624844304042b74c462df27793a433183049f43f F ui/MainWindow.ui 624844304042b74c462df27793a433183049f43f
F ui/SettingsDialog.ui 55aefad7145c40d936c43759789d1b50e361b020 F ui/SettingsDialog.ui 55aefad7145c40d936c43759789d1b50e361b020
P 4914092dd81da4678e5aa76e8c8a15bc7cb1e146 P c2c1b42f9604c19f48e4811c4eaf44d63aee60fe
R 6e79369ab4ba4e452578109856e7a09e R 4afe2419b7a5acf8ce65f69c04d56780
U kostas U kostas
Z 6275ed8dd52eed9456fd7db503e12414 Z 8ae95f27e0d9cc7f19df4e88cf8777ad

View File

@ -1 +1 @@
c2c1b42f9604c19f48e4811c4eaf44d63aee60fe 9c28f79677e9fcd17ba7927b07bdf1403d1d5715

View File

@ -17,6 +17,7 @@
#include <QDebug> #include <QDebug>
#include <QProgressBar> #include <QProgressBar>
#include <QDragEnterEvent> #include <QDragEnterEvent>
#include <QTextCodec>
#include "CommitDialog.h" #include "CommitDialog.h"
#include "FileActionDialog.h" #include "FileActionDialog.h"
#include "CloneDialog.h" #include "CloneDialog.h"
@ -1097,6 +1098,16 @@ bool MainWindow::runFossilRaw(const QStringList &args, QStringList *output, int
fossilAbort = false; fossilAbort = false;
QString buffer; 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) while(true)
{ {
QProcess::ProcessState state = process.state(); QProcess::ProcessState state = process.state();
@ -1124,7 +1135,7 @@ bool MainWindow::runFossilRaw(const QStringList &args, QStringList *output, int
qDebug() << input; qDebug() << input;
#endif #endif
buffer += input; buffer += decoder->toUnicode(input);
QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents); QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
@ -1238,6 +1249,8 @@ bool MainWindow::runFossilRaw(const QStringList &args, QStringList *output, int
} }
} }
delete decoder;
// Must be finished by now // Must be finished by now
Q_ASSERT(process.state()==QProcess::NotRunning); Q_ASSERT(process.state()==QProcess::NotRunning);