~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to gnu/strndup.c

  • Committer: Monty Taylor
  • Date: 2008-12-08 01:14:34 UTC
  • mto: This revision was merged to the branch mainline in revision 670.
  • Revision ID: monty@inaugust.com-20081208011434-5e5m8nwqruhap24c
Reverted gnulib changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* A replacement function, for systems that lack strndup.
2
 
 
3
 
   Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2005, 2006, 2007
4
 
   Free Software Foundation, Inc.
5
 
 
6
 
   This program is free software; you can redistribute it and/or modify it
7
 
   under the terms of the GNU Lesser General Public License as published by the
8
 
   Free Software Foundation; either version 2.1, or (at your option) any
9
 
   later version.
10
 
 
11
 
   This program is distributed in the hope that it will be useful,
12
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 
   GNU Lesser General Public License for more details.
15
 
 
16
 
   You should have received a copy of the GNU Lesser General Public License
17
 
   along with this program; if not, write to the Free Software Foundation,
18
 
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
19
 
 
20
 
#include <config.h>
21
 
 
22
 
#include <string.h>
23
 
 
24
 
#include <stdlib.h>
25
 
 
26
 
char *
27
 
strndup (char const *s, size_t n)
28
 
{
29
 
  size_t len = strnlen (s, n);
30
 
  char *new = malloc (len + 1);
31
 
 
32
 
  if (new == NULL)
33
 
    return NULL;
34
 
 
35
 
  new[len] = '\0';
36
 
  return memcpy (new, s, len);
37
 
}