mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-25 14:25:38 +03:00
Fixed some string stuff
This commit is contained in:
parent
7ccc346f31
commit
7035a79e56
@ -55,41 +55,6 @@ const char* stristr(const char* str,const char* substr)
|
|||||||
|
|
||||||
char* format_amxstring(AMX *amx, cell *params, int parm,int& len)
|
char* format_amxstring(AMX *amx, cell *params, int parm,int& len)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
static char buffer[2][3072];
|
|
||||||
static char format[16];
|
|
||||||
char *ptr,*arg;
|
|
||||||
char *dest = *buffer;
|
|
||||||
cell *src = get_amxaddr(amx, params[parm++]);
|
|
||||||
int numparam = *params/sizeof(cell);
|
|
||||||
while(*src) {
|
|
||||||
if (*src=='%'&&*(src+1)) {
|
|
||||||
ptr = format;
|
|
||||||
*ptr++ = *src++;
|
|
||||||
if (*src=='%'){
|
|
||||||
*dest++=*src++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
while (!isalpha(*ptr++=*src++))
|
|
||||||
;
|
|
||||||
*ptr=0;
|
|
||||||
if (numparam < parm) continue;
|
|
||||||
arg = buffer[1];
|
|
||||||
switch(*(ptr-1)){
|
|
||||||
case 's': sprintf(arg,format,get_amxstring(amx, params[parm++],2,len)); break;
|
|
||||||
case 'f': case 'g': sprintf(arg,format,(float)*(REAL*)get_amxaddr(amx, params[parm++])); break;
|
|
||||||
default: sprintf(arg,format,(int)*get_amxaddr(amx, params[parm++]));
|
|
||||||
}
|
|
||||||
while(*arg) *dest++=*arg++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
*dest++=*src++;
|
|
||||||
|
|
||||||
}
|
|
||||||
*dest=0;
|
|
||||||
len = dest - *buffer;
|
|
||||||
return *buffer;
|
|
||||||
*/
|
|
||||||
return g_langMngr.FormatAmxString(amx, params, parm, len);
|
return g_langMngr.FormatAmxString(amx, params, parm, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -574,24 +539,35 @@ static cell AMX_NATIVE_CALL is_alpha(AMX *amx, cell *params)
|
|||||||
return isalpha( params[1] );
|
return isalpha( params[1] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL amx_ucfirst(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
int len = 0;
|
||||||
|
cell *str = get_amxaddr(amx, params[1]);
|
||||||
|
if (!isalpha((char)str[0]) || (str[0]&(1<<5)))
|
||||||
|
return 0;
|
||||||
|
str[0] |= (1<<5);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL amx_trim(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL amx_trim(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
int len;
|
cell *asdf = get_amxaddr(amx, params[1]);
|
||||||
char *asdf = get_amxstring(amx, params[1], 0, len);
|
cell *cptr = asdf;
|
||||||
|
int len = 0;
|
||||||
|
while (*cptr++) len++;
|
||||||
int flag = 0, incr = 0;
|
int flag = 0, incr = 0;
|
||||||
register int i = 0;
|
register int i = 0;
|
||||||
for (i=strlen(asdf)-1; i>=0; i--)
|
for (i=len-1; i>=0; i--)
|
||||||
{
|
{
|
||||||
if (!isspace(asdf[i]))
|
if (!isspace(asdf[i]))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
asdf[i] = 0;
|
asdf[i] = 0;
|
||||||
|
len--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
len = strlen(asdf);
|
|
||||||
|
|
||||||
for (i=0; i<len; i++)
|
for (i=0; i<len; i++)
|
||||||
{
|
{
|
||||||
if (isspace(asdf[i]) && !flag)
|
if (isspace(asdf[i]) && !flag)
|
||||||
@ -634,5 +610,6 @@ AMX_NATIVE_INFO string_Natives[] = {
|
|||||||
{ "strtoupper", strtoupper },
|
{ "strtoupper", strtoupper },
|
||||||
{ "str_to_num", strtonum },
|
{ "str_to_num", strtonum },
|
||||||
{ "trim", amx_trim },
|
{ "trim", amx_trim },
|
||||||
|
{ "ucfirst", amx_ucfirst },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user