dir: create untracked_cache_invalidate_trimmed_path()
Create a wrapper function for untracked_cache_invalidate_path() that silently trims a trailing slash, if present, before calling the wrapped function. The untracked cache expects to be called with a pathname that does not contain a trailing slash. This can make it inconvenient for callers that have a directory path. Lets hide this complexity. This will be used by a later commit in the FSMonitor code which may receive directory pathnames from an FSEvent. Signed-off-by: Jeff Hostetler <jeffhostetler@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
8687c2b067
commit
3e4ffda639
20
dir.c
20
dir.c
|
@ -3918,6 +3918,26 @@ void untracked_cache_invalidate_path(struct index_state *istate,
|
||||||
path, strlen(path));
|
path, strlen(path));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void untracked_cache_invalidate_trimmed_path(struct index_state *istate,
|
||||||
|
const char *path,
|
||||||
|
int safe_path)
|
||||||
|
{
|
||||||
|
size_t len = strlen(path);
|
||||||
|
|
||||||
|
if (!len)
|
||||||
|
BUG("untracked_cache_invalidate_trimmed_path given zero length path");
|
||||||
|
|
||||||
|
if (path[len - 1] != '/') {
|
||||||
|
untracked_cache_invalidate_path(istate, path, safe_path);
|
||||||
|
} else {
|
||||||
|
struct strbuf tmp = STRBUF_INIT;
|
||||||
|
|
||||||
|
strbuf_add(&tmp, path, len - 1);
|
||||||
|
untracked_cache_invalidate_path(istate, tmp.buf, safe_path);
|
||||||
|
strbuf_release(&tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void untracked_cache_remove_from_index(struct index_state *istate,
|
void untracked_cache_remove_from_index(struct index_state *istate,
|
||||||
const char *path)
|
const char *path)
|
||||||
{
|
{
|
||||||
|
|
7
dir.h
7
dir.h
|
@ -576,6 +576,13 @@ int cmp_dir_entry(const void *p1, const void *p2);
|
||||||
int check_dir_entry_contains(const struct dir_entry *out, const struct dir_entry *in);
|
int check_dir_entry_contains(const struct dir_entry *out, const struct dir_entry *in);
|
||||||
|
|
||||||
void untracked_cache_invalidate_path(struct index_state *, const char *, int safe_path);
|
void untracked_cache_invalidate_path(struct index_state *, const char *, int safe_path);
|
||||||
|
/*
|
||||||
|
* Invalidate the untracked-cache for this path, but first strip
|
||||||
|
* off a trailing slash, if present.
|
||||||
|
*/
|
||||||
|
void untracked_cache_invalidate_trimmed_path(struct index_state *,
|
||||||
|
const char *path,
|
||||||
|
int safe_path);
|
||||||
void untracked_cache_remove_from_index(struct index_state *, const char *);
|
void untracked_cache_remove_from_index(struct index_state *, const char *);
|
||||||
void untracked_cache_add_to_index(struct index_state *, const char *);
|
void untracked_cache_add_to_index(struct index_state *, const char *);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue