From 5828c1a01ad212cd726a176e34f1d07be7410ff9 Mon Sep 17 00:00:00 2001 From: havoc Date: Fri, 25 Nov 2005 06:55:40 +0000 Subject: [PATCH] changed strzone, stuffcmd, and localcmd to be able to take multiple strings git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@5833 d7cf8633-e32d-0410-b094-e92efae38249 --- pr_cmds.c | 14 ++++++++------ prvm_cmds.c | 19 ++++++++++--------- svvm_cmds.c | 9 +++++---- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/pr_cmds.c b/pr_cmds.c index 0e84047b..f3610414 100644 --- a/pr_cmds.c +++ b/pr_cmds.c @@ -956,14 +956,14 @@ PF_stuffcmd Sends text over to the client's execution buffer -stuffcmd (clientent, value) +stuffcmd (clientent, value, ...) ================= */ void PF_stuffcmd (void) { int entnum; - const char *str; client_t *old; + char string[VM_STRINGTEMP_LENGTH]; entnum = PRVM_G_EDICTNUM(OFS_PARM0); if (entnum < 1 || entnum > svs.maxclients || !svs.clients[entnum-1].active) @@ -971,11 +971,11 @@ void PF_stuffcmd (void) Con_Print("Can't stuffcmd to a non-client\n"); return; } - str = PRVM_G_STRING(OFS_PARM1); + VM_VarString(1, string, sizeof(string)); old = host_client; host_client = svs.clients + entnum-1; - Host_ClientCommands ("%s", str); + Host_ClientCommands ("%s", string); host_client = old; } @@ -985,12 +985,14 @@ PF_localcmd Sends text to server console -localcmd (string) +localcmd (string, ...) ================= */ void PF_localcmd (void) { - Cbuf_AddText(PRVM_G_STRING(OFS_PARM0)); + char string[VM_STRINGTEMP_LENGTH]; + VM_VarString(0, string, sizeof(string)); + Cbuf_AddText(string); } /* diff --git a/prvm_cmds.c b/prvm_cmds.c index e82fa7f7..c0cc2c2a 100644 --- a/prvm_cmds.c +++ b/prvm_cmds.c @@ -466,15 +466,16 @@ VM_localcmd Sends text over to the client's execution buffer -[localcmd (string) or] -cmd (string) +[localcmd (string, ...) or] +cmd (string, ...) ================= */ void VM_localcmd (void) { + char string[VM_STRINGTEMP_LENGTH]; VM_SAFEPARMCOUNT(1,VM_localcmd); - - Cbuf_AddText(PRVM_G_STRING(OFS_PARM0)); + VM_VarString(0, string, sizeof(string)); + Cbuf_AddText(string); } /* @@ -1786,17 +1787,17 @@ VM_strzone string strzone(string s) ========= */ -//string(string s) strzone = #118; // makes a copy of a string into the string zone and returns it, this is often used to keep around a tempstring for longer periods of time (tempstrings are replaced often) +//string(string s, ...) strzone = #118; // makes a copy of a string into the string zone and returns it, this is often used to keep around a tempstring for longer periods of time (tempstrings are replaced often) void VM_strzone(void) { - const char *in; char *out; + char string[VM_STRINGTEMP_LENGTH]; VM_SAFEPARMCOUNT(1,VM_strzone); - in = PRVM_G_STRING(OFS_PARM0); - PRVM_G_INT(OFS_RETURN) = PRVM_AllocString(strlen(in) + 1, &out); - strcpy(out, in); + VM_VarString(0, string, sizeof(string)); + PRVM_G_INT(OFS_RETURN) = PRVM_AllocString(strlen(string) + 1, &out); + strcpy(out, string); } /* diff --git a/svvm_cmds.c b/svvm_cmds.c index 89b03104..e0965545 100644 --- a/svvm_cmds.c +++ b/svvm_cmds.c @@ -653,14 +653,14 @@ PF_stuffcmd Sends text over to the client's execution buffer -stuffcmd (clientent, value) +stuffcmd (clientent, value, ...) ================= */ void PF_stuffcmd (void) { int entnum; - const char *str; client_t *old; + char string[VM_STRINGTEMP_LENGTH]; entnum = PRVM_G_EDICTNUM(OFS_PARM0); if (entnum < 1 || entnum > svs.maxclients || !svs.clients[entnum-1].active) @@ -668,11 +668,12 @@ void PF_stuffcmd (void) Con_Print("Can't stuffcmd to a non-client\n"); return; } - str = PRVM_G_STRING(OFS_PARM1); + + VM_VarString(1, string, sizeof(string)); old = host_client; host_client = svs.clients + entnum-1; - Host_ClientCommands ("%s", str); + Host_ClientCommands ("%s", string); host_client = old; } -- 2.39.2