|
| iMatix home page | << | < | > | >> |
SFLVersion 2.11 |
#include "sflhttp.h"
int
cgi_parse_query_vars (
SYMTAB *symtab,
const char *query,
const char *prefix)
Parses a CGI query string and loads the resulting variables into an existing symbol table, optionally prefixing each name with a string. Returns the number of variables loaded. The prefix can be NULL or empty if not required.
{
char
*query_var, /* Query variable name */
**query_vars, /* Query as string table */
*equals; /* Equal sign in variable */
int
string_nbr, /* Index into string table */
variables = 0; /* Number of variables loaded */
ASSERT (symtab);
if ((query_vars = http query2strt (query)) == NULL)
return (0); /* Not enough memory */
for (string_nbr = 0; query_vars [string_nbr]; string_nbr++)
{
equals = strchr (query_vars [string_nbr], '=');
if (equals)
{
*equals = '\0'; /* Cut into two strings */
if (prefix == NULL)
prefix = ""; /* Make safe for xstrcpy() */
query_var = xstrcpy (NULL, prefix, query_vars [string_nbr], NULL);
sym assume symbol (symtab, query_var, equals + 1);
mem_strfree (&query_var);
*equals = '='; /* Restore previous state */
variables++; /* Count this variable */
}
}
strtfree (query_vars);
return (variables);
}
| | << | < | > | >> |
|