X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=prvm_cmds.c;h=cb3107cff2dfc65ec44b1a6484bebe65a96d48c0;hp=2887b0fe037c86a43ef9fe734e48afe574f7f24d;hb=b0f8a2bc2d1c8240f9f0e32f1cd496a19f2391bb;hpb=8b7eab5c38f9c564b4ef9bb72901a6658eba3ae6 diff --git a/prvm_cmds.c b/prvm_cmds.c index 2887b0fe..cb3107cf 100644 --- a/prvm_cmds.c +++ b/prvm_cmds.c @@ -4397,6 +4397,7 @@ void VM_buf_cvarlist(void) const char *partial, *antipartial; size_t len, antilen; size_t alloclen; + qboolean ispattern, antiispattern; int n; prvm_stringbuffer_t *stringbuffer; VM_SAFEPARMCOUNTRANGE(2, 3, VM_buf_cvarlist); @@ -4430,13 +4431,16 @@ void VM_buf_cvarlist(void) Mem_Free(stringbuffer->strings); stringbuffer->strings = NULL; + ispattern = partial && (strchr(partial, '*') || strchr(partial, '?')); + antiispattern = antipartial && (strchr(antipartial, '*') || strchr(antipartial, '?')); + n = 0; for(cvar = cvar_vars; cvar; cvar = cvar->next) { - if(partial && strncasecmp(partial, cvar->name, len)) + if(len && (ispattern ? !matchpattern_with_separator(cvar->name, partial, false, "", false) : strncmp(partial, cvar->name, len))) continue; - if(antilen && !strncasecmp(antipartial, cvar->name, antilen)) + if(antilen && (antiispattern ? matchpattern_with_separator(cvar->name, antipartial, false, "", false) : !strncmp(antipartial, cvar->name, antilen))) continue; ++n; @@ -4449,10 +4453,10 @@ void VM_buf_cvarlist(void) n = 0; for(cvar = cvar_vars; cvar; cvar = cvar->next) { - if(len && strncasecmp(partial, cvar->name, len)) + if(len && (ispattern ? !matchpattern_with_separator(cvar->name, partial, false, "", false) : strncmp(partial, cvar->name, len))) continue; - if(antilen && !strncasecmp(antipartial, cvar->name, antilen)) + if(antilen && (antiispattern ? matchpattern_with_separator(cvar->name, antipartial, false, "", false) : !strncmp(antipartial, cvar->name, antilen))) continue; alloclen = strlen(cvar->name) + 1;