]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - host_cmd.c
Xonotic's travis script: Build the Linux binaries against SDL 2.0.4.
[xonotic/darkplaces.git] / host_cmd.c
index 2d3d4dd06c051694940a635c7d51244ef5154e3f..10012cc9586d49fed0471cf9a8d404e16a8e1511 100644 (file)
@@ -1122,7 +1122,10 @@ static void Host_Name_f (void)
 
        if (Cmd_Argc () == 1)
        {
-               Con_Printf("name: %s\n", cl_name.string);
+               if (cmd_source == src_command)
+               {
+                       Con_Printf("name: %s\n", cl_name.string);
+               }
                return;
        }
 
@@ -1249,7 +1252,10 @@ static void Host_Playermodel_f (void)
 
        if (Cmd_Argc () == 1)
        {
-               Con_Printf("\"playermodel\" is \"%s\"\n", cl_playermodel.string);
+               if (cmd_source == src_command)
+               {
+                       Con_Printf("\"playermodel\" is \"%s\"\n", cl_playermodel.string);
+               }
                return;
        }
 
@@ -1306,7 +1312,10 @@ static void Host_Playerskin_f (void)
 
        if (Cmd_Argc () == 1)
        {
-               Con_Printf("\"playerskin\" is \"%s\"\n", cl_playerskin.string);
+               if (cmd_source == src_command)
+               {
+                       Con_Printf("\"playerskin\" is \"%s\"\n", cl_playerskin.string);
+               }
                return;
        }
 
@@ -1634,8 +1643,11 @@ static void Host_Color_f(void)
 
        if (Cmd_Argc() == 1)
        {
-               Con_Printf("\"color\" is \"%i %i\"\n", cl_color.integer >> 4, cl_color.integer & 15);
-               Con_Print("color <0-15> [0-15]\n");
+               if (cmd_source == src_command)
+               {
+                       Con_Printf("\"color\" is \"%i %i\"\n", cl_color.integer >> 4, cl_color.integer & 15);
+                       Con_Print("color <0-15> [0-15]\n");
+               }
                return;
        }
 
@@ -1653,8 +1665,11 @@ static void Host_TopColor_f(void)
 {
        if (Cmd_Argc() == 1)
        {
-               Con_Printf("\"topcolor\" is \"%i\"\n", (cl_color.integer >> 4) & 15);
-               Con_Print("topcolor <0-15>\n");
+               if (cmd_source == src_command)
+               {
+                       Con_Printf("\"topcolor\" is \"%i\"\n", (cl_color.integer >> 4) & 15);
+                       Con_Print("topcolor <0-15>\n");
+               }
                return;
        }
 
@@ -1665,8 +1680,11 @@ static void Host_BottomColor_f(void)
 {
        if (Cmd_Argc() == 1)
        {
-               Con_Printf("\"bottomcolor\" is \"%i\"\n", cl_color.integer & 15);
-               Con_Print("bottomcolor <0-15>\n");
+               if (cmd_source == src_command)
+               {
+                       Con_Printf("\"bottomcolor\" is \"%i\"\n", cl_color.integer & 15);
+                       Con_Print("bottomcolor <0-15>\n");
+               }
                return;
        }
 
@@ -1681,8 +1699,11 @@ static void Host_Rate_f(void)
 
        if (Cmd_Argc() != 2)
        {
-               Con_Printf("\"rate\" is \"%i\"\n", cl_rate.integer);
-               Con_Print("rate <bytespersecond>\n");
+               if (cmd_source == src_command)
+               {
+                       Con_Printf("\"rate\" is \"%i\"\n", cl_rate.integer);
+                       Con_Print("rate <bytespersecond>\n");
+               }
                return;
        }
 
@@ -1772,7 +1793,12 @@ static void Host_Pause_f (void)
        }
        
        sv.paused ^= 1;
-       SV_BroadcastPrintf("%s %spaused the game\n", host_client->name, sv.paused ? "" : "un");
+       if (cmd_source != src_command)
+               SV_BroadcastPrintf("%s %spaused the game\n", host_client->name, sv.paused ? "" : "un");
+       else if(*(sv_adminnick.string))
+               SV_BroadcastPrintf("%s %spaused the game\n", sv_adminnick.string, sv.paused ? "" : "un");
+       else
+               SV_BroadcastPrintf("%s %spaused the game\n", hostname.string, sv.paused ? "" : "un");
        // send notification to all clients
        MSG_WriteByte(&sv.reliable_datagram, svc_setpause);
        MSG_WriteByte(&sv.reliable_datagram, sv.paused);
@@ -1793,7 +1819,10 @@ static void Host_PModel_f (void)
 
        if (Cmd_Argc () == 1)
        {
-               Con_Printf("\"pmodel\" is \"%s\"\n", cl_pmodel.string);
+               if (cmd_source == src_command)
+               {
+                       Con_Printf("\"pmodel\" is \"%s\"\n", cl_pmodel.string);
+               }
                return;
        }
        i = atoi(Cmd_Argv(1));
@@ -2762,7 +2791,6 @@ static void Host_FullInfo_f (void) // credit: taken from QuakeWorld
 {
        char key[512];
        char value[512];
-       char *o;
        const char *s;
 
        if (Cmd_Argc() != 2)
@@ -2776,27 +2804,33 @@ static void Host_FullInfo_f (void) // credit: taken from QuakeWorld
                s++;
        while (*s)
        {
-               o = key;
-               while (*s && *s != '\\')
-                       *o++ = *s++;
-               *o = 0;
-
+               size_t len = strcspn(s, "\\");
+               if (len >= sizeof(key)) {
+                       len = sizeof(key) - 1;
+               }
+               strlcpy(key, s, len + 1);
+               s += len;
                if (!*s)
                {
                        Con_Printf ("MISSING VALUE\n");
                        return;
                }
+               ++s; // Skip over backslash.
 
-               o = value;
-               s++;
-               while (*s && *s != '\\')
-                       *o++ = *s++;
-               *o = 0;
-
-               if (*s)
-                       s++;
+               len = strcspn(s, "\\");
+               if (len >= sizeof(value)) {
+                       len = sizeof(value) - 1;
+               }
+               strlcpy(value, s, len + 1);
 
                CL_SetInfo(key, value, false, false, false, false);
+
+               s += len;
+               if (!*s)
+               {
+                       break;
+               }
+               ++s; // Skip over backslash.
        }
 }