xref: /plan9/sys/src/libString/s_copy.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
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 Colombier s_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