+
+ glob = GL_PLAIN;
+ if (value != NULL) {
+ if (type < TK_M_MAX) {
+ /* check if we need to split or call fnmatch() while matching rules */
+ int has_split = 0;
+ int has_glob = 0;
+
+ has_split = (strchr(value, '|') != NULL);
+ has_glob = (strchr(value, '*') != NULL || strchr(value, '?') != NULL ||
+ strchr(value, '[') != NULL || strchr(value, ']') != NULL);
+ if (has_split && has_glob)
+ glob = GL_SPLIT_GLOB;
+ else if (has_split)
+ glob = GL_SPLIT;
+ else if (has_glob)
+ glob = GL_GLOB;
+ } else {
+ /* check if we need to substitute format strings for matching rules */
+ if (strchr(value, '%') != NULL || strchr(value, '$') != NULL)
+ glob = GL_FORMAT;
+ }
+ }
+