/*	Copyright (C) 2005 Garrett A. Kajmowicz

	This file is part of the uClibc++ Library.
	This library is free software; you can redistribute it and/or
	modify it under the terms of the GNU Lesser General Public
	License as published by the Free Software Foundation; either
	version 2.1 of the License, or (at your option) any later version.

	This library 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
	Lesser General Public License for more details.

	You should have received a copy of the GNU Lesser General Public
	License along with this library; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#include <cstddef>
#include <string.h>

#ifndef __HEADER_CSTRING
#define __HEADER_CSTRING 1


namespace std{

	using ::memchr;
	using ::memcmp;
	using ::memcpy;
	using ::memmove;
	using ::memset;
	using ::strcat;
	using ::strchr;
	using ::strcmp;
	using ::strcoll;
	using ::strcpy;
	using ::strcspn;
	using ::strerror;
	using ::strlen;
	using ::strncat;
	using ::strncmp;
	using ::strncpy;
	using ::strpbrk;
	using ::strrchr;
	using ::strspn;
	using ::strstr;
	using ::strtok;
	using ::strxfrm;

#ifndef __CORRECT_ISO_CPP_STRING_H_PROTO
	//Extra definitions required in c++ spec

	inline void* memchr(void* s, int c, size_t n){
		return memchr(const_cast<const void *>(s), c, n);
	}

	inline char* strchr(char* s, int c){
		return strchr(const_cast<const char *>(s), c);
	}

	inline char* strpbrk(char* s1, const char* s2){
		return strpbrk(const_cast<const char *>(s1), s2);
	}

	inline char* strrchr(char* s, int c){
		return strrchr(const_cast<const char *>(s), c);
	}

	inline char* strstr(char* s1, const char* s2){
		return strstr(const_cast<const char *>(s1), s2);
	}
#endif
}

#endif

