Few changes

This commit is contained in:
David Anderson 2005-08-02 07:01:25 +00:00
parent cc393d0e8d
commit 38da105ac1
3 changed files with 43 additions and 25 deletions

View File

@ -32,6 +32,8 @@
#ifndef _INCLUDE_CSTRING_H #ifndef _INCLUDE_CSTRING_H
#define _INCLUDE_CSTRING_H #define _INCLUDE_CSTRING_H
#include <string.h>
//by David "BAILOPAN" Anderson //by David "BAILOPAN" Anderson
class String class String
{ {
@ -40,7 +42,7 @@ public:
{ {
v = NULL; v = NULL;
a_size = 0; a_size = 0;
assign(""); //assign("");
} }
~String() ~String()
@ -63,19 +65,19 @@ public:
assign(src.c_str()); assign(src.c_str());
} }
const char *c_str() { return v; } const char *c_str() { return v?v:""; }
const char *c_str() const { return v; } const char *c_str() const { return v?v:""; }
void append(const char *t) void append(const char *t)
{ {
Grow(strlen(v) + strlen(t) + 1); Grow(size() + strlen(t) + 1);
strcat(v, t); strcat(v, t);
} }
void append(const char c) void append(const char c)
{ {
size_t len = strlen(v); size_t len = size();
Grow(len + 2); Grow(len + 2);
v[len] = c; v[len] = c;
v[len + 1] = '\0'; v[len + 1] = '\0';
@ -104,17 +106,24 @@ public:
void clear() void clear()
{ {
v[0] = '\0'; if (v)
v[0] = '\0';
} }
int compare (const char *d) int compare (const char *d)
{ {
return strcmp(v, d); if (!v)
return strcmp("", d);
else
return strcmp(v, d);
} }
//Added this for amxx inclusion //Added this for amxx inclusion
bool empty() bool empty()
{ {
if (!v)
return false;
if (v[0] == '\0') if (v[0] == '\0')
return true; return true;
@ -123,23 +132,21 @@ public:
size_t size() size_t size()
{ {
return strlen(v); if (v)
} return strlen(v);
else
const char * _fread(FILE *fp) return 0;
{
Grow(512, false);
char *ret = fgets(v, 511, fp);
return ret;
} }
int find(const char c, int index = 0) int find(const char c, int index = 0)
{ {
size_t len = strlen(v); size_t len = size();
if (len < 1)
return npos;
if (index >= (int)len || index < 0) if (index >= (int)len || index < 0)
return npos; return npos;
unsigned int i = 0; unsigned int i = 0;
for (i=index; i<(unsigned int)len; i++) for (i=index; i<(int)len; i++)
{ {
if (v[i] == c) if (v[i] == c)
{ {
@ -164,6 +171,9 @@ public:
void trim() void trim()
{ {
if (!v)
return;
unsigned int i = 0; unsigned int i = 0;
unsigned int j = 0; unsigned int j = 0;
size_t len = strlen(v); size_t len = strlen(v);
@ -224,6 +234,8 @@ public:
void erase(unsigned int start, int num = npos) void erase(unsigned int start, int num = npos)
{ {
if (!v)
return;
unsigned int i = 0; unsigned int i = 0;
size_t len = size(); size_t len = size();
//check for bounds //check for bounds
@ -257,6 +269,9 @@ public:
String substr(unsigned int index, int num = npos) String substr(unsigned int index, int num = npos)
{ {
if (!v)
return String("");
String ns; String ns;
size_t len = size(); size_t len = size();
@ -271,7 +286,7 @@ public:
num = len - index; num = len - index;
} }
unsigned int i = 0; unsigned int i = 0, j=0;
unsigned int nslen = num + 2; unsigned int nslen = num + 2;
ns.Grow(nslen); ns.Grow(nslen);
@ -284,6 +299,8 @@ public:
void toLower() void toLower()
{ {
if (!v)
return;
unsigned int i = 0; unsigned int i = 0;
size_t len = strlen(v); size_t len = strlen(v);
for (i=0; i<len; i++) for (i=0; i<len; i++)
@ -308,7 +325,7 @@ public:
char operator [] (unsigned int index) char operator [] (unsigned int index)
{ {
if (index > size()) if (index > size() || !v)
{ {
return -1; return -1;
} else { } else {
@ -318,7 +335,7 @@ public:
int at(int a) int at(int a)
{ {
if (a < 0 || a >= (int)size()) if (a < 0 || a >= (int)size() || !v)
return -1; return -1;
return v[a]; return v[a];
@ -326,7 +343,7 @@ public:
bool at(int at, char c) bool at(int at, char c)
{ {
if (at < 0 || at >= (int)size()) if (at < 0 || at >= (int)size() || !v)
return false; return false;
v[at] = c; v[at] = c;
@ -340,9 +357,10 @@ private:
if (d <= a_size) if (d <= a_size)
return; return;
char *n = new char[d + 1]; char *n = new char[d + 1];
if (copy) if (copy && v)
strcpy(n, v); strcpy(n, v);
delete [] v; if (v)
delete [] v;
v = n; v = n;
a_size = d + 1; a_size = d + 1;
} }

View File

@ -69,7 +69,7 @@
#include "amxxlog.h" #include "amxxlog.h"
#define AMXXLOG_Log g_log.Log #define AMXXLOG_Log g_log.Log
#define AMX_VERSION "1.50-RC1" #define AMX_VERSION "1.50"
extern AMX_NATIVE_INFO core_Natives[]; extern AMX_NATIVE_INFO core_Natives[];
extern AMX_NATIVE_INFO time_Natives[]; extern AMX_NATIVE_INFO time_Natives[];

View File

@ -1672,7 +1672,7 @@ void Module_CacheFunctions()
// other amx stuff // other amx stuff
REGISTER_FUNC("amx_Exec", amx_Exec) REGISTER_FUNC("amx_Exec", amx_Exec)
REGISTER_FUNC("amx_Push", amx_Push); REGISTER_FUNC("amx_Push", amx_Push)
REGISTER_FUNC("amx_Execv", amx_Execv) //I HOPE NO ONE USES THIS!!!! REGISTER_FUNC("amx_Execv", amx_Execv) //I HOPE NO ONE USES THIS!!!!
REGISTER_FUNC("amx_Allot", amx_Allot) REGISTER_FUNC("amx_Allot", amx_Allot)
REGISTER_FUNC("amx_FindPublic", amx_FindPublic) REGISTER_FUNC("amx_FindPublic", amx_FindPublic)