const char *Dsymbol::toPrettyChars(bool QualifyTypes) { Dsymbol *p; char *s; char *q; size_t len; //printf("Dsymbol::toPrettyChars() '%s'\n", toChars()); if (!parent) return toChars(); len = 0; for (p = this; p; p = p->parent) len += strlen(QualifyTypes ? p->toPrettyCharsHelper() : p->toChars()) + 1; s = (char *)mem.malloc(len); q = s + len - 1; *q = 0; for (p = this; p; p = p->parent) { char *t = QualifyTypes ? p->toPrettyCharsHelper() : p->toChars(); len = strlen(t); q -= len; memcpy(q, t, len); if (q == s) break; q--; *q = '.'; } return s; }