From: terencehill Date: Thu, 27 Aug 2015 14:20:37 +0000 (+0200) Subject: Add a workaround to make work properly the tell command with utf8 player names X-Git-Tag: xonotic-v0.8.2~1987^2~10 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=380028abba778c3335632833d9d15e917bab6f89;p=xonotic%2Fxonotic-data.pk3dir.git Add a workaround to make work properly the tell command with utf8 player names --- diff --git a/qcsrc/server/command/cmd.qc b/qcsrc/server/command/cmd.qc index 24187b172..f95573033 100644 --- a/qcsrc/server/command/cmd.qc +++ b/qcsrc/server/command/cmd.qc @@ -717,7 +717,18 @@ void ClientCommand_tell(float request, float argc, string command) { if(tell_to != self) // and we're allowed to send to them :D { - Say(self, false, tell_to, substring(command, argv_start_index(next_token), argv_end_index(-1) - argv_start_index(next_token)), true); + // workaround for argv indexes indexing ascii chars instead of utf8 chars + // In this case when the player name contains utf8 chars + // the message gets partially trimmed in the beginning. + // Potentially this bug affects any substring call that uses + // argv_start_index and argv_end_index. + + string utf8_enable_save = cvar_string("utf8_enable"); + cvar_set("utf8_enable", "0"); + string msg = substring(command, argv_start_index(next_token), argv_end_index(-1) - argv_start_index(next_token)); + cvar_set("utf8_enable", utf8_enable_save); + + Say(self, false, tell_to, msg, true); return; } else { print_to(self, "You can't ^2tell^7 a message to yourself."); return; }