[BACK]Return to strndup.c CVS log [TXT][DIR] Up to [local] / ircnowd / src / portab

Annotation of ircnowd/src/portab/strndup.c, Revision 1.1

1.1     ! tomglok     1: /*
        !             2:  * ngIRCd -- The Next Generation IRC Daemon
        !             3:  */
        !             4:
        !             5: #include "portab.h"
        !             6:
        !             7: /**
        !             8:  * @file
        !             9:  * strndup() implementation. Public domain.
        !            10:  */
        !            11:
        !            12: #ifndef HAVE_STRNDUP
        !            13:
        !            14: #include <string.h>
        !            15: #include <stdlib.h>
        !            16: #include <sys/types.h>
        !            17:
        !            18: GLOBAL char *
        !            19: strndup(const char *s, size_t maxlen)
        !            20: {
        !            21:        char *dup;
        !            22:        size_t len = strlen(s);
        !            23:
        !            24:        if (len > maxlen)
        !            25:                len = maxlen;
        !            26:        len++;
        !            27:        dup = malloc(len);
        !            28:        if (dup)
        !            29:                strlcpy(dup, s, len);
        !            30:
        !            31:        return dup;
        !            32: }
        !            33:
        !            34: #endif

CVSweb