/******************************************************************************

	COPYRIGHT(C) JONAS 'SORTIE' TERMANSEN 2011.

	This file is part of Sortix.

	Sortix 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 3 of the License, or (at your option) any later
	version.

	Sortix 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 Sortix. If not, see <http://www.gnu.org/licenses/>.

	string.h
	Useful functions for manipulating strings.

******************************************************************************/

#ifndef LIBMAXSI_STRING_H
#define LIBMAXSI_STRING_H

namespace LibMaxsi
{
	namespace String
	{
		inline size_t Length(const char* String)
		{
			size_t Result = 0;

			while ( String[Result] != '\0' )
			{ 
				Result++;
			}

			return Result;
		}

		inline void Copy(char* Dest, const char* Src)
		{
			while ( *Src != '\0' )
			{ 
				*Dest = *Src;
				Dest++; Src++;
			}
		}

		inline void Cat(char* Dest, const char* Src)
		{
			while ( *Dest != '\0' ) { Dest++; }

			while ( *Src != '\0' )
			{ 
				*Dest = *Src;
				Dest++; Src++;
			}
		}

		inline int Compare(const char* A, const char* B)
		{
			while ( true )
			{
				if ( *A == '\0' && *B == '\0' ) { return 0; }
				if ( *A < *B ) { return -1; }
				if ( *A > *B ) { return 1; }
				A++; B++;
			}
		}
	}
}

#endif

