From: divverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Date: Wed, 23 Dec 2009 20:58:12 +0000 (+0000)
Subject: do not TOTALLY block translation with csprogs, but restrict it to globals named dotra... 
X-Git-Tag: xonotic-v0.1.0preview~990
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=c0d54f21bcaba56302f5e9475b8182056f4841c0;p=xonotic%2Fdarkplaces.git

do not TOTALLY block translation with csprogs, but restrict it to globals named dotranslate_*.
In other progs, all names that do not start with notranslate_* can be translated.


git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9658 d7cf8633-e32d-0410-b094-e92efae38249
---

diff --git a/prvm_edict.c b/prvm_edict.c
index 0b7c6075..3af88f16 100644
--- a/prvm_edict.c
+++ b/prvm_edict.c
@@ -2303,10 +2303,11 @@ void PRVM_LoadProgs (const char * filename, int numrequiredfunc, char **required
 
 	PRVM_Init_Exec();
 
-	if(*prvm_language.string && !strcmp(PRVM_NAME, "client"))
+	if(*prvm_language.string)
 	// in CSQC we really shouldn't be able to change how stuff works... sorry for now
 	// later idea: include a list of authorized .po file checksums with the csprogs
 	{
+		qboolean deftrans = !!strcmp(PRVM_NAME, "client");
 		if(!strcmp(prvm_language.string, "dump"))
 		{
 			qfile_t *f = FS_OpenRealFile(va("%s.%s.po", filename, prvm_language.string), "w", false);
@@ -2317,7 +2318,7 @@ void PRVM_LoadProgs (const char * filename, int numrequiredfunc, char **required
 				{
 					const char *name;
 					name = PRVM_GetString(prog->globaldefs[i].s_name);
-					if(!name || strncmp(name, "notranslate_", 12))
+					if(deftrans ? (!name || strncmp(name, "notranslate_", 12)) : (name && !strncmp(name, "dotranslate_")))
 					if((prog->globaldefs[i].type & ~DEF_SAVEGLOBAL) == ev_string)
 					{
 						prvm_eval_t *val = (prvm_eval_t *)(prog->globals.generic + prog->globaldefs[i].ofs);
@@ -2342,7 +2343,7 @@ void PRVM_LoadProgs (const char * filename, int numrequiredfunc, char **required
 				{
 					const char *name;
 					name = PRVM_GetString(prog->globaldefs[i].s_name);
-					if(!name || strncmp(name, "notranslate_", 12))
+					if(deftrans ? (!name || strncmp(name, "notranslate_", 12)) : (name && !strncmp(name, "dotranslate_")))
 					if((prog->globaldefs[i].type & ~DEF_SAVEGLOBAL) == ev_string)
 					{
 						prvm_eval_t *val = (prvm_eval_t *)(prog->globals.generic + prog->globaldefs[i].ofs);