X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=cvar.c;h=318adc4502893c2e5136b4487750c8017d5a8c7a;hp=0f8ccd4d62bd1483782570e65b253b79b6c813ed;hb=beba2f9a1752c871a39303e5d559e779fac69271;hpb=c7bea1307779c704cfa1879b0fefa11fa0463d93 diff --git a/cvar.c b/cvar.c index 0f8ccd4d..318adc45 100644 --- a/cvar.c +++ b/cvar.c @@ -96,6 +96,64 @@ char *Cvar_CompleteVariable (char *partial) } +/* + CVar_CompleteCountPossible + + New function for tab-completion system + Added by EvilTypeGuy + Thanks to Fett erich@heintz.com + +*/ +int +Cvar_CompleteCountPossible (char *partial) +{ + cvar_t *cvar; + int len; + int h; + + h = 0; + len = strlen(partial); + + if (!len) + return 0; + + // Loop through the cvars and count all possible matches + for (cvar = cvar_vars; cvar; cvar = cvar->next) + if (!strncasecmp(partial, cvar->name, len)) + h++; + + return h; +} + +/* + CVar_CompleteBuildList + + New function for tab-completion system + Added by EvilTypeGuy + Thanks to Fett erich@heintz.com + Thanks to taniwha + +*/ +char ** +Cvar_CompleteBuildList (char *partial) +{ + cvar_t *cvar; + int len = 0; + int bpos = 0; + int sizeofbuf = (Cvar_CompleteCountPossible (partial) + 1) * sizeof (char *); + char **buf; + + len = strlen(partial); + buf = malloc(sizeofbuf + sizeof (char *)); + // Loop through the alias list and print all matches + for (cvar = cvar_vars; cvar; cvar = cvar->next) + if (!strncasecmp(partial, cvar->name, len)) + buf[bpos++] = cvar->name; + + buf[bpos] = NULL; + return buf; +} + /* ============ Cvar_Set @@ -223,3 +281,41 @@ void Cvar_WriteVariables (QFile *f) Qprintf (f, "%s \"%s\"\n", var->name, var->string); } + +// Added by EvilTypeGuy eviltypeguy@qeradiant.com +// 2000-01-09 CvarList command By Matthias "Maddes" Buecher, http://www.inside3d.com/qip/ +/* +========= +Cvar_List +========= +*/ +void Cvar_List_f (void) +{ + cvar_t *cvar; + char *partial; + int len; + int count; + + if (Cmd_Argc() > 1) { + partial = Cmd_Argv (1); + len = strlen(partial); + } else { + partial = NULL; + len = 0; + } + + count = 0; + for (cvar = cvar_vars; cvar; cvar = cvar->next) { + if (partial && strncmp (partial,cvar->name,len)) + continue; + + Con_Printf ("%s is \"%s\"\n", cvar->name, cvar->string); + count++; + } + + Con_Printf ("%i cvar(s)", count); + if (partial) + Con_Printf (" beginning with \"%s\"", partial); + Con_Printf ("\n"); +} +// 2000-01-09 CvarList command by Maddes