]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/error.cpp
Appveyor
[xonotic/netradiant.git] / radiant / error.cpp
index 4044cb742c80c91481479b349833b3d5d768cad3..fda7f79f8361fbc32619bd2d289b0173090076ad 100644 (file)
@@ -1,5 +1,5 @@
 /*
-   Copyright (C) 1999-2007 id Software, Inc. and contributors.
+   Copyright (C) 1999-2006 Id Software, Inc. and contributors.
    For a list of contributors, see the accompanying CONTRIBUTORS file.
 
    This file is part of GtkRadiant.
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-#define UNICODE
-#include "stdafx.h"
+#include "error.h"
+
+#include "debugging/debugging.h"
+#include "igl.h"
+
+#include "gtkutil/messagebox.h"
+#include "console.h"
+#include "preferences.h"
 
-#if defined ( __linux__ ) || defined ( __APPLE__ )
+
+#ifdef WIN32
+#define UNICODE
+#include <windows.h>
+#else
+#include <errno.h>
 #include <unistd.h>
 #endif
 
+
+
 /*
    =================
    Error
@@ -50,32 +63,25 @@ void Error( const char *error, ... ){
 
        strcat( text, "\n" );
 
-#if defined ( __linux__ ) || defined ( __APPLE__ )
-       if ( errno != 0 ) {
-               strcat( text, "errno: " );
-               strcat( text, strerror( errno ) );
-               strcat( text, "\n" );
-       }
-#endif
-
-#ifdef _WIN32
+#ifdef WIN32
        if ( GetLastError() != 0 ) {
                LPVOID lpMsgBuf;
                FormatMessage(
                        FORMAT_MESSAGE_ALLOCATE_BUFFER |
                        FORMAT_MESSAGE_FROM_SYSTEM |
                        FORMAT_MESSAGE_IGNORE_INSERTS,
-                       NULL,
+                       0,
                        GetLastError(),
                        MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language
                        (LPTSTR) &lpMsgBuf,
                        0,
-                       NULL
+                       0
                        );
                strcat( text, "GetLastError: " );
                /*
                   Gtk will only crunch 0<=char<=127
                   this is a bit hackish, but I didn't find useful functions in win32 API for this
+                  http://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=516
                 */
                TCHAR *scan, *next = (TCHAR*)lpMsgBuf;
                do
@@ -83,7 +89,7 @@ void Error( const char *error, ... ){
                        scan = next;
                        text[strlen( text ) + 1] = '\0';
                        if ( ( scan[0] >= 0 ) && ( scan[0] <= 127 ) ) {
-                               text[strlen( text )] = scan[0];
+                               text[strlen( text )] = char(scan[0]);
                        }
                        else{
                                text[strlen( text )] = '?';
@@ -93,53 +99,37 @@ void Error( const char *error, ... ){
                strcat( text, "\n" );
                LocalFree( lpMsgBuf );
        }
+#else
+       if ( errno != 0 ) {
+               strcat( text, "errno: " );
+               strcat( text, strerror( errno ) );
+               strcat( text, "\n" );
+       }
 #endif
 
+
+#if 0
        // we need to have a current context to call glError()
-       if ( g_qeglobals_gui.d_glBase != NULL ) {
-               // qglGetError .. can record several errors, clears after calling
+       if ( g_glwindow_globals.d_glBase != 0 ) {
+               // glGetError .. can record several errors, clears after calling
                //++timo TODO: be able to deal with several errors if necessary, for now I'm just warning about pending error messages
                // NOTE: forget that, most boards don't seem to follow the OpenGL standard
-               GLenum iGLError = qglGetError();
+               GLenum iGLError = glGetError();
                if ( iGLError != GL_NO_ERROR ) {
                        // use our own gluErrorString
-                       strcat( text, "qgluErrorString: " );
-                       strcat( text, (char*)qgluErrorString( iGLError ) );
+                       strcat( text, "gluErrorString: " );
+                       strcat( text, (char*)gluErrorString( iGLError ) );
                        strcat( text, "\n" );
                }
        }
+#endif
 
-       strcat( text, "An unrecoverable error has occured.\n"
-                                 "Would you like to edit Preferences before exiting Radiant?" );
-
-       Sys_Printf( text );
-
-       if ( gtk_MessageBox( NULL, text, "Error", MB_YESNO ) == IDYES ) {
-               Sys_Printf( "Doing prefs..\n" );
-               g_PrefsDlg.LoadPrefs();
-               g_PrefsDlg.DoModal();
-       }
-
-       QGL_Shutdown();
+       strcat( text, "An unrecoverable error has occured.\n" );
 
-       g_PrefsDlg.Destroy();
-       g_dlgSurface.Destroy();
-       g_dlgFind.Destroy();
+       ERROR_MESSAGE( text );
 
        // force close logging if necessary
-       g_PrefsDlg.mGamesDialog.m_bLogConsole = false;
-       Sys_LogFile();
+       Sys_LogFile( false );
 
        _exit( 1 );
 }
-
-void WINAPI Error( char *error, ... ){
-       va_list argptr;
-       char text[1024];
-
-       va_start( argptr,error );
-       vsprintf( text, error,argptr );
-       va_end( argptr );
-
-       Error( (const char *)text );
-}