@@ -288,20 +288,44 @@ int index_criteria_parse_name(const char *criteria, size_t len, struct index_cri
288288 /* Assign rules to the glob_patterns[] array */
289289 rule = rule + 5 ;
290290 for (delim = rule ; * delim ; delim ++ ) {
291- if (* delim == ':' || * delim == '/' ) {
292- * delim = '\0' ;
293- }
291+ /*bool doDelimAssign = false;
292+ bool doRuleAdd = false;
293+ if (*delim == ':') {
294+ doDelimAssign = true;
295+ doRuleAdd = true;
296+ }
297+ else if (*delim == '/') {
298+ doDelimAssign = true;
299+ }
300+ else if (! (*(delim+1) == '\0')) {
301+ continue;
302+ }
303+ if (doDelimAssign) *delim = '\0';
304+ rule_ptr->percent_encode = fs_is_percent_encode_required(rule);
305+ rule_ptr->name = strdup(rule);
306+ if (! rule_ptr->name) {
307+ ltfsmsg(LTFS_ERR, 10001E, "index_criteria_parse_name: rule assign");
308+ free(rule_ptr->name);
309+ return -EDEV_NO_MEMORY;
310+ }
311+ rule_ptr++;
312+ if (doRuleAdd) rule = delim+1;*/
313+ if (* delim == ':' ) {
314+ * delim = '\0' ;
294315 rule_ptr -> percent_encode = fs_is_percent_encode_required (rule );
295316 rule_ptr -> name = strdup (rule );
296- if (! rule_ptr -> name ) {
297- ltfsmsg (LTFS_ERR , 10001E , "index_criteria_parse_name: rule assign" );
298- free (rule_ptr -> name );
299- return - EDEV_NO_MEMORY ;
300- }
301317 rule_ptr ++ ;
302- if (* delim == ':' ) {
303- rule = delim + 1 ;
304- }
318+ rule = delim + 1 ;
319+ } else if (* delim == '/' ) {
320+ * delim = '\0' ;
321+ rule_ptr -> percent_encode = fs_is_percent_encode_required (rule );
322+ rule_ptr -> name = strdup (rule );
323+ rule_ptr ++ ;
324+ } else if (* (delim + 1 ) == '\0' ) {
325+ rule_ptr -> percent_encode = fs_is_percent_encode_required (rule );
326+ rule_ptr -> name = strdup (rule );
327+ rule_ptr ++ ;
328+ }
305329 }
306330
307331 if (ic -> glob_patterns == rule_ptr ) {
0 commit comments