-if (!buffer && !(buffer = US malloc(size))) return NULL;
-if (!(buffer = getcwd(CS buffer, size))) return NULL;
-return realloc(CS buffer, strlen(buffer) + 1);
+if (!b && !(b = malloc(size))) return NULL;
+if (!(b = getcwd(b, size))) return NULL;
+return buffer ? buffer : realloc(b, strlen(b) + 1);