Git fork

pager: stop using `the_repository`

Stop using `the_repository` in the "pager" subsystem by passing in a
repository when setting up the pager and when configuring it.

Adjust callers accordingly by using `the_repository`. While there may be
some callers that have a repository available in their context, this
trivial conversion allows for easier verification and bubbles up the use
of `the_repository` by one level.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

authored by

Patrick Steinhardt and committed by
Junio C Hamano
59b6131a 1f7e6478

+27 -28
+1 -1
add-patch.c
··· 1464 1464 if (file_diff->hunk_nr) { 1465 1465 if (rendered_hunk_index != hunk_index) { 1466 1466 if (use_pager) { 1467 - setup_pager(); 1467 + setup_pager(the_repository); 1468 1468 sigchain_push(SIGPIPE, SIG_IGN); 1469 1469 } 1470 1470 render_hunk(s, hunk, 0, colored, &s->buf);
+2 -2
builtin/am.c
··· 1786 1786 } 1787 1787 strbuf_release(&msg); 1788 1788 } else if (*reply == 'v' || *reply == 'V') { 1789 - const char *pager = git_pager(1); 1789 + const char *pager = git_pager(the_repository, 1); 1790 1790 struct child_process cp = CHILD_PROCESS_INIT; 1791 1791 1792 1792 if (!pager) ··· 2246 2246 if (len < 0) 2247 2247 die_errno(_("failed to read '%s'"), patch_path); 2248 2248 2249 - setup_pager(); 2249 + setup_pager(the_repository); 2250 2250 write_in_full(1, sb.buf, sb.len); 2251 2251 strbuf_release(&sb); 2252 2252 return 0;
+1 -1
builtin/blame.c
··· 1202 1202 stop_progress(&pi.progress); 1203 1203 1204 1204 if (!incremental) 1205 - setup_pager(); 1205 + setup_pager(the_repository); 1206 1206 else 1207 1207 goto cleanup; 1208 1208
+2 -2
builtin/grep.c
··· 1084 1084 } 1085 1085 1086 1086 if (show_in_pager == default_pager) 1087 - show_in_pager = git_pager(1); 1087 + show_in_pager = git_pager(the_repository, 1); 1088 1088 if (show_in_pager) { 1089 1089 opt.color = 0; 1090 1090 opt.name_only = 1; ··· 1246 1246 } 1247 1247 1248 1248 if (!show_in_pager && !opt.status_only) 1249 - setup_pager(); 1249 + setup_pager(the_repository); 1250 1250 1251 1251 die_for_incompatible_opt3(!use_index, "--no-index", 1252 1252 untracked, "--untracked",
+2 -2
builtin/help.c
··· 658 658 case HELP_ACTION_ALL: 659 659 opt_mode_usage(argc, "--all", help_format); 660 660 if (verbose) { 661 - setup_pager(); 661 + setup_pager(the_repository); 662 662 list_all_cmds_help(show_external_commands, 663 663 show_aliases); 664 664 return 0; ··· 692 692 return 0; 693 693 case HELP_ACTION_CONFIG: 694 694 opt_mode_usage(argc, "--config", help_format); 695 - setup_pager(); 695 + setup_pager(the_repository); 696 696 list_config_help(SHOW_CONFIG_HUMAN); 697 697 printf("\n%s\n", _("'git help config' for more information")); 698 698 return 0;
+2 -2
builtin/log.c
··· 369 369 if (rev->line_level_traverse) 370 370 line_log_init(rev, line_cb.prefix, &line_cb.args); 371 371 372 - setup_pager(); 372 + setup_pager(the_repository); 373 373 } 374 374 375 375 static void cmd_log_init(int argc, const char **argv, const char *prefix, ··· 2292 2292 rev.commit_format = CMIT_FMT_MBOXRD; 2293 2293 2294 2294 if (use_stdout) { 2295 - setup_pager(); 2295 + setup_pager(the_repository); 2296 2296 } else if (!rev.diffopt.close_file) { 2297 2297 int saved; 2298 2298
+1 -1
builtin/var.c
··· 42 42 43 43 static char *pager(int ident_flag UNUSED) 44 44 { 45 - const char *pgm = git_pager(1); 45 + const char *pgm = git_pager(the_repository, 1); 46 46 47 47 if (!pgm) 48 48 pgm = "cat";
+2 -2
diff.c
··· 7386 7386 * --exit-code" in hooks and other scripts, we do not do so. 7387 7387 */ 7388 7388 if (!opt->flags.exit_with_status && 7389 - check_pager_config("diff") != 0) 7390 - setup_pager(); 7389 + check_pager_config(the_repository, "diff") != 0) 7390 + setup_pager(the_repository); 7391 7391 }
+4 -4
git.c
··· 125 125 setenv("GIT_PAGER", "cat", 1); 126 126 break; 127 127 case 1: 128 - setup_pager(); 128 + setup_pager(the_repository); 129 129 break; 130 130 default: 131 131 break; ··· 136 136 { 137 137 if (use_pager != -1 || pager_in_use()) 138 138 return; 139 - use_pager = check_pager_config(cmd); 139 + use_pager = check_pager_config(the_repository, cmd); 140 140 if (use_pager == -1) 141 141 use_pager = def; 142 142 commit_pager_choice(); ··· 462 462 precompose_argv_prefix(argc, argv, NULL); 463 463 if (use_pager == -1 && run_setup && 464 464 !(p->option & DELAY_PAGER_CONFIG)) 465 - use_pager = check_pager_config(p->cmd); 465 + use_pager = check_pager_config(the_repository, p->cmd); 466 466 if (use_pager == -1 && p->option & USE_PAGER) 467 467 use_pager = 1; 468 468 if (run_setup && startup_info->have_repository) ··· 750 750 int status; 751 751 752 752 if (use_pager == -1 && !is_builtin(argv[0])) 753 - use_pager = check_pager_config(argv[0]); 753 + use_pager = check_pager_config(the_repository, argv[0]); 754 754 commit_pager_choice(); 755 755 756 756 strvec_pushf(&cmd.args, "git-%s", argv[0]);
+6 -8
pager.c
··· 1 - #define USE_THE_REPOSITORY_VARIABLE 2 - 3 1 #include "git-compat-util.h" 4 2 #include "config.h" 5 3 #include "editor.h" ··· 84 82 return 0; 85 83 } 86 84 87 - const char *git_pager(int stdout_is_tty) 85 + const char *git_pager(struct repository *r, int stdout_is_tty) 88 86 { 89 87 const char *pager; 90 88 ··· 94 92 pager = getenv("GIT_PAGER"); 95 93 if (!pager) { 96 94 if (!pager_program) 97 - read_early_config(the_repository, 95 + read_early_config(r, 98 96 core_pager_config, NULL); 99 97 pager = pager_program; 100 98 } ··· 143 141 pager_process->trace2_child_class = "pager"; 144 142 } 145 143 146 - void setup_pager(void) 144 + void setup_pager(struct repository *r) 147 145 { 148 146 static int once = 0; 149 - const char *pager = git_pager(isatty(1)); 147 + const char *pager = git_pager(r, isatty(1)); 150 148 151 149 if (!pager) 152 150 return; ··· 293 291 } 294 292 295 293 /* returns 0 for "no pager", 1 for "use pager", and -1 for "not specified" */ 296 - int check_pager_config(const char *cmd) 294 + int check_pager_config(struct repository *r, const char *cmd) 297 295 { 298 296 struct pager_command_config_data data; 299 297 ··· 301 299 data.want = -1; 302 300 data.value = NULL; 303 301 304 - read_early_config(the_repository, pager_command_config, &data); 302 + read_early_config(r, pager_command_config, &data); 305 303 306 304 if (data.value) 307 305 pager_program = data.value;
+4 -3
pager.h
··· 2 2 #define PAGER_H 3 3 4 4 struct child_process; 5 + struct repository; 5 6 6 - const char *git_pager(int stdout_is_tty); 7 - void setup_pager(void); 7 + const char *git_pager(struct repository *r, int stdout_is_tty); 8 + void setup_pager(struct repository *r); 8 9 void wait_for_pager(void); 9 10 int pager_in_use(void); 10 11 int term_columns(void); 11 12 void term_clear_line(void); 12 13 int decimal_width(uintmax_t); 13 - int check_pager_config(const char *cmd); 14 + int check_pager_config(struct repository *r, const char *cmd); 14 15 void prepare_pager_args(struct child_process *, const char *pager); 15 16 16 17 extern int pager_use_color;