+ for (cp = path; *cp && *cp != '&'; cp++)
+ ;
+ (*val)[no] = ret = (char *) odr_malloc(o, cp - path + 1);
+ while (*path && *path != '&')
+ {
+ size_t l = 3;
+ ret[i++] = decode_uri_char(path, &l);
+ path += l;
+ }
+ ret[i] = '\0';
+ }
+ else
+ (*val)[no] = odr_strdup(o, "");