sha1_name.c: allow get_short_sha1() to take other flags
authorJunio C Hamano <gitster@pobox.com>
Mon, 18 Jun 2012 18:32:03 +0000 (11:32 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 3 Jul 2012 18:17:59 +0000 (11:17 -0700)
Instead of a separate "int quietly" argument, make it take "unsigned
flags" so that we can pass other options to it.

The bit assignment of this flag word is exposed in cache.h because
the mechanism will be exposed to callers of the higher layer in
later commits in this series.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache.h
sha1_name.c

diff --git a/cache.h b/cache.h
index 2aa9fb6b2c69cab47a92b66c33d91f02e0a9be2f..1bafa45a7ec65a5df1c6bf79f8706faa23bea961 100644 (file)
--- a/cache.h
+++ b/cache.h
@@ -811,6 +811,8 @@ struct object_context {
        unsigned mode;
 };
 
+#define GET_SHA1_QUIETLY 01
+
 extern int get_sha1(const char *str, unsigned char *sha1);
 extern void maybe_die_on_misspelt_object_name(const char *name, const char *prefix);
 extern int get_sha1_with_context(const char *str, unsigned char *sha1, struct object_context *orc);
index c824bdd3eb5ba146b21e7c0046ec1414fa9a2971..793d80cbf9d0f2d232032a844c5fadf47d76e0b0 100644 (file)
@@ -219,12 +219,13 @@ static int finish_object_disambiguation(struct disambiguate_state *ds,
 }
 
 static int get_short_sha1(const char *name, int len, unsigned char *sha1,
-                         int quietly)
+                         unsigned flags)
 {
        int i, status;
        char hex_pfx[40];
        unsigned char bin_pfx[20];
        struct disambiguate_state ds;
+       int quietly = !!(flags & GET_SHA1_QUIETLY);
 
        if (len < MINIMUM_ABBREV || len > 40)
                return -1;
@@ -272,7 +273,7 @@ const char *find_unique_abbrev(const unsigned char *sha1, int len)
                return hex;
        while (len < 40) {
                unsigned char sha1_ret[20];
-               status = get_short_sha1(hex, len, sha1_ret, 1);
+               status = get_short_sha1(hex, len, sha1_ret, GET_SHA1_QUIETLY);
                if (exists
                    ? !status
                    : status == SHORT_NAME_NOT_FOUND) {
@@ -603,7 +604,7 @@ static int get_describe_name(const char *name, int len, unsigned char *sha1)
                        if (ch == 'g' && cp[-1] == '-') {
                                cp++;
                                len -= cp - name;
-                               return get_short_sha1(cp, len, sha1, 1);
+                               return get_short_sha1(cp, len, sha1, GET_SHA1_QUIETLY);
                        }
                }
        }