mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Drop code to attach output to console on Windows
This was not built-in by default (required a build-time define to be set) and intended only for debugging. Most of its intended goal can also be achieved by redirecting standard output from the command line (verified to work in cmd.exe): gnucash --help | more gnucash --help > file-to-store-output.txt 2>&1
This commit is contained in:
parent
879a6cb568
commit
7b090c710a
@ -59,11 +59,6 @@ namespace bl = boost::locale;
|
|||||||
/* This static indicates the debugging module that this .o belongs to. */
|
/* This static indicates the debugging module that this .o belongs to. */
|
||||||
static QofLogModule log_module = GNC_MOD_GUI;
|
static QofLogModule log_module = GNC_MOD_GUI;
|
||||||
|
|
||||||
/* Change the following to have a console window attached to GnuCash
|
|
||||||
* for displaying stdout and stderr on Windows.
|
|
||||||
*/
|
|
||||||
#define __MSWIN_CONSOLE__ 0
|
|
||||||
|
|
||||||
#include <libintl.h>
|
#include <libintl.h>
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <gnc-locale-utils.hpp>
|
#include <gnc-locale-utils.hpp>
|
||||||
@ -412,54 +407,6 @@ gnc_log_init (const boost::optional <std::vector <std::string>> &log_flags,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Creates a console window on MSWindows to display stdout and stderr
|
|
||||||
* when __MSWIN_CONSOLE__ is defined at the top of the file.
|
|
||||||
*
|
|
||||||
* Useful for displaying the diagnostics printed before logging is
|
|
||||||
* started and if logging is redirected with --logto=stderr.
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
redirect_stdout (void)
|
|
||||||
{
|
|
||||||
#if defined __MINGW32__ && __MSWIN_CONSOLE__
|
|
||||||
static const WORD MAX_CONSOLE_LINES = 500;
|
|
||||||
int hConHandle;
|
|
||||||
long lStdHandle;
|
|
||||||
CONSOLE_SCREEN_BUFFER_INFO coninfo;
|
|
||||||
FILE *fp;
|
|
||||||
|
|
||||||
// allocate a console for this app
|
|
||||||
AllocConsole();
|
|
||||||
|
|
||||||
// set the screen buffer to be big enough to let us scroll text
|
|
||||||
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
|
|
||||||
coninfo.dwSize.Y = MAX_CONSOLE_LINES;
|
|
||||||
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize);
|
|
||||||
|
|
||||||
// redirect unbuffered STDOUT to the console
|
|
||||||
lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
|
|
||||||
fp = _fdopen( hConHandle, "w" );
|
|
||||||
*stdout = *fp;
|
|
||||||
setvbuf( stdout, NULL, _IONBF, 0 );
|
|
||||||
|
|
||||||
// redirect unbuffered STDIN to the console
|
|
||||||
lStdHandle = (long)GetStdHandle(STD_INPUT_HANDLE);
|
|
||||||
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
|
|
||||||
fp = _fdopen( hConHandle, "r" );
|
|
||||||
*stdin = *fp;
|
|
||||||
setvbuf( stdin, NULL, _IONBF, 0 );
|
|
||||||
|
|
||||||
// redirect unbuffered STDERR to the console
|
|
||||||
lStdHandle = (long)GetStdHandle(STD_ERROR_HANDLE);
|
|
||||||
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
|
|
||||||
fp = _fdopen( hConHandle, "w" );
|
|
||||||
*stderr = *fp;
|
|
||||||
setvbuf( stderr, NULL, _IONBF, 0 );
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
Gnucash::CoreApp::CoreApp ()
|
Gnucash::CoreApp::CoreApp ()
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_BINRELOC
|
#ifdef ENABLE_BINRELOC
|
||||||
@ -472,7 +419,6 @@ Gnucash::CoreApp::CoreApp ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
redirect_stdout ();
|
|
||||||
|
|
||||||
/* This should be called before gettext is initialized
|
/* This should be called before gettext is initialized
|
||||||
* The user may have configured a different language via
|
* The user may have configured a different language via
|
||||||
|
Loading…
Reference in New Issue
Block a user