From: Markus Armbruster Date: Mon, 13 Jun 2005 18:28:10 +0000 (+0000) Subject: (uprnf): A print function must not change its text argument! X-Git-Tag: v4.2.21~43 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=1bf1b5b303424c9f1779a3f27c3020f884d7b09f (uprnf): A print function must not change its text argument! --- diff --git a/src/lib/subs/pr.c b/src/lib/subs/pr.c index 86fd78755..710e8aeda 100644 --- a/src/lib/subs/pr.c +++ b/src/lib/subs/pr.c @@ -73,13 +73,21 @@ pr(char *format, ...) pr_player(player, C_DATA, buf); } +/* + * Print UTF-8 text BUF to current player. + */ void -uprnf(char *buf /* buf is message text */) +uprnf(char *buf) { - if (!(player->flags & PF_UTF8)) - copy_utf8_to_ascii_no_funny(buf, buf); + char *p; - pr_player(player, C_DATA, buf); + if (!(player->flags & PF_UTF8)) { + p = malloc(strlen(buf) + 1); + copy_utf8_to_ascii_no_funny(p, buf); + pr_player(player, C_DATA, p); + free(p); + } else + pr_player(player, C_DATA, buf); } /*VARARGS*/