180ee5cbfSDavid du Colombier #include <u.h> 280ee5cbfSDavid du Colombier #include <libc.h> 380ee5cbfSDavid du Colombier #include "String.h" 480ee5cbfSDavid du Colombier 580ee5cbfSDavid du Colombier 680ee5cbfSDavid du Colombier /* return a String containing a copy of the passed char array */ 780ee5cbfSDavid du Colombier extern String* s_copy(char * cp)880ee5cbfSDavid du Colombiers_copy(char *cp) 980ee5cbfSDavid du Colombier { 1080ee5cbfSDavid du Colombier String *sp; 1180ee5cbfSDavid du Colombier int len; 1280ee5cbfSDavid du Colombier 1380ee5cbfSDavid du Colombier len = strlen(cp)+1; 1480ee5cbfSDavid du Colombier sp = s_newalloc(len); 15*9a747e4fSDavid du Colombier setmalloctag(sp, getcallerpc(&cp)); 1680ee5cbfSDavid du Colombier strcpy(sp->base, cp); 1780ee5cbfSDavid du Colombier sp->ptr = sp->base + len - 1; /* point to 0 terminator */ 1880ee5cbfSDavid du Colombier return sp; 1980ee5cbfSDavid du Colombier } 20