X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=builtin-symbolic-ref.c;h=227c9d4a6274871b52420221d9d088bb3ac5554f;hb=10e8d68820db9c7b6412d5a553a93fd200388f30;hp=d8be0527f4752131b0a1276ecedcc82714636c28;hpb=dc8302d27439b38cb3042b2d1c1106d8ef99e3f2;p=git.git diff --git a/builtin-symbolic-ref.c b/builtin-symbolic-ref.c index d8be0527f..227c9d4a6 100644 --- a/builtin-symbolic-ref.c +++ b/builtin-symbolic-ref.c @@ -3,9 +3,9 @@ #include "refs.h" static const char git_symbolic_ref_usage[] = -"git-symbolic-ref name [ref]"; +"git-symbolic-ref [-q] name [ref]"; -static void check_symref(const char *HEAD) +static void check_symref(const char *HEAD, int quiet) { unsigned char sha1[20]; int flag; @@ -13,17 +13,41 @@ static void check_symref(const char *HEAD) if (!refs_heads_master) die("No such ref: %s", HEAD); - else if (!(flag & REF_ISSYMREF)) - die("ref %s is not a symbolic ref", HEAD); + else if (!(flag & REF_ISSYMREF)) { + if (!quiet) + die("ref %s is not a symbolic ref", HEAD); + else + exit(1); + } puts(refs_heads_master); } int cmd_symbolic_ref(int argc, const char **argv, const char *prefix) { + int quiet = 0; + git_config(git_default_config); + + while (1 < argc) { + const char *arg = argv[1]; + if (arg[0] != '-') + break; + else if (!strcmp("-q", arg)) + quiet = 1; + else if (!strcmp("--", arg)) { + argc--; + argv++; + break; + } + else + die("unknown option %s", arg); + argc--; + argv++; + } + switch (argc) { case 2: - check_symref(argv[1]); + check_symref(argv[1], quiet); break; case 3: create_symref(argv[1], argv[2]);