Plan 9 from Bell Labs’s /usr/web/sources/plan9/sys/src/libc/port/runestrdup.c
#include <u.h> #include <libc.h> Rune* runestrdup(Rune *s) { Rune *ns; ns = malloc(sizeof(Rune)*(runestrlen(s) + 1)); if(ns == 0) return 0; setmalloctag(ns, getcallerpc(&s)); return runestrcpy(ns, s); }