|  | Cleanname takes a filename and by lexical processing only returns
    the shortest string that names the same (possibly hypothetical)
    file. It eliminates multiple and trailing slashes, and it lexically
    interprets . and .. directory components in the name. The string
    is overwritten in place. 
    
    
    The shortest string cleanname can return is two bytes: the null-terminated
    string ".". Therefore filename must contain room for at least two
    bytes. 
 |