# HG changeset patch # User Chris Cannam # Date 1209462138 0 # Node ID 4884fba80e00cc85935b116a7448a7d1e476668c # Parent 3012af787e4a06841e589075aec2d908e4f11e06 ... diff -r 3012af787e4a -r 4884fba80e00 system/Init.cpp --- a/system/Init.cpp Thu Apr 24 14:25:28 2008 +0000 +++ b/system/Init.cpp Tue Apr 29 09:42:18 2008 +0000 @@ -1,84 +1,84 @@ -/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ - -/* - Sonic Visualiser - An audio file viewer and annotation editor. - Centre for Digital Music, Queen Mary, University of London. - This file copyright 2006 Chris Cannam. - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. See the file - COPYING included with this distribution for more information. -*/ - -#include - -#ifdef Q_WS_X11 -#include -#include -#include -#include - -static int handle_x11_error(Display *dpy, XErrorEvent *err) -{ - char errstr[256]; - XGetErrorText(dpy, err->error_code, errstr, 256); - if (err->error_code != BadWindow) { - std::cerr << "Sonic Visualiser: X Error: " - << errstr << " " << int(err->error_code) - << "\nin major opcode: " - << int(err->request_code) << std::endl; - } - return 0; -} -#endif - -#ifdef Q_WS_WIN32 - -#include -#include - -// Set default file open mode to binary -//#undef _fmode -//int _fmode = _O_BINARY; - -void redirectStderr() -{ - HANDLE stderrHandle = GetStdHandle(STD_ERROR_HANDLE); - if (!stderrHandle) return; - - AllocConsole(); - - CONSOLE_SCREEN_BUFFER_INFO info; - GetConsoleScreenBufferInfo(stderrHandle, &info); - info.dwSize.Y = 1000; - SetConsoleScreenBufferSize(stderrHandle, info.dwSize); - - int h = _open_osfhandle((long)stderrHandle, _O_TEXT); - if (h) { - FILE *fd = _fdopen(h, "w"); - if (fd) { - *stderr = *fd; - setvbuf(stderr, NULL, _IONBF, 0); - } - } -} - -#endif - -extern void svSystemSpecificInitialisation() -{ -#ifdef Q_WS_X11 - XSetErrorHandler(handle_x11_error); -#endif - -#ifdef Q_WS_WIN32 - redirectStderr(); -#else -#endif -} - - - +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + Sonic Visualiser + An audio file viewer and annotation editor. + Centre for Digital Music, Queen Mary, University of London. + This file copyright 2006 Chris Cannam. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#include + +#ifdef Q_WS_X11 +#include +#include +#include +#include + +static int handle_x11_error(Display *dpy, XErrorEvent *err) +{ + char errstr[256]; + XGetErrorText(dpy, err->error_code, errstr, 256); + if (err->error_code != BadWindow) { + std::cerr << "Sonic Visualiser: X Error: " + << errstr << " " << int(err->error_code) + << "\nin major opcode: " + << int(err->request_code) << std::endl; + } + return 0; +} +#endif + +#ifdef Q_WS_WIN32 + +#include +#include + +// Set default file open mode to binary +//#undef _fmode +//int _fmode = _O_BINARY; + +void redirectStderr() +{ + HANDLE stderrHandle = GetStdHandle(STD_ERROR_HANDLE); + if (!stderrHandle) return; + + AllocConsole(); + + CONSOLE_SCREEN_BUFFER_INFO info; + GetConsoleScreenBufferInfo(stderrHandle, &info); + info.dwSize.Y = 1000; + SetConsoleScreenBufferSize(stderrHandle, info.dwSize); + + int h = _open_osfhandle((long)stderrHandle, _O_TEXT); + if (h) { + FILE *fd = _fdopen(h, "w"); + if (fd) { + *stderr = *fd; + setvbuf(stderr, NULL, _IONBF, 0); + } + } +} + +#endif + +extern void svSystemSpecificInitialisation() +{ +#ifdef Q_WS_X11 + XSetErrorHandler(handle_x11_error); +#endif + +#ifdef Q_WS_WIN32 + redirectStderr(); +#else +#endif +} + + +