From c853ffb5b2f75f5a889ed2e3ef89b818a736e87a Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 13:50:49 +0200 Subject: Adding upstream version 1.3+ds. Signed-off-by: Daniel Baumann --- src/inkview-main.cpp | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/inkview-main.cpp (limited to 'src/inkview-main.cpp') diff --git a/src/inkview-main.cpp b/src/inkview-main.cpp new file mode 100644 index 0000000..a22828e --- /dev/null +++ b/src/inkview-main.cpp @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/** + * @file + * Inkview - An SVG file viewer. + */ +/* + * Authors: + * Tavmjong Bah + * + * Copyright (C) 2018 Authors + * + * The contents of this file may be used under the GNU General Public License Version 2 or later. + * Read the file 'COPYING' for more information. + */ + +#ifdef _WIN32 +#include // SetConsoleOutputCP +#include // _O_BINARY +#endif + +#include "inkview-application.h" + +int main(int argc, char *argv[]) +{ +#ifdef _WIN32 + // temporarily switch console encoding to UTF8 while Inkview runs + // as everything else is a mess and it seems to work just fine + const unsigned int initial_cp = GetConsoleOutputCP(); + SetConsoleOutputCP(CP_UTF8); + fflush(stdout); // empty buffer, just to be safe (see warning in documentation for _setmode) + _setmode(_fileno(stdout), _O_BINARY); // binary mode seems required for this to work properly +#endif + + auto ret = InkviewApplication().run(argc, argv); + +#ifdef _WIN32 + // switch back to initial console encoding + SetConsoleOutputCP(initial_cp); +#endif + + return ret; +} + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : -- cgit v1.2.3