Not a major reworking but I did elimate the copy in each case.

How about strlcpy() portability? You're last post got me thinking about snprintf() as well... 
IIRC they are both only available in C99 and beyond. Also not sure if either is available in MSVC and haven't checked if the ``core`` supplies its own versions. Now you've peeked my interest, time to go spelunking :-)