Fawkes API Fawkes Development Version
strndup.cpp
1
2/***************************************************************************
3 * strndup.cpp - strndup alternative for systems that don't have it
4 *
5 * Created: Tue Mar 08 00:00:27 2011
6 * Copyright 2011 Tim Niemueller [www.niemueller.de]
7 *
8 ****************************************************************************/
9
10/* This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version. A runtime exception applies to
14 * this software (see LICENSE.GPL_WRE file mentioned below for details).
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Library General Public License for more details.
20 *
21 * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22 */
23
24#include <utils/misc/strndup.h>
25
26#ifdef COMPAT_STRNDUP_
27char *
28strndup(const char *s, size_t n)
29{
30 size_t l = strlen(s);
31
32 if (l <= n)
33 return strdup(s);
34
35 char *rv = (char *)malloc(n + 1);
36 strncpy(rv, s, n);
37 rv[n] = 0;
38 return rv;
39}
40#endif