diff options
author | Vikas Gorur <vikas@zresearch.com> | 2009-02-18 17:36:07 +0530 |
---|---|---|
committer | Vikas Gorur <vikas@zresearch.com> | 2009-02-18 17:36:07 +0530 |
commit | 77adf4cd648dce41f89469dd185deec6b6b53a0b (patch) | |
tree | 02e155a5753b398ee572b45793f889b538efab6b /argp-standalone/strndup.c | |
parent | f3b2e6580e5663292ee113c741343c8a43ee133f (diff) |
Added all files
Diffstat (limited to 'argp-standalone/strndup.c')
-rw-r--r-- | argp-standalone/strndup.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/argp-standalone/strndup.c b/argp-standalone/strndup.c new file mode 100644 index 00000000000..4147b7a2051 --- /dev/null +++ b/argp-standalone/strndup.c @@ -0,0 +1,34 @@ +/* strndup.c + * + */ + +/* Written by Niels Möller <nisse@lysator.liu.se> + * + * This file is hereby placed in the public domain. + */ + +#include <stdlib.h> +#include <string.h> + +char * +strndup (const char *, size_t); + +char * +strndup (const char *s, size_t size) +{ + char *r; + char *end = memchr(s, 0, size); + + if (end) + /* Length + 1 */ + size = end - s + 1; + + r = malloc(size); + + if (size) + { + memcpy(r, s, size-1); + r[size-1] = '\0'; + } + return r; +} |