]> granicus.if.org Git - git/commitdiff
blame,shortlog: don't make local option variables static
authorJeff King <peff@peff.net>
Mon, 13 Jun 2016 05:39:28 +0000 (01:39 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 Jun 2016 17:33:33 +0000 (10:33 -0700)
There's no need for these option variables to be static,
except that they are referenced by the options array itself,
which is static. But having all of this static is simply
unnecessary and confusing (and inconsistent with most other
commands, which either use a static global option list or a
true function-local one).

Note that in some cases we may need to actually initialize
the variables (since we cannot rely on BSS to do so). This
is a net improvement to readability, though, as we can use
the more verbose initializers for our string_lists.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/blame.c
builtin/shortlog.c

index 6cac59c973bfcf1dc48e2a1af26375f914bb02c4..9b1701d31494c5fe6d1c473b743ac30a6f00b8a8 100644 (file)
@@ -2503,12 +2503,12 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
        char *final_commit_name = NULL;
        enum object_type type;
 
-       static struct string_list range_list;
-       static int output_option = 0, opt = 0;
-       static int show_stats = 0;
-       static const char *revs_file = NULL;
-       static const char *contents_from = NULL;
-       static const struct option options[] = {
+       struct string_list range_list = STRING_LIST_INIT_NODUP;
+       int output_option = 0, opt = 0;
+       int show_stats = 0;
+       const char *revs_file = NULL;
+       const char *contents_from = NULL;
+       const struct option options[] = {
                OPT_BOOL(0, "incremental", &incremental, N_("Show blame entries as we find them, incrementally")),
                OPT_BOOL('b', NULL, &blank_boundary, N_("Show blank SHA-1 for boundary commits (Default: off)")),
                OPT_BOOL(0, "root", &show_root, N_("Do not treat root commits as boundaries (Default: off)")),
index 007cc66a036429d602cf7afe19c163fcf6d06395..cb3e89cf1d540bb49eeda302f04db9e3409a3cbb 100644 (file)
@@ -221,11 +221,11 @@ void shortlog_init(struct shortlog *log)
 
 int cmd_shortlog(int argc, const char **argv, const char *prefix)
 {
-       static struct shortlog log;
-       static struct rev_info rev;
+       struct shortlog log = { STRING_LIST_INIT_NODUP };
+       struct rev_info rev;
        int nongit = !startup_info->have_repository;
 
-       static const struct option options[] = {
+       const struct option options[] = {
                OPT_BOOL('n', "numbered", &log.sort_by_number,
                         N_("sort output according to the number of commits per author")),
                OPT_BOOL('s', "summary", &log.summary,