| iMatix home page | << | < | > | >> |
SFL Version 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); }
| << | < | > | >> | Copyright © 1996-2000 iMatix Corporation |