diff --git a/mingw-w64-innoextract/PKGBUILD b/mingw-w64-innoextract/PKGBUILD index 50c4bad501..99a09253a0 100644 --- a/mingw-w64-innoextract/PKGBUILD +++ b/mingw-w64-innoextract/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=innoextract +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4 -pkgrel=2 +pkgver=1.5 +pkgrel=1 pkgdesc="A tool to extract installers created by Inno Setup (mingw-w64)." arch=('any') url="http://constexpr.org/innoextract/" @@ -17,39 +18,22 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-libiconv") options=('staticlibs' '!strip') -source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" - fix-typo-in-comment.patch - fix-crash-on-startup.patch - dont-set-background.patch - fix-flickering-progress-bar.patch - fix-restoring-original-console-color.patch - fix-an-infinite-loop-with-truncated-LZMA-streams.patch) -sha1sums=('3fd3ac98c802c72a1f4ae5f6e6a5dca35747ff98' - '554408d4be410563828d2599db698f0f76cef51e' - 'd35974339a83db0cd04c343d865075d99fc426ba' - 'abebb02453cd1d60afee5f4fb19ad0dc53d09125' - '43454e4e6ef70cd635135e38ead7e596308986c0' - '665c7cbb712d88e0d6506b3de157d7fbf819c239' - '69798ae9a93e0f944201889b6b7000130a7af4d4') +source=("http://constexpr.org/innoextract/files/${_realname}-${pkgver}.tar.gz") +sha1sums=('cd3e3f68213c2730e9db4665b2997f5052f12af7') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i ${srcdir}/fix-typo-in-comment.patch - patch -p1 -i ${srcdir}/fix-crash-on-startup.patch - patch -p1 -i ${srcdir}/dont-set-background.patch - patch -p1 -i ${srcdir}/fix-flickering-progress-bar.patch - patch -p1 -i ${srcdir}/fix-restoring-original-console-color.patch - patch -p1 -i ${srcdir}/fix-an-infinite-loop-with-truncated-LZMA-streams.patch } build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - #MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ + -Wno-dev \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DUSE_STATIC_LIBS=OFF \ ../${_realname}-${pkgver} @@ -59,7 +43,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install install -Dm644 ${srcdir}/${_realname}-${pkgver}/README.md \ "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/README.md" diff --git a/mingw-w64-innoextract/dont-set-background.patch b/mingw-w64-innoextract/dont-set-background.patch deleted file mode 100644 index f021768e95..0000000000 --- a/mingw-w64-innoextract/dont-set-background.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 9e40d651cb6b59582d4ee7c3dba10d8f66568dbd Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Mon, 13 May 2013 21:32:25 +0200 -Subject: [PATCH] Don't set the background color under Windows - -... unless the current background color is too bright. ---- - src/util/console.cpp | 38 ++++++++++++++++++++++++++++---------- - 1 file changed, 28 insertions(+), 10 deletions(-) - -diff --git a/src/util/console.cpp b/src/util/console.cpp -index 72a2830..0f052c0 100644 ---- a/src/util/console.cpp -+++ b/src/util/console.cpp -@@ -46,6 +46,7 @@ - - #include - #include -+#include - - #include "util/output.hpp" - -@@ -193,24 +194,41 @@ void init(is_enabled color, is_enabled progress) { - - // Initialize color output - -+ shell_command * const all_colors[] = { -+ &reset, ¤t, -+ &black, &red, &green, &yellow, &blue, &magenta, &cyan, &white, -+ &dim_black, &dim_red, &dim_green, &dim_yellow, -+ &dim_blue, &dim_magenta, &dim_cyan, &dim_white, -+ }; -+ - if(color == disable || (color == automatic && !is_tty)) { - -- #if defined(_WIN32) -- reset.command = boost::uint16_t(-1); -- #else -- reset.command = ""; -- #endif -- -- black = red = green = yellow = blue = magenta = cyan = white = reset; -- dim_black = dim_red = dim_green = dim_yellow = reset; -- dim_blue = dim_magenta = dim_cyan = dim_white = reset; -- current = reset; -+ BOOST_FOREACH(shell_command * color, all_colors) { -+ #if defined(_WIN32) -+ color->command = boost::uint16_t(-1); -+ #else -+ color->command = ""; -+ #endif -+ } - - } else { -+ - #if defined(_WIN32) -+ // Preserve the original background color if it isn't too bright. -+ if(!(original_color.command & (COMMON_LVB_REVERSE_VIDEO|BACKGROUND_INTENSITY))) { -+ boost::uint16_t bgmask = BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE; -+ if((color & bgmask) != bgmask) { -+ boost::uint16_t bg = original_color.command & bgmask; -+ BOOST_FOREACH(shell_command * color, all_colors) { -+ color->command |= bg; -+ } -+ } -+ } -+ // Force dim_white as the default color under Windows, restore original color on exit. - std::cout << reset; - std::atexit(restore_color); - #endif -+ - } - - } --- -1.9.1 - diff --git a/mingw-w64-innoextract/fix-an-infinite-loop-with-truncated-LZMA-streams.patch b/mingw-w64-innoextract/fix-an-infinite-loop-with-truncated-LZMA-streams.patch deleted file mode 100644 index f6ab967b15..0000000000 --- a/mingw-w64-innoextract/fix-an-infinite-loop-with-truncated-LZMA-streams.patch +++ /dev/null @@ -1,49 +0,0 @@ -From b87d69182a637e3cb55a3d792594d842be8ace0d Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Wed, 22 May 2013 15:22:34 +0200 -Subject: [PATCH] Fix an infinite loop with truncated LZMA streams - ---- - src/stream/file.cpp | 2 ++ - src/stream/lzma.cpp | 5 ++++- - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/src/stream/file.cpp b/src/stream/file.cpp -index 42d6614..64c266c 100644 ---- a/src/stream/file.cpp -+++ b/src/stream/file.cpp -@@ -69,6 +69,8 @@ file_reader::pointer file_reader::get(base_type & base, const file & file, - - result->push(restrict(base, file.size)); - -+ result->exceptions(std::ios_base::badbit); -+ - return pointer(result.release()); - } - -diff --git a/src/stream/lzma.cpp b/src/stream/lzma.cpp -index 695c799..a771070 100644 ---- a/src/stream/lzma.cpp -+++ b/src/stream/lzma.cpp -@@ -56,7 +56,6 @@ static lzma_stream * init_raw_lzma_stream(lzma_vli filter, lzma_options_lzma & o - - bool lzma_decompressor_impl_base::filter(const char * & begin_in, const char * end_in, - char * & begin_out, char * end_out, bool flush) { -- (void)flush; - - lzma_stream * strm = static_cast(stream); - -@@ -68,6 +67,10 @@ bool lzma_decompressor_impl_base::filter(const char * & begin_in, const char * e - - lzma_ret ret = lzma_code(strm, LZMA_RUN); - -+ if(flush && ret == LZMA_BUF_ERROR && strm->avail_out > 0) { -+ throw lzma_error("truncated lzma stream", ret); -+ } -+ - begin_in = reinterpret_cast(strm->next_in); - begin_out = reinterpret_cast(strm->next_out); - --- -1.9.1 - diff --git a/mingw-w64-innoextract/fix-crash-on-startup.patch b/mingw-w64-innoextract/fix-crash-on-startup.patch deleted file mode 100644 index 7c6c4f76be..0000000000 --- a/mingw-w64-innoextract/fix-crash-on-startup.patch +++ /dev/null @@ -1,49 +0,0 @@ -From b52c4a0699b3801b96cd25567843faa6ab57daf3 Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Mon, 13 May 2013 20:47:16 +0200 -Subject: [PATCH] Fix crash on startup under Windows - -Don't assume that the runtime initializes the __wargv global variable. ---- - src/util/windows.cpp | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/src/util/windows.cpp b/src/util/windows.cpp -index 7ee7caf..87cbaa9 100644 ---- a/src/util/windows.cpp -+++ b/src/util/windows.cpp -@@ -27,6 +27,7 @@ - #include - - #include -+#include - - #include - -@@ -52,9 +53,11 @@ int main() { - - std::setlocale(LC_ALL, ""); - -- // Get the UTF-16 command-line parameters and convert them to UTF-8 ourself. -- int argc = __argc; -- wchar_t ** wargv = __wargv; -+ // Emulate wmain() as it's nonstandard and not supported by MinGW. -+ int argc = 0; -+ wchar_t ** wargv = CommandLineToArgvW(GetCommandLineW(), &argc); -+ -+ // Convert the UTF-16 command-line parameters to UTF-8 ourself. - char ** argv = new char *[argc + 1]; - argv[argc] = NULL; - for(int i = 0; i < argc; i++) { -@@ -63,6 +66,8 @@ int main() { - WideCharToMultiByte(CP_UTF8, 0, wargv[i], -1, argv[i], n, NULL, NULL); - } - -+ LocalFree(wargv); -+ - // Tell boost::filesystem to interpret our path strings as UTF-8. - std::locale global_locale = std::locale(); - std::locale utf8_locale(global_locale, new utf8_codecvt); --- -1.9.1 - diff --git a/mingw-w64-innoextract/fix-flickering-progress-bar.patch b/mingw-w64-innoextract/fix-flickering-progress-bar.patch deleted file mode 100644 index 026eca1737..0000000000 --- a/mingw-w64-innoextract/fix-flickering-progress-bar.patch +++ /dev/null @@ -1,292 +0,0 @@ -From a144d3fff0e94e19acc098ee4b35503aaeb752ae Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Tue, 14 May 2013 20:10:56 +0200 -Subject: [PATCH] Fix flickering progress bar under Windows - ---- - src/cli/main.cpp | 68 +++++++++++++++++++++++++++------------------------- - src/util/console.cpp | 65 +++++++++++++++++++++++++++++-------------------- - src/util/console.hpp | 13 +++++++--- - 3 files changed, 84 insertions(+), 62 deletions(-) - -diff --git a/src/cli/main.cpp b/src/cli/main.cpp -index b4c72aa..3f90291 100644 ---- a/src/cli/main.cpp -+++ b/src/cli/main.cpp -@@ -326,49 +326,48 @@ static void process_file(const fs::path & file, const options & o) { - } - - // Print filename and size -- if(!o.silent) { -+ if(o.list) { - - extract_progress.clear(); - -- std::cout << " - "; -- bool named = false; -- BOOST_FOREACH(const file_t & path, output_names) { -- if(named) { -- std::cout << ", "; -+ if(!o.silent) { -+ -+ std::cout << " - "; -+ bool named = false; -+ BOOST_FOREACH(const file_t & path, output_names) { -+ if(named) { -+ std::cout << ", "; -+ } -+ std::cout << '"' << color::white << path.first << color::reset << '"'; -+ if(!info.files[path.second].languages.empty()) { -+ std::cout << " [" << color::green << info.files[path.second].languages -+ << color::reset << "]"; -+ } -+ named = true; - } -- std::cout << '"' << color::white << path.first << color::reset << '"'; -- if(!info.files[path.second].languages.empty()) { -- std::cout << " [" << color::green << info.files[path.second].languages -- << color::reset << "]"; -+ if(!named) { -+ std::cout << color::white << "unnamed file" << color::reset; - } -- named = true; -- } -- if(!named) { -- std::cout << color::white << "unnamed file" << color::reset; -- } -- if(!o.quiet) { -- if(logger::debug) { -- std::cout << " @ " << print_hex(file.offset); -+ if(!o.quiet) { -+ if(logger::debug) { -+ std::cout << " @ " << print_hex(file.offset); -+ } -+ std::cout << " (" << color::dim_cyan << print_bytes(file.size) -+ << color::reset << ")"; -+ } -+ std::cout << '\n'; -+ -+ } else { -+ BOOST_FOREACH(const file_t & path, output_names) { -+ std::cout << color::white << path.first << color::reset << '\n'; - } -- std::cout << " (" << color::dim_cyan << print_bytes(file.size) -- << color::reset << ")"; -- } -- std::cout << '\n'; -- if(o.extract || o.test) { -- std::cout.flush(); - } - -- extract_progress.update(0, true); -- -- } else if(o.list) { -- extract_progress.clear(); -- BOOST_FOREACH(const file_t & path, output_names) { -- std::cout << color::white << path.first << color::reset << '\n'; -- } -- if(o.extract || o.test) { -+ bool updated = extract_progress.update(0, true); -+ if(!updated && (o.extract || o.test)) { - std::cout.flush(); - } -- extract_progress.update(0, true); -+ - } - - if(!o.extract && !o.test) { -@@ -568,6 +567,9 @@ int main(int argc, char * argv[]) { - if(!o.extract && !o.test) { - progress::set_enabled(false); - } -+ if(!o.silent) { -+ o.list = true; -+ } - - // Additional actions. - o.filenames.set_expand(options.count("dump") == 0); -diff --git a/src/util/console.cpp b/src/util/console.cpp -index 0f052c0..9129056 100644 ---- a/src/util/console.cpp -+++ b/src/util/console.cpp -@@ -184,13 +184,6 @@ void init(is_enabled color, is_enabled progress) { - show_progress = true; - } - #endif -- #if defined(_WIN32) -- if(show_progress) { -- // Buffer output so that the progress bar won't flicker (we flush after each update) -- static char buffer[BUFSIZ]; -- std::setbuf(stdout, buffer); -- } -- #endif - - // Initialize color output - -@@ -214,7 +207,7 @@ void init(is_enabled color, is_enabled progress) { - } else { - - #if defined(_WIN32) -- // Preserve the original background color if it isn't too bright. -+ // Preserve the original background color if it isn't too bright - if(!(original_color.command & (COMMON_LVB_REVERSE_VIDEO|BACKGROUND_INTENSITY))) { - boost::uint16_t bgmask = BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE; - if((color & bgmask) != bgmask) { -@@ -224,7 +217,7 @@ void init(is_enabled color, is_enabled progress) { - } - } - } -- // Force dim_white as the default color under Windows, restore original color on exit. -+ // Force dim_white as the default color under Windows, restore original color on exit - std::cout << reset; - std::atexit(restore_color); - #endif -@@ -288,7 +281,7 @@ static int get_screen_width() { - - static bool progress_cleared = true; - --int progress::clear() { -+int progress::clear(bool reset_only) { - - int width = get_screen_width(); - -@@ -298,18 +291,37 @@ int progress::clear() { - - #if defined(_WIN32) - -- // Overwrite the current line with whitespace -- -- static std::string buffer; -- static int last_width = 0; -- if(width != last_width) { -- size_t cwidth = size_t(std::max(width, 1) - 1); -- buffer.resize(cwidth, ' '); -- last_width = width; -+ if(reset_only) { -+ -+ /* -+ * If we overwrite the whole line with spaces, windows console likes to draw -+ * the empty line, even if it will be overwritten in the same flush(), -+ * causing the progress bar to flicker when updated. -+ * To work around this, don't actually clear the line if we are just going to -+ * overwrite it anyway. -+ * The progress bar still flickers when there is other output printed, but -+ * it seems there is no way around that without using the console API to manually -+ * scroll the output. -+ */ -+ -+ std::cout << '\r'; -+ -+ } else { -+ -+ // Overwrite the current line with whitespace -+ -+ static std::string buffer; -+ static int last_width = 0; -+ if(width != last_width) { -+ size_t cwidth = size_t(std::max(width, 1) - 1); -+ buffer.resize(cwidth, ' '); -+ last_width = width; -+ } -+ -+ std::cout << '\r' << buffer << '\r'; -+ - } - -- std::cout << '\r' << buffer << '\r'; -- - #else - - // Use the ANSI/VT100 control sequence to clear the current line -@@ -329,7 +341,7 @@ void progress::show(float value, const std::string & label) { - return; - } - -- int width = clear(); -+ int width = clear(true); - - std::ios_base::fmtflags flags = std::cout.flags(); - -@@ -366,7 +378,7 @@ void progress::show_unbounded(float value, const std::string & label) { - return; - } - -- int width = clear(); -+ int width = clear(true); - - std::ios_base::fmtflags flags = std::cout.flags(); - -@@ -402,10 +414,10 @@ progress::progress(boost::uint64_t max, bool show_rate) - start_time(boost::posix_time::microsec_clock::universal_time()), - last_status(-1.f), last_time(0), last_rate(0.f) { } - --void progress::update(boost::uint64_t delta, bool force) { -+bool progress::update(boost::uint64_t delta, bool force) { - - if(!show_progress) { -- return; -+ return false; - } - - force = force || progress_cleared; -@@ -417,7 +429,7 @@ void progress::update(boost::uint64_t delta, bool force) { - status = float(std::min(value, max)) / float(max); - status = float(size_t(1000.f * status)) * (1.f / 1000.f); - if(!force && status == last_status) { -- return; -+ return false; - } - } - -@@ -430,7 +442,7 @@ void progress::update(boost::uint64_t delta, bool force) { - const boost::uint64_t update_interval = 50000; - #endif - if(!force && time - last_time < update_interval) { -- return; -+ return false; - } - - last_time = time; -@@ -461,6 +473,7 @@ void progress::update(boost::uint64_t delta, bool force) { - show_unbounded(status, label.str()); - } - -+ return true; - } - - void progress::set_enabled(bool enable) { -diff --git a/src/util/console.hpp b/src/util/console.hpp -index 1f8354c..4c6875d 100644 ---- a/src/util/console.hpp -+++ b/src/util/console.hpp -@@ -132,8 +132,10 @@ public: - * maximum set in the constructor, the bar will be full. - * \param force Force updating the progress bar. Normally, the progress bar. Otherwise, - * updates are rate-limited and small deltas are not displayed immediately. -+ * -+ * \return true if the progres bar was updated - */ -- void update(boost::uint64_t delta = 0, bool force = false); -+ bool update(boost::uint64_t delta = 0, bool force = false); - - /*! - * Draw a bounded progress bar (with a maximum). -@@ -151,8 +153,13 @@ public: - */ - static void show_unbounded(float value, const std::string & label = std::string()); - -- //! Clear any progress bar to make way for other output. -- static int clear(); -+ /*! -+ * Clear any progress bar to make way for other output. -+ * -+ * \param reset_only Only reset the cursor if cleaning the line is expensive. -+ * This should be used if the whole line will be written anyway. -+ */ -+ static int clear(bool reset_only = false); - - //! Enable or disable the progress bar. - static void set_enabled(bool enable); --- -1.9.1 - diff --git a/mingw-w64-innoextract/fix-restoring-original-console-color.patch b/mingw-w64-innoextract/fix-restoring-original-console-color.patch deleted file mode 100644 index a6acabbe7e..0000000000 --- a/mingw-w64-innoextract/fix-restoring-original-console-color.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 507f4c178f8bb085afe830e0772ce79b1b8e771a Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Tue, 14 May 2013 21:00:36 +0200 -Subject: [PATCH] Fix restoring original console color under Windows - ---- - src/util/console.cpp | 20 +++++++++++++++----- - 1 file changed, 15 insertions(+), 5 deletions(-) - -diff --git a/src/util/console.cpp b/src/util/console.cpp -index 9129056..f86a4f1 100644 ---- a/src/util/console.cpp -+++ b/src/util/console.cpp -@@ -118,10 +118,17 @@ shell_command dim_cyan = { FOREGROUND_BLUE | FOREGROUND_GREEN }; - shell_command dim_white = { FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE }; - - shell_command reset = dim_white; --shell_command original_color; - -+boost::uint16_t original_color = boost::uint16_t(-1); - static void restore_color() { -- std::cout << original_color; -+ if(original_color != boost::uint16_t(-1) && console_handle) { -+ SetConsoleTextAttribute(console_handle, original_color); -+ } -+} -+static BOOL WINAPI restore_color_handler(DWORD type) { -+ (void)type; -+ restore_color(); -+ return FALSE; - } - - #else -@@ -163,7 +170,7 @@ void init(is_enabled color, is_enabled progress) { - console_handle = GetStdHandle(STD_OUTPUT_HANDLE); - CONSOLE_SCREEN_BUFFER_INFO info; - if(console_handle && GetConsoleScreenBufferInfo(console_handle, &info)) { -- original_color.command = info.wAttributes; -+ original_color = info.wAttributes; - } else { - is_tty = false; - color = disable; -@@ -208,10 +215,10 @@ void init(is_enabled color, is_enabled progress) { - - #if defined(_WIN32) - // Preserve the original background color if it isn't too bright -- if(!(original_color.command & (COMMON_LVB_REVERSE_VIDEO|BACKGROUND_INTENSITY))) { -+ if(!(original_color & (COMMON_LVB_REVERSE_VIDEO|BACKGROUND_INTENSITY))) { - boost::uint16_t bgmask = BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE; - if((color & bgmask) != bgmask) { -- boost::uint16_t bg = original_color.command & bgmask; -+ boost::uint16_t bg = original_color & bgmask; - BOOST_FOREACH(shell_command * color, all_colors) { - color->command |= bg; - } -@@ -220,6 +227,7 @@ void init(is_enabled color, is_enabled progress) { - // Force dim_white as the default color under Windows, restore original color on exit - std::cout << reset; - std::atexit(restore_color); -+ SetConsoleCtrlHandler(restore_color_handler, TRUE); - #endif - - } -@@ -324,6 +332,8 @@ int progress::clear(bool reset_only) { - - #else - -+ (void)reset_only; -+ - // Use the ANSI/VT100 control sequence to clear the current line - - std::cout << "\33[2K\r"; --- -1.9.1 - diff --git a/mingw-w64-innoextract/fix-typo-in-comment.patch b/mingw-w64-innoextract/fix-typo-in-comment.patch deleted file mode 100644 index 7b9d83476d..0000000000 --- a/mingw-w64-innoextract/fix-typo-in-comment.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7358c530490f9595444fcef3e1352905a6b2a366 Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Thu, 11 Apr 2013 17:23:23 +0200 -Subject: [PATCH] Fix typo in comment - ---- - src/util/windows.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/util/windows.cpp b/src/util/windows.cpp -index e25d4bb..7ee7caf 100644 ---- a/src/util/windows.cpp -+++ b/src/util/windows.cpp -@@ -52,7 +52,7 @@ int main() { - - std::setlocale(LC_ALL, ""); - -- // Get the UTF-16 command-line parameters and convert it them to UTF-8 ourself. -+ // Get the UTF-16 command-line parameters and convert them to UTF-8 ourself. - int argc = __argc; - wchar_t ** wargv = __wargv; - char ** argv = new char *[argc + 1]; --- -1.9.1 -