]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - console.c
VM_sprintf: support color codes in %s
[xonotic/darkplaces.git] / console.c
index 537cdc72019ced668af841aa9e8fbed16c153b2b..831c30a9f35a8dbfdff36f1e52ad53590e74ef25 100644 (file)
--- a/console.c
+++ b/console.c
@@ -814,7 +814,6 @@ static void Con_PrintToHistory(const char *txt, int mask)
        if(!con.text) // FIXME uses a non-abstracted property of con
                return;
 
-       if (con_mutex) Thread_LockMutex(con_mutex);
        for(; *txt; ++txt)
        {
                if(cr_pending)
@@ -845,7 +844,6 @@ static void Con_PrintToHistory(const char *txt, int mask)
                                break;
                }
        }
-       if (con_mutex) Thread_UnlockMutex(con_mutex);
 }
 
 /*! The translation table between the graphical font and plain ASCII  --KB */
@@ -907,13 +905,16 @@ void Con_Rcon_Redirect_Init(lhnetsocket_t *sock, lhnetaddress_t *dest, qboolean
 
 static void Con_Rcon_Redirect_Flush(void)
 {
-       rcon_redirect_buffer[rcon_redirect_bufferpos] = 0;
-       if (rcon_redirect_proquakeprotocol)
+       if(rcon_redirect_sock)
        {
-               // update the length in the packet header
-               StoreBigLong((unsigned char *)rcon_redirect_buffer, NETFLAG_CTL | (rcon_redirect_bufferpos & NETFLAG_LENGTH_MASK));
+               rcon_redirect_buffer[rcon_redirect_bufferpos] = 0;
+               if (rcon_redirect_proquakeprotocol)
+               {
+                       // update the length in the packet header
+                       StoreBigLong((unsigned char *)rcon_redirect_buffer, NETFLAG_CTL | (rcon_redirect_bufferpos & NETFLAG_LENGTH_MASK));
+               }
+               NetConn_Write(rcon_redirect_sock, rcon_redirect_buffer, rcon_redirect_bufferpos, rcon_redirect_dest);
        }
-       NetConn_Write(rcon_redirect_sock, rcon_redirect_buffer, rcon_redirect_bufferpos, rcon_redirect_dest);
        memcpy(rcon_redirect_buffer, "\377\377\377\377n", 5); // QW rcon print
        rcon_redirect_bufferpos = 5;
        rcon_redirect_proquakeprotocol = false;
@@ -1535,7 +1536,7 @@ static float Con_WordWidthFunc(void *passthrough, const char *w, size_t *length,
                return DrawQ_TextWidth(w, *length, ti->fontsize, ti->fontsize, false, ti->font);
        else
        {
-               printf("Con_WordWidthFunc: can't get here (maxWidth should never be %f)\n", maxWidth);
+               Sys_PrintfToTerminal("Con_WordWidthFunc: can't get here (maxWidth should never be %f)\n", maxWidth);
                // Note: this is NOT a Con_Printf, as it could print recursively
                return 0;
        }
@@ -2081,7 +2082,7 @@ qboolean GetMapList (const char *s, char *completedname, int completednamebuffer
                                for (;;)
                                {
                                        int l;
-                                       if (!COM_ParseToken_Simple(&data, false, false))
+                                       if (!COM_ParseToken_Simple(&data, false, false, true))
                                                break;
                                        if (com_token[0] == '{')
                                                continue;
@@ -2092,7 +2093,7 @@ qboolean GetMapList (const char *s, char *completedname, int completednamebuffer
                                        for (l = 0;l < (int)sizeof(keyname) - 1 && com_token[k+l] && !ISWHITESPACE(com_token[k+l]);l++)
                                                keyname[l] = com_token[k+l];
                                        keyname[l] = 0;
-                                       if (!COM_ParseToken_Simple(&data, false, false))
+                                       if (!COM_ParseToken_Simple(&data, false, false, true))
                                                break;
                                        if (developer_extra.integer)
                                                Con_DPrintf("key: %s %s\n", keyname, com_token);
@@ -2768,7 +2769,7 @@ void Con_CompleteCommandLine (void)
 
                                stringlistinit(&resultbuf);
                                stringlistinit(&dirbuf);
-                               while(COM_ParseToken_Simple(&patterns, false, false))
+                               while(COM_ParseToken_Simple(&patterns, false, false, true))
                                {
                                        fssearch_t *search;
                                        if(strchr(com_token, '/'))