Merge branch 'lf/sideband-returns-void'
authorJunio C Hamano <gitster@pobox.com>
Wed, 6 Jul 2016 20:38:09 +0000 (13:38 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Jul 2016 20:38:09 +0000 (13:38 -0700)
A small internal API cleanup.

* lf/sideband-returns-void:
upload-pack.c: make send_client_data() return void
sideband.c: make send_sideband() return void

1  2 
upload-pack.c
diff --combined upload-pack.c
index 9e03c278b9d80047161c3a199477e2453091d2c4,44d63fba4168db1f741747f824439d9234315578..a86d49cfb3e4a1702cd8f1ea0739de63f4b6faca
  #include "sigchain.h"
  #include "version.h"
  #include "string-list.h"
 +#include "parse-options.h"
  
 -static const char upload_pack_usage[] = "git upload-pack [--strict] [--timeout=<n>] <dir>";
 +static const char * const upload_pack_usage[] = {
 +      N_("git upload-pack [<options>] <dir>"),
 +      NULL
 +};
  
  /* Remember to update object flag allocation in object.h */
  #define THEY_HAVE     (1u << 11)
@@@ -62,20 -58,21 +62,21 @@@ static void reset_timeout(void
        alarm(timeout);
  }
  
- static ssize_t send_client_data(int fd, const char *data, ssize_t sz)
+ static void send_client_data(int fd, const char *data, ssize_t sz)
  {
-       if (use_sideband)
-               return send_sideband(1, fd, data, sz, use_sideband);
+       if (use_sideband) {
+               send_sideband(1, fd, data, sz, use_sideband);
+               return;
+       }
        if (fd == 3)
                /* emergency quit */
                fd = 2;
        if (fd == 2) {
                /* XXX: are we happy to lose stuff here? */
                xwrite(fd, data, sz);
-               return sz;
+               return;
        }
        write_or_die(fd, data, sz);
-       return sz;
  }
  
  static int write_one_shallow(const struct commit_graft *graft, void *cb_data)
@@@ -233,9 -230,7 +234,7 @@@ static void create_pack_file(void
                        }
                        else
                                buffered = -1;
-                       sz = send_client_data(1, data, sz);
-                       if (sz < 0)
-                               goto fail;
+                       send_client_data(1, data, sz);
                }
  
                /*
        /* flush the data */
        if (0 <= buffered) {
                data[0] = buffered;
-               sz = send_client_data(1, data, 1);
-               if (sz < 0)
-                       goto fail;
+               send_client_data(1, data, 1);
                fprintf(stderr, "flushed.\n");
        }
        if (use_sideband)
@@@ -820,21 -813,11 +817,21 @@@ static int upload_pack_config(const cha
        return parse_hide_refs_config(var, value, "uploadpack");
  }
  
 -int main(int argc, char **argv)
 +int main(int argc, const char **argv)
  {
 -      char *dir;
 -      int i;
 +      const char *dir;
        int strict = 0;
 +      struct option options[] = {
 +              OPT_BOOL(0, "stateless-rpc", &stateless_rpc,
 +                       N_("quit after a single request/response exchange")),
 +              OPT_BOOL(0, "advertise-refs", &advertise_refs,
 +                       N_("exit immediately after intial ref advertisement")),
 +              OPT_BOOL(0, "strict", &strict,
 +                       N_("do not try <directory>/.git/ if <directory> is no Git directory")),
 +              OPT_INTEGER(0, "timeout", &timeout,
 +                          N_("interrupt transfer after <n> seconds of inactivity")),
 +              OPT_END()
 +      };
  
        git_setup_gettext();
  
        git_extract_argv0_path(argv[0]);
        check_replace_refs = 0;
  
 -      for (i = 1; i < argc; i++) {
 -              char *arg = argv[i];
 +      argc = parse_options(argc, argv, NULL, options, upload_pack_usage, 0);
  
 -              if (arg[0] != '-')
 -                      break;
 -              if (!strcmp(arg, "--advertise-refs")) {
 -                      advertise_refs = 1;
 -                      continue;
 -              }
 -              if (!strcmp(arg, "--stateless-rpc")) {
 -                      stateless_rpc = 1;
 -                      continue;
 -              }
 -              if (!strcmp(arg, "--strict")) {
 -                      strict = 1;
 -                      continue;
 -              }
 -              if (starts_with(arg, "--timeout=")) {
 -                      timeout = atoi(arg+10);
 -                      daemon_mode = 1;
 -                      continue;
 -              }
 -              if (!strcmp(arg, "--")) {
 -                      i++;
 -                      break;
 -              }
 -      }
 +      if (argc != 1)
 +              usage_with_options(upload_pack_usage, options);
  
 -      if (i != argc-1)
 -              usage(upload_pack_usage);
 +      if (timeout)
 +              daemon_mode = 1;
  
        setup_path();
  
 -      dir = argv[i];
 +      dir = argv[0];
  
        if (!enter_repo(dir, strict))
                die("'%s' does not appear to be a git repository", dir);