annotate Apps/updateDeDupe.cpp @ 102:5906661c0421

New attempt on getting correct encodings.
author Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
date Thu, 13 Feb 2014 15:20:37 +0100
parents c17475848bf4
children 27e628852401
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
102
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
1
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
2
5
5e4985407feb Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
3 #include "DataController.hpp"
40
f711ddb56ae7 Sort up includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 30
diff changeset
4
28
b2c2c2bf2bbd Refactor Exceptions into a separate directory.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 11
diff changeset
5 #include "Exception/Exception.hpp"
5
5e4985407feb Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
6
9
b5943e4bf676 Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 5
diff changeset
7 #include <iostream>
83
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
8 #include <QtCore/QList>
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
9 #include <boost/foreach.hpp>
102
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
10 #include <boost/archive/detail/utf8_codecvt_facet.hpp>
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
11 #include <locale>
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
12 #include <boost/archive/add_facet.hpp>
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
13 //#include <codecvt>
9
b5943e4bf676 Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 5
diff changeset
14
5
5e4985407feb Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
15 int main(int argc, char *argv[]) {
5e4985407feb Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
16
83
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
17 QStringList paths;
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
18
102
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
19 /*
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
20 typedef wchar_t ucs4_t;
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
21
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
22 std::locale old_locale;
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
23 std::locale utf8_locale(old_locale, new utf8_codecvt_facet<ucs4_t>);
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
24
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
25 // Set a New global locale
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
26 //std::locale::global(utf8_locale);
5906661c0421 New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 83
diff changeset
27 */
83
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
28 for (int i = 1; i < argc; ++i) {
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
29 char path_buf[PATH_MAX];
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
30 realpath(argv[i], path_buf);
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
31 paths.push_back(path_buf);
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
32 }
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
33
9
b5943e4bf676 Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 5
diff changeset
34 try {
83
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
35 if (paths.empty()) {
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
36 DataController dc(false);
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
37 }
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
38 else {
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
39 foreach(const QString& path, paths) {
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
40 DataController dc(path, false);
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
41 }
c17475848bf4 Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 63
diff changeset
42 }
9
b5943e4bf676 Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 5
diff changeset
43 }
b5943e4bf676 Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 5
diff changeset
44 catch (Exception& e) {
11
f59ee8d3f8ea Fix error string formatting.
Tom Fredrik Blenning Klaussen <bfg@sim.no>
parents: 9
diff changeset
45 std::cerr << "Unrecoverable error: " << e.toString().toStdString();
9
b5943e4bf676 Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 5
diff changeset
46 exit(1);
b5943e4bf676 Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 5
diff changeset
47 }
b5943e4bf676 Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 5
diff changeset
48
5
5e4985407feb Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
49 }