Does this return char * or const char *? Does the caller need to free public_txt?