MCPcopy Create free account
hub / github.com/git/git / write_one_dir

Function write_one_dir

dir.c:3614–3667  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3612}
3613
3614static void write_one_dir(struct untracked_cache_dir *untracked,
3615 struct write_data *wd)
3616{
3617 struct stat_data stat_data;
3618 struct strbuf *out = &wd->out;
3619 unsigned char intbuf[16];
3620 unsigned int value;
3621 uint8_t intlen;
3622 int i = wd->index++;
3623
3624 /*
3625 * untracked_nr should be reset whenever valid is clear, but
3626 * for safety..
3627 */
3628 if (!untracked->valid) {
3629 for (size_t i = 0; i < untracked->untracked_nr; i++)
3630 free(untracked->untracked[i]);
3631 untracked->untracked_nr = 0;
3632 untracked->check_only = 0;
3633 }
3634
3635 if (untracked->check_only)
3636 ewah_set(wd->check_only, i);
3637 if (untracked->valid) {
3638 ewah_set(wd->valid, i);
3639 stat_data_to_disk(&stat_data, &untracked->stat_data);
3640 strbuf_add(&wd->sb_stat, &stat_data, sizeof(stat_data));
3641 }
3642 if (!is_null_oid(&untracked->exclude_oid)) {
3643 ewah_set(wd->sha1_valid, i);
3644 strbuf_add(&wd->sb_sha1, untracked->exclude_oid.hash,
3645 the_hash_algo->rawsz);
3646 }
3647
3648 intlen = encode_varint(untracked->untracked_nr, intbuf);
3649 strbuf_add(out, intbuf, intlen);
3650
3651 /* skip non-recurse directories */
3652 for (i = 0, value = 0; i < untracked->dirs_nr; i++)
3653 if (untracked->dirs[i]->recurse)
3654 value++;
3655 intlen = encode_varint(value, intbuf);
3656 strbuf_add(out, intbuf, intlen);
3657
3658 strbuf_add(out, untracked->name, strlen(untracked->name) + 1);
3659
3660 for (i = 0; i < untracked->untracked_nr; i++)
3661 strbuf_add(out, untracked->untracked[i],
3662 strlen(untracked->untracked[i]) + 1);
3663
3664 for (i = 0; i < untracked->dirs_nr; i++)
3665 if (untracked->dirs[i]->recurse)
3666 write_one_dir(untracked->dirs[i], wd);
3667}
3668
3669void write_untracked_extension(struct strbuf *out, struct untracked_cache *untracked)
3670{

Callers 1

Calls 5

ewah_setFunction · 0.85
stat_data_to_diskFunction · 0.85
strbuf_addFunction · 0.85
is_null_oidFunction · 0.85
encode_varintFunction · 0.70

Tested by

no test coverage detected