First patch changes the '\' case since it was special-cased but behaved like a literal backslash which seemed somewhat misleading. Also gradm_analyze.c doesn't use FNM_NOESCAPE when checking for patterns completely matched by previous ones, so this seemed like a discrepancy.

The second is mostly a "wish" and could use some auditing. It makes "**" match recursively.

These are for the kernel patch and change glob_match(). To generate the patches (and do *some* testing) I moved the function out into a git repo with just that function in a test file, so I can't guarantee the `patch` tool can apply them to your working code base.

I'd also like to add support for {foo,bar} to gradm (which can be done purely in gradm) if such a patch would be acceptable. This would allow things like:

I've also noticed that gradm allows using quotes to eg. include spaces, but quotes don't escape globs which seems counter intuitive, so I was wondering if it would be desirable to make this more shell-like and make quotes escape globs and allow mixing quoted strings with non-quoted strings. Like in a shell you can do: "/some path"/*/"with spaces".I realize that making quotes escape globs would be a "breaking" change, though, so a flag or enable/disable rule for this behavior would probably be desirable. Especially since currently the lexer treats "a"b"c" as if the inner two quotes are part of the name (iow. like the shell would interpret "a\"b\"c") while "a"r with no space in between treats 'r' as the mode for the object "a" while other letters error.

Having a separate 'case' statement for slashes withoutgiving them the usual escape meaning is a somewhatmisleading code piece.The previous slash case worked like passing FNM_NOESCAPE tofnmatch() which is neither what users expect, nor whatgradm() checks against in its analyzer.