Subversion Repositories WoWGM

Rev

Rev 20 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 tristanc 1
#include "../H/STPL.h"
2
 
9 tristanc 3
 
3 tristanc 4
/****************************************************************************
5
*
6
*	Private functions
7
*
8
***/
9 tristanc 9
 
3 tristanc 10
//===========================================================================
11
int ToLower(int ch)
12
{
9 tristanc 13
	if (ch > 64 && ch < 91)
14
		ch+=32;
3 tristanc 15
	return ch;
16
}
17
 
18
//===========================================================================
19
int ToUpper(int ch)
20
{
9 tristanc 21
	if (ch > 96 && ch < 123)
22
		ch-=32;
3 tristanc 23
	return ch;
24
}
25
 
26
 
27
/****************************************************************************
28
*
29
*	External functions
30
*
31
***/
9 tristanc 32
 
3 tristanc 33
//===========================================================================
9 tristanc 34
char const* SStrChr(char const* string, char ch)
3 tristanc 35
{
9 tristanc 36
	// TODO: ASSERT(string);
37
	if (*string == 0)
38
		return 0;
39
	char const* copy = string;
40
	char currChar = *string;
41
	while (currChar != ch) {
42
		currChar = *++copy;
43
		if (currChar == 0)
44
			return 0;
45
	}
46
	return copy;
47
}
48
 
49
//===========================================================================
50
char* SStrChr(char* string, char ch)
51
{
52
	// TODO: ASSERT(string);
53
	if (*string == 0)
54
		return 0;
55
	char* copy = string;
56
	char currChar = *string;
57
	while (currChar != ch) {
58
		currChar = *++copy;
59
		if (currChar == 0)
60
			return 0;
61
	}
62
	return copy;
63
}
64
 
65
//===========================================================================
66
extern char const* SStrChrR(char const* string, char ch)
67
{
68
	return 0;
69
}
70
 
71
//===========================================================================
72
extern char* SStrChrR(char* string, char ch)
73
{
74
	return 0;
75
}
76
 
77
//===========================================================================
78
extern DWORD SStrCopy(char* dest, char const* source, DWORD destsize)
79
{
3 tristanc 80
	// TODO: ASSERT(dest);
81
	// TODO: ASSERT(source);
13 tristanc 82
	for (DWORD length = 0; length < destsize; length++)
3 tristanc 83
	{
13 tristanc 84
		dest[length] = source[length];
14 tristanc 85
		if (source[length] == '\0')
13 tristanc 86
			return length;
3 tristanc 87
	}
13 tristanc 88
	return 0;
3 tristanc 89
}
90
 
91
//===========================================================================
9 tristanc 92
extern int SStrCmp(char const* string1, char const* string2, DWORD maxchars)
3 tristanc 93
{
94
	// TODO: ASSERT(string1);
95
	// TODO: ASSERT(string2);
96
	return 0;
97
}
98
 
99
//===========================================================================
9 tristanc 100
extern int SStrCmpI(char const* string1, char const* string2, DWORD maxchars)
3 tristanc 101
{
102
	// TODO: ASSERT(string1);
103
	// TODO: ASSERT(string2);
27 tristanc 104
  int result = stricmp(string1, string2);
105
	return result;
3 tristanc 106
}
107
 
108
//===========================================================================
9 tristanc 109
inline DWORD SStrLen(char const* string)
3 tristanc 110
{
111
	// TODO: ASSERT(string);
112
 
113
	char const* i;
114
	for (i = string; *i; ++i);
9 tristanc 115
	return static_cast<DWORD>(i - string);
3 tristanc 116
}
117
 
118
//===========================================================================
9 tristanc 119
inline DWORD SStrLen(unsigned short const* string)
3 tristanc 120
{
121
	// TODO: ASSERT(string);
122
 
123
	unsigned short const* i;
124
	for (i = string; *i; ++i);
9 tristanc 125
	return static_cast<DWORD>(i - string);
3 tristanc 126
}
127
 
128
//===========================================================================
129
void SStrLower(char* string)
130
{
131
	// TODO: ASSERT(string);
132
	while(*string)
133
	{
134
		*string = ToLower(*string);
135
		++string;
136
	}
137
}
138
 
139
//===========================================================================
18 tristanc 140
int SStrToInt(char const* string)
141
{
142
	char const* copy = string;
143
	// TODO: ASSERT(string);
144
	if (*string == '-') {
145
		copy = string + 1;
146
	}
147
	int result = *copy - 48;
148
	if (result >= 10) {
149
		result = 0;
150
	}
151
	else
152
	{
20 tristanc 153
		char const* next = (copy + 1);
154
		for (int i = copy[1] - 48; i < 10 && i >= 0; i = *next - 48 )
18 tristanc 155
		{
20 tristanc 156
			++next;
18 tristanc 157
			result = i + 10 * result;
158
		}
159
	}
160
	if ( *string == '-' )
161
	{
162
		return -result;
163
	}
164
	return result;
165
}
166
 
167
//===========================================================================
3 tristanc 168
void SStrUpper(char* string)
169
{
170
	// TODO: ASSERT(string);
171
	while(*string)
172
	{
173
		*string = ToUpper(*string);
174
		++string;
175
	}
176
}