diff options
author | Carlos Rica <jasampler@gmail.com> | 2007-09-11 05:17:28 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-09-26 13:42:10 -0700 |
commit | 102c2338da0b0954a04742f5cbe307fa6b49f225 (patch) | |
tree | 9f8ce90c6b32050761f10783a9b7bbb2aea286a0 /read-cache.c | |
parent | bce92405aebf217a4738bab0df89516910818e68 (diff) | |
download | git-102c2338da0b0954a04742f5cbe307fa6b49f225.tar.gz git-102c2338da0b0954a04742f5cbe307fa6b49f225.tar.xz |
Move make_cache_entry() from merge-recursive.c into read-cache.c
The function make_cache_entry() is too useful to be hidden away in
merge-recursive. So move it to libgit.a (exposing it via cache.h).
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/read-cache.c b/read-cache.c index 8b1c94e0e..536f4d087 100644 --- a/read-cache.c +++ b/read-cache.c @@ -434,6 +434,31 @@ int add_file_to_index(struct index_state *istate, const char *path, int verbose) return 0; } +struct cache_entry *make_cache_entry(unsigned int mode, + const unsigned char *sha1, const char *path, int stage, + int refresh) +{ + int size, len; + struct cache_entry *ce; + + if (!verify_path(path)) + return NULL; + + len = strlen(path); + size = cache_entry_size(len); + ce = xcalloc(1, size); + + hashcpy(ce->sha1, sha1); + memcpy(ce->name, path, len); + ce->ce_flags = create_ce_flags(len, stage); + ce->ce_mode = create_ce_mode(mode); + + if (refresh) + return refresh_cache_entry(ce, 0); + + return ce; +} + int ce_same_name(struct cache_entry *a, struct cache_entry *b) { int len = ce_namelen(a); |