I used char* as type for char pointers in this functions, which caused that i had to update the function calls to use the right types. If I choose char_u* I would have to update other function calls. The old macros mch_getenv and mch_setenv included typecasts wich did the work, wich is not possible with real functions.

should new code use char* or char_u*?
char_u* has the disadvantage that we have to typecast every string literal and libuv uses char* as well.