* (including its null terminating character).
*
* This function returns a newly allocated string which the caller
* should free() when finished.
*/
char *
* (including its null terminating character).
*
* This function returns a newly allocated string which the caller
* should free() when finished.
*/
char *