/* G-Cows - scripting language for creation of web sites Copyright (C) 2002, 2003, 2004, 2005, 2006 Andrea Sozzi This file is part of G-Cows. G-Cows is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. G-Cows is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "Xmalloc.H" #include #include #include #include "error.H" using namespace std; char * xstrdup (const char *source) { int length = strlen (source); char *pool = new char [length + 1]; if (!pool) Msg::inst()->fatal ("memory exausted"); *(strncpy (pool, source, length) + length) = '\0'; return pool; } char * xstrndup (const char *source, size_t length) { char *pool = new char [length+1]; if (!pool) Msg::inst()->fatal ("memory exausted"); *(strncpy (pool, source, length+1) + length)='\0'; return pool; } char * xstrcat (const char *string1, const char *string2) { int length1 = strlen (string1); int length2 = strlen (string2); char *pool = new char [length1 + length2 + 1]; if (!pool) Msg::inst()->fatal ("memory exausted"); strncpy (pool, string1, length1); *(strncpy (pool + length1, string2, length2) + length2) = '\0'; return pool; } char *itoa (int integer) { int length = (integer==0) ? 1 : (int) (log10 (abs(integer)) + ((integer>0)?1:2)); char *pool = new char [length + 1]; if (!pool) Msg::inst()->fatal ("memory exausted"); snprintf (pool, length + 1, "%d", integer); return pool; }