]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - tools/quake3/common/inout.c
Merge commit 'a255fbd84e64e4f8bb6e6786b6f65579071742b6' into garux-merge
[xonotic/netradiant.git] / tools / quake3 / common / inout.c
index 7adbf23e28cc380121ceb6b4e077cc2b16e9bb1f..5ade8802ca7eac347f2ebe14f81c85b36c89802c 100644 (file)
@@ -26,6 +26,7 @@
 // deal with in/out tasks, for either stdin/stdout or network/XML stream
 //
 
+#include "globaldefs.h"
 #include "cmdlib.h"
 #include "mathlib.h"
 #include "polylib.h"
@@ -33,7 +34,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 
-#ifdef WIN32
+#if GDEF_OS_WINDOWS
 #include <direct.h>
 #include <windows.h>
 #endif
 
 // utf8 conversion
 #include <glib.h>
-#include <glib/gconvert.h>
-#include <glib/gmem.h>
 
-#ifdef WIN32
+#if GDEF_OS_WINDOWS
 HWND hwndOut = NULL;
 qboolean lookedForServer = qfalse;
 UINT wm_BroadcastCommand = -1;
@@ -57,6 +56,7 @@ socket_t *brdcst_socket;
 netmessage_t msg;
 
 qboolean verbose = qfalse;
+qboolean werror = qfalse;
 
 // our main document
 // is streamed through the network to Radiant
@@ -71,8 +71,8 @@ xmlNodePtr xml_NodeForVec( vec3_t v ){
        char buf[1024];
 
        sprintf( buf, "%f %f %f", v[0], v[1], v[2] );
-       ret = xmlNewNode( NULL, "point" );
-       xmlNodeSetContent( ret, buf );
+       ret = xmlNewNode( NULL, (xmlChar*)"point" );
+       xmlNodeSetContent( ret, (xmlChar*)buf );
        return ret;
 }
 
@@ -94,7 +94,7 @@ void xml_SendNode( xmlNodePtr node ){
                // l_net library defines an upper limit of MAX_NETMESSAGE
                // there are some size check errors, so we use MAX_NETMESSAGE-10 to be safe
                // if the size of the buffer exceeds MAX_NETMESSAGE-10 we'll send in several network messages
-               while ( pos < xml_buf->use )
+               while ( pos < (int)xml_buf->use )
                {
                        // what size are we gonna send now?
                        ( xml_buf->use - pos < MAX_NETMESSAGE - 10 ) ? ( size = xml_buf->use - pos ) : ( size = MAX_NETMESSAGE - 10 );
@@ -149,15 +149,15 @@ void xml_Select( char *msg, int entitynum, int brushnum, qboolean bError ){
 
        // now build a proper "select" XML node
        sprintf( buf, "Entity %i, Brush %i: %s", entitynum, brushnum, msg );
-       node = xmlNewNode( NULL, "select" );
-       xmlNodeSetContent( node, buf );
+       node = xmlNewNode( NULL, (xmlChar*)"select" );
+       xmlNodeSetContent( node, (xmlChar*)buf );
        level[0] = (int)'0' + ( bError ? SYS_ERR : SYS_WRN )  ;
        level[1] = 0;
-       xmlSetProp( node, "level", (char *)&level );
+       xmlSetProp( node, (xmlChar*)"level", (xmlChar*)&level );
        // a 'select' information
        sprintf( buf, "%i %i", entitynum, brushnum );
-       select = xmlNewNode( NULL, "brush" );
-       xmlNodeSetContent( select, buf );
+       select = xmlNewNode( NULL, (xmlChar*)"brush" );
+       xmlNodeSetContent( select, (xmlChar*)buf );
        xmlAddChild( node, select );
        xml_SendNode( node );
 
@@ -176,15 +176,15 @@ void xml_Point( char *msg, vec3_t pt ){
        char buf[1024];
        char level[2];
 
-       node = xmlNewNode( NULL, "pointmsg" );
-       xmlNodeSetContent( node, msg );
+       node = xmlNewNode( NULL, (xmlChar*)"pointmsg" );
+       xmlNodeSetContent( node, (xmlChar*)msg );
        level[0] = (int)'0' + SYS_ERR;
        level[1] = 0;
-       xmlSetProp( node, "level", (char *)&level );
+       xmlSetProp( node, (xmlChar*)"level", (xmlChar *)&level );
        // a 'point' node
        sprintf( buf, "%g %g %g", pt[0], pt[1], pt[2] );
-       point = xmlNewNode( NULL, "point" );
-       xmlNodeSetContent( point, buf );
+       point = xmlNewNode( NULL, (xmlChar*)"point" );
+       xmlNodeSetContent( point, (xmlChar*)buf );
        xmlAddChild( node, point );
        xml_SendNode( node );
 
@@ -200,11 +200,11 @@ void xml_Winding( char *msg, vec3_t p[], int numpoints, qboolean die ){
        char level[2];
        int i;
 
-       node = xmlNewNode( NULL, "windingmsg" );
-       xmlNodeSetContent( node, msg );
+       node = xmlNewNode( NULL, (xmlChar*)"windingmsg" );
+       xmlNodeSetContent( node, (xmlChar*)msg );
        level[0] = (int)'0' + SYS_ERR;
        level[1] = 0;
-       xmlSetProp( node, "level", (char *)&level );
+       xmlSetProp( node, (xmlChar*)"level", (xmlChar *)&level );
        // a 'winding' node
        sprintf( buf, "%i ", numpoints );
        for ( i = 0; i < numpoints; i++ )
@@ -217,8 +217,8 @@ void xml_Winding( char *msg, vec3_t p[], int numpoints, qboolean die ){
                strcat( buf, smlbuf );
        }
 
-       winding = xmlNewNode( NULL, "winding" );
-       xmlNodeSetContent( winding, buf );
+       winding = xmlNewNode( NULL, (xmlChar*)"winding" );
+       xmlNodeSetContent( winding, (xmlChar*)buf );
        xmlAddChild( node, winding );
        xml_SendNode( node );
 
@@ -240,7 +240,7 @@ void Broadcast_Setup( const char *dest ){
        char sMsg[1024];
 
        Net_Setup();
-       Net_StringToAddress( (char *)dest, &address );
+       Net_StringToAddress( dest, &address );
        brdcst_socket = Net_Connect( &address, 0 );
        if ( brdcst_socket ) {
                // send in a header
@@ -282,19 +282,19 @@ void FPrintf( int flag, char *buf ){
         */
        if ( !bGotXML ) {
                // initialize
-               doc = xmlNewDoc( "1.0" );
-               doc->children = xmlNewDocRawNode( doc, NULL, "q3map_feedback", NULL );
+               doc = xmlNewDoc( (xmlChar*)"1.0" );
+               doc->children = xmlNewDocRawNode( doc, NULL, (xmlChar*)"q3map_feedback", NULL );
                bGotXML = qtrue;
        }
-       node = xmlNewNode( NULL, "message" );
+       node = xmlNewNode( NULL, (xmlChar*)"message" );
        {
                gchar* utf8 = g_locale_to_utf8( buf, -1, NULL, NULL, NULL );
-               xmlNodeSetContent( node, utf8 );
+               xmlNodeSetContent( node, (xmlChar*)utf8 );
                g_free( utf8 );
        }
        level[0] = (int)'0' + flag;
        level[1] = 0;
-       xmlSetProp( node, "level", (char *)&level );
+       xmlSetProp( node, (xmlChar*)"level", (xmlChar *)&level );
 
        xml_SendNode( node );
 }
@@ -317,6 +317,11 @@ void Sys_FPrintf( int flag, const char *format, ... ){
        vsprintf( out_buffer, format, argptr );
        va_end( argptr );
 
+       if ( ( flag == SYS_WRN ) && ( werror == qtrue ) ) {
+               Error( out_buffer );
+               return;
+       }
+
        FPrintf( flag, out_buffer );
 }