]> git.pond.sub.org Git - empserver/commitdiff
(uprnf): A print function must not change its text argument!
authorMarkus Armbruster <armbru@pond.sub.org>
Mon, 13 Jun 2005 18:28:10 +0000 (18:28 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Mon, 13 Jun 2005 18:28:10 +0000 (18:28 +0000)
src/lib/subs/pr.c

index 86fd78755423d46ce7243b83ea56fa08f73b2ed9..710e8aedab0a3e262ee2ce1c73451f0a48ed52a2 100644 (file)
@@ -73,13 +73,21 @@ pr(char *format, ...)
         pr_player(player, C_DATA, buf);
 }
 
         pr_player(player, C_DATA, buf);
 }
 
+/*
+ * Print UTF-8 text BUF to current player.
+ */
 void
 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*/
 }
 
 /*VARARGS*/