core/smn_string.cpp
changeset 230 f6abafc7c96c
parent 226 4663ea3fc2d3
child 233 968f92668138
     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)