diff options
Diffstat (limited to 'src/util.c')
-rw-r--r-- | src/util.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -58,6 +58,7 @@ typedef struct dev_t dev; ino_t ino; enum file_id_type type; + bool queued_output; char *sha1; } file_id; @@ -104,6 +105,7 @@ __insert_file_id (struct stat const *st, enum file_id_type type) next_slot = xmalloc (sizeof *next_slot); next_slot->dev = st->st_dev; next_slot->ino = st->st_ino; + next_slot->queued_output = false; next_slot->sha1 = 0; p = hash_insert (file_id_table, next_slot); if (!p) @@ -145,6 +147,24 @@ lookup_file_id (struct stat const *st) } void +set_queued_output (struct stat const *st, bool queued_output) +{ + file_id *p = __lookup_file_id (st); + + if (! p) + p = __insert_file_id (st, UNKNOWN); + p->queued_output = queued_output; +} + +bool +has_queued_output (struct stat const *st) +{ + file_id *p = __lookup_file_id (st); + + return p && p->queued_output; +} + +void update_sha1 (struct stat const *st, char const *sha1) { file_id *p = __lookup_file_id (st); |