'new' evaluates all its arguments now.
Some fixes for PC

PC still doesn't work yet.
More PC fixes.
Fixed Mac version after breaking it with PC fixes - oops!
Remove the need for a null terminated buffer.

We create a null terminated buffer by making a copy.