From: MirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Date: Thu, 14 Apr 2011 13:10:27 +0000 (+0300)
Subject: Port a xonotic feature with UTF-8 characters
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=4f4ea316d76e12ad769c476d2072228089c56fc5;p=voretournament%2Fvoretournament.git

Port a xonotic feature with UTF-8 characters
---

diff --git a/data/defaultVT.cfg b/data/defaultVT.cfg
index e595ba89..86b45779 100644
--- a/data/defaultVT.cfg
+++ b/data/defaultVT.cfg
@@ -1662,6 +1662,9 @@ r_fakelight 1
 // equalize looks better than fullbright
 r_equalize_entities_fullbright 1
 
+// UTF-8
+utf8_enable 1
+
 // safe font defaults
 r_font_hinting 1
 r_font_disable_freetype 0
diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc
index 845ad8be..589f6490 100644
--- a/data/qcsrc/server/cl_client.qc
+++ b/data/qcsrc/server/cl_client.qc
@@ -2682,9 +2682,16 @@ float isInvisibleString(string s)
 		switch(c)
 		{
 			case 0:
-			case 32:
-			case 160:
+			case 32: // space
 				break;
+			case 192: // charmap space
+				if (!cvar("utf8_enable"))
+					break;
+				return FALSE;
+			case 160: // space in unicode fonts
+			case 0xE000 + 192: // utf8 charmap space
+				if (cvar("utf8_enable"))
+					break;
 			default:
 				return FALSE;
 		}
diff --git a/data/qcsrc/server/extensions.qh b/data/qcsrc/server/extensions.qh
index ab96b860..46d455ee 100644
--- a/data/qcsrc/server/extensions.qh
+++ b/data/qcsrc/server/extensions.qh
@@ -436,6 +436,16 @@ void(entity e, entity tagentity, string tagname) setattachment = #443; // attach
 //description:
 //global skybox for the map, can not be changed by QC
 
+//DP_UTF8
+//idea: Blub\0, divVerent
+//darkplaces implementation: Blub\0
+//cvar definitions:
+//   utf8_enable: enable utf8 encoding
+//description: utf8 characters are allowed inside cvars, protocol strings, files, progs strings, etc., 
+//and count as 1 char for string functions like strlen, substring, etc.
+// note: utf8_enable is run-time cvar, could be changed during execution
+// note: beware that str2chr() could return value bigger than 255 once utf8 is enabled
+
 //DP_HALFLIFE_MAP
 //idea: LordHavoc
 //darkplaces implementation: LordHavoc