From 4f4ea316d76e12ad769c476d2072228089c56fc5 Mon Sep 17 00:00:00 2001 From: MirceaKitsune Date: Thu, 14 Apr 2011 16:10:27 +0300 Subject: [PATCH] Port a xonotic feature with UTF-8 characters --- data/defaultVT.cfg | 3 +++ data/qcsrc/server/cl_client.qc | 11 +++++++++-- data/qcsrc/server/extensions.qh | 10 ++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) 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 -- 2.39.2