mirror of
https://github.com/git/git.git
synced 2024-12-05 07:53:59 +08:00
e5bbe09e88
In WM_PATHNAME mode (or FNM_PATHNAME), '*' does not match '/' and '**' can but only in three patterns: - '**/' matches zero or more leading directories - '/**/' matches zero or more directories in between - '/**' matches zero or more trailing directories/files When '**' is present but not in one of these patterns, the current behavior is consider the pattern invalid and stop matching. In other words, 'foo**bar' never matches anything, whatever you throw at it. This behavior is arguably a bit confusing partly because we can't really tell the user their pattern is invalid so that they can fix it. So instead, tolerate it and make '**' act like two regular '*'s (which is essentially the same as a single asterisk). This behavior seems more predictable. Noticed-by: dana <dana@dana.is> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 lines
264 B
C
14 lines
264 B
C
#ifndef WILDMATCH_H
|
|
#define WILDMATCH_H
|
|
|
|
#define WM_CASEFOLD 1
|
|
#define WM_PATHNAME 2
|
|
|
|
#define WM_NOMATCH 1
|
|
#define WM_MATCH 0
|
|
#define WM_ABORT_ALL -1
|
|
#define WM_ABORT_TO_STARSTAR -2
|
|
|
|
int wildmatch(const char *pattern, const char *text, unsigned int flags);
|
|
#endif
|