1.1 --- a/core/smn_string.cpp Fri Dec 29 23:18:13 2006 +0000
1.2 +++ b/core/smn_string.cpp Fri Dec 29 23:28:44 2006 +0000
1.3 @@ -1,41 +1,11 @@
1.4 #include "sm_platform.h"
1.5 -#include <ctype.h>
1.6 #include <string.h>
1.7 -#include <stdlib.h>
1.8 #include "sp_vm_api.h"
1.9 #include "sp_vm_typeutil.h"
1.10 +#include "sm_stringutil.h"
1.11
1.12 using namespace SourcePawn;
1.13
1.14 -const char *stristr(const char *str, const char *substr)
1.15 -{
1.16 - if (!*substr)
1.17 - {
1.18 - return ((char *)str);
1.19 - }
1.20 -
1.21 - char *needle = (char *)substr;
1.22 - char *prevloc = (char *)str;
1.23 - char *haystack = (char *)str;
1.24 -
1.25 - while (*haystack)
1.26 - {
1.27 - if (tolower(*haystack) == tolower(*needle))
1.28 - {
1.29 - haystack++;
1.30 - if (!*++needle)
1.31 - {
1.32 - return prevloc;
1.33 - }
1.34 - } else {
1.35 - haystack = ++prevloc;
1.36 - needle = (char *)substr;
1.37 - }
1.38 - }
1.39 -
1.40 - return NULL;
1.41 -}
1.42 -
1.43 inline const char *_strstr(const char *str, const char *substr)
1.44 {
1.45 #ifdef PLATFORM_WINDOWS
1.46 @@ -45,17 +15,6 @@
1.47 #endif
1.48 }
1.49
1.50 -inline int StrConvInt(const char *str)
1.51 -{
1.52 - char *dummy;
1.53 - return strtol(str, &dummy, 10);
1.54 -}
1.55 -
1.56 -inline float StrConvFloat(const char *str)
1.57 -{
1.58 - char *dummy;
1.59 - return (float)strtod(str, &dummy);
1.60 -}
1.61
1.62 /*********************************************
1.63 * *
1.64 @@ -107,21 +66,12 @@
1.65
1.66 static cell_t sm_strcopy(IPluginContext *pCtx, const cell_t *params)
1.67 {
1.68 - char *dest, *src, *start;
1.69 - int len;
1.70 + char *dest, *src;
1.71
1.72 pCtx->LocalToString(params[1], &dest);
1.73 pCtx->LocalToString(params[3], &src);
1.74 - len = params[2];
1.75
1.76 - start = dest;
1.77 - while ((*src) && (len--))
1.78 - {
1.79 - *dest++ = *src++;
1.80 - }
1.81 - *dest = '\0';
1.82 -
1.83 - return (dest - start);
1.84 + return strncopy(dest, src, params[2]);
1.85 }
1.86
1.87 static cell_t sm_strtonum(IPluginContext *pCtx, const cell_t *params)