chdir-notify: add function to unregister listeners
While we (obviously) have a way to register new listeners that get called whenever we chdir(3p), we don't have an equivalent that can be used to unregister such a listener again. Add one, as it will be required in a subsequent commit. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>main
parent
35d9fc65ed
commit
2574c61736
|
|
@ -25,6 +25,24 @@ void chdir_notify_register(const char *name,
|
||||||
list_add_tail(&e->list, &chdir_notify_entries);
|
list_add_tail(&e->list, &chdir_notify_entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void chdir_notify_unregister(const char *name, chdir_notify_callback cb,
|
||||||
|
void *data)
|
||||||
|
{
|
||||||
|
struct list_head *pos, *p;
|
||||||
|
|
||||||
|
list_for_each_safe(pos, p, &chdir_notify_entries) {
|
||||||
|
struct chdir_notify_entry *e =
|
||||||
|
list_entry(pos, struct chdir_notify_entry, list);
|
||||||
|
|
||||||
|
if (e->cb != cb || e->data != data || !e->name != !name ||
|
||||||
|
(e->name && strcmp(e->name, name)))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
list_del(pos);
|
||||||
|
free(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void reparent_cb(const char *name,
|
static void reparent_cb(const char *name,
|
||||||
const char *old_cwd,
|
const char *old_cwd,
|
||||||
const char *new_cwd,
|
const char *new_cwd,
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,8 @@ typedef void (*chdir_notify_callback)(const char *name,
|
||||||
const char *new_cwd,
|
const char *new_cwd,
|
||||||
void *data);
|
void *data);
|
||||||
void chdir_notify_register(const char *name, chdir_notify_callback cb, void *data);
|
void chdir_notify_register(const char *name, chdir_notify_callback cb, void *data);
|
||||||
|
void chdir_notify_unregister(const char *name, chdir_notify_callback cb,
|
||||||
|
void *data);
|
||||||
void chdir_notify_reparent(const char *name, char **path);
|
void chdir_notify_reparent(const char *name, char **path);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue