This is arguably a little churny, but I suspect it doesn't matter all that much as most of the churn are in various declarations. This change may serve two purposes:
- Document the intention of vn_fullpath to not actually modify whatever string retbuf may point to, and
- Allow callers a little more flexibility in what they're passing to retbuf.
As a side-effect, it also takes care of a couple of -Wwrite-strings issues in the process as a common pattern is to initialize a local retbuf to a literal string as a default value before passing the address to vn_fullpath.