57 if (!olist)
return NULL;
58 if (!key)
return NULL;
63 if (strcmp(olist[i], key) == 0) {
88 const char *toksep =
" ";
89 const char kvsep =
'=';
95 for (key = strtok(input, toksep); key; key = strtok(NULL, toksep)) {
103 for (i = 0; i < sz; i += 2) {
107 val = strchr(key, kvsep);
109 lwerror(
"Option string entry '%s' lacks separator '%c'", key, kvsep);
123 const char *toksep =
" ";
124 const char kvsep =
'=';
126 const char q1 =
'\'';
127 const char notspace = 0x1F;
131 size_t i = 0, sz, input_sz;
135 lwerror(
"Option string is null");
136 input_sz = strlen(input);
140 if (*ptr == q2 || *ptr == q1)
142 else if (in_str && *ptr ==
' ')
149 for (key = strtok(input, toksep); key; key = strtok(NULL, toksep)) {
156 for (i = 0; i < sz; ++i) {
160 val = strchr(key, kvsep);
162 lwerror(
"Option string entry '%s' lacks separator '%c'", key, kvsep);
168 for (i = 0; i <= input_sz; ++i) {
169 if (input[i] == notspace)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
static void option_list_string_to_lower(char *key)
void option_list_gdal_parse(char *input, char **olist)
size_t option_list_length(char **olist)
Returns the total number of keys and values in the list.
const char * option_list_search(char **olist, const char *key)
Returns null if the key cannot be found.
void option_list_parse(char *input, char **olist)
option_list is a null-terminated list of strings, where every odd string is a key and every even stri...