Blame


1 8b17579e 2005-04-16 fw /*
2 8b17579e 2005-04-16 fw * ngIRCd -- The Next Generation IRC Daemon
3 8b17579e 2005-04-16 fw *
4 8b17579e 2005-04-16 fw * strdup() implementation. Public domain.
5 8b17579e 2005-04-16 fw *
6 8b17579e 2005-04-16 fw * $Id: strdup.c,v 1.1 2005/04/16 09:20:53 fw Exp $
7 8b17579e 2005-04-16 fw */
8 8b17579e 2005-04-16 fw
9 8b17579e 2005-04-16 fw #include "portab.h"
10 8b17579e 2005-04-16 fw
11 8b17579e 2005-04-16 fw #include "imp.h"
12 8b17579e 2005-04-16 fw #include <string.h>
13 8b17579e 2005-04-16 fw #include <stdlib.h>
14 8b17579e 2005-04-16 fw #include <sys/types.h>
15 8b17579e 2005-04-16 fw
16 8b17579e 2005-04-16 fw #include "exp.h"
17 8b17579e 2005-04-16 fw
18 8b17579e 2005-04-16 fw #ifndef HAVE_STRDUP
19 8b17579e 2005-04-16 fw
20 8b17579e 2005-04-16 fw GLOBAL char *
21 8b17579e 2005-04-16 fw strdup( const char *s )
22 8b17579e 2005-04-16 fw {
23 8b17579e 2005-04-16 fw char *dup;
24 8b17579e 2005-04-16 fw size_t len = strlen( s );
25 8b17579e 2005-04-16 fw size_t alloc = len + 1;
26 8b17579e 2005-04-16 fw
27 8b17579e 2005-04-16 fw if (len >= alloc ) return NULL;
28 8b17579e 2005-04-16 fw dup = malloc( alloc );
29 8b17579e 2005-04-16 fw if (dup) strlcpy(dup, s, alloc );
30 8b17579e 2005-04-16 fw
31 8b17579e 2005-04-16 fw return dup;
32 8b17579e 2005-04-16 fw }
33 8b17579e 2005-04-16 fw
34 8b17579e 2005-04-16 fw #endif
35 8b17579e 2005-04-16 fw