Not to open a can of worms, but I things like this and it makes me ask two questions:

* Is there a reason that Vim chose to use `char_u` everywhere for paths?  If not, then we should probably change them to `char` and get rid of the unnecessary casts.  If there was a reason, we should probably use `char_u` in the helper functions and--again--avoid the unnecessary casts.

* The other question is what did others do?  And I can see we have a mix of `char *` and `char_u *` on `os/fs.c`.

I think we should figure out what the right path to take is before adding to the confusion (that's not your fault @stefan991, we probably should have caught this discrepancy sooner).

Thoughts?