Return to xstrdup.c CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libiconv / gnulib-local / lib |
1.1 ! misho 1: /* xstrdup.c -- copy a string with out of memory checking ! 2: Copyright (C) 1990, 1996, 2000-2003, 2005-2006 Free Software Foundation, Inc. ! 3: ! 4: This program is free software: you can redistribute it and/or modify ! 5: it under the terms of the GNU General Public License as published by ! 6: the Free Software Foundation; either version 3 of the License, or ! 7: (at your option) any later version. ! 8: ! 9: This program is distributed in the hope that it will be useful, ! 10: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 11: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 12: GNU General Public License for more details. ! 13: ! 14: You should have received a copy of the GNU General Public License ! 15: along with this program. If not, see <http://www.gnu.org/licenses/>. */ ! 16: ! 17: #include <config.h> ! 18: ! 19: /* Specification. */ ! 20: #include "xalloc.h" ! 21: ! 22: #include <string.h> ! 23: ! 24: /* Return a newly allocated copy of the N bytes of memory starting at P. */ ! 25: ! 26: void * ! 27: xmemdup (const void *p, size_t n) ! 28: { ! 29: void *q = xmalloc (n); ! 30: memcpy (q, p, n); ! 31: return q; ! 32: } ! 33: ! 34: /* Return a newly allocated copy of STRING. */ ! 35: ! 36: char * ! 37: xstrdup (const char *string) ! 38: { ! 39: return strcpy (XNMALLOC (strlen (string) + 1, char), string); ! 40: }