Ported to Borland compiler - string interpreted as null-terminated which is wrong; should be able to contain nulls so I had to write my own copy routine - also Borland implements archaic convention that initialising with "= *this" takes over memory management, so replaced all instances