From 9201c707426b3dc0c894775416f576c25c008d46 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sun, 5 Mar 2006 02:47:29 -0800 Subject: [PATCH] Const tightening. Mark Wooding noticed there was a type mismatch warning in git.c; this patch does things slightly differently (mostly tightening const) and was what I was holding onto, waiting for the setup-revisions change to be merged into the master branch. Signed-off-by: Junio C Hamano --- blame.c | 2 ++ exec_cmd.c | 13 +++++++------ exec_cmd.h | 4 ++-- git.c | 32 ++++++++++++++++---------------- receive-pack.c | 10 ++++++---- run-command.c | 6 +++--- run-command.h | 4 ++-- send-pack.c | 4 ++-- shell.c | 2 +- upload-pack.c | 6 +++--- 10 files changed, 44 insertions(+), 39 deletions(-) diff --git a/blame.c b/blame.c index 7308c36d2..562940ece 100644 --- a/blame.c +++ b/blame.c @@ -226,6 +226,7 @@ static void print_patch(struct patch *p) } } +#if 0 /* For debugging only */ static void print_map(struct commit *cmit, struct commit *other) { @@ -259,6 +260,7 @@ static void print_map(struct commit *cmit, struct commit *other) printf("\n"); } } +#endif // p is a patch from commit to other. static void fill_line_map(struct commit *commit, struct commit *other, diff --git a/exec_cmd.c b/exec_cmd.c index b5e59a9ae..96cc2123b 100644 --- a/exec_cmd.c +++ b/exec_cmd.c @@ -29,10 +29,9 @@ const char *git_exec_path(void) } -int execv_git_cmd(char **argv) +int execv_git_cmd(const char **argv) { char git_command[PATH_MAX + 1]; - char *tmp; int len, err, i; const char *paths[] = { current_exec_path, getenv("GIT_EXEC_PATH"), @@ -40,6 +39,8 @@ int execv_git_cmd(char **argv) for (i = 0; i < sizeof(paths)/sizeof(paths[0]); ++i) { const char *exec_dir = paths[i]; + const char *tmp; + if (!exec_dir) continue; if (*exec_dir != '/') { @@ -82,7 +83,7 @@ int execv_git_cmd(char **argv) argv[0] = git_command; /* execve() can only ever return if it fails */ - execve(git_command, argv, environ); + execve(git_command, (char **)argv, environ); err = errno; @@ -93,11 +94,11 @@ int execv_git_cmd(char **argv) } -int execl_git_cmd(char *cmd,...) +int execl_git_cmd(const char *cmd,...) { int argc; - char *argv[MAX_ARGS + 1]; - char *arg; + const char *argv[MAX_ARGS + 1]; + const char *arg; va_list param; va_start(param, cmd); diff --git a/exec_cmd.h b/exec_cmd.h index 5150ee29f..989621ff4 100644 --- a/exec_cmd.h +++ b/exec_cmd.h @@ -3,8 +3,8 @@ extern void git_set_exec_path(const char *exec_path); extern const char* git_exec_path(void); -extern int execv_git_cmd(char **argv); /* NULL terminated */ -extern int execl_git_cmd(char *cmd, ...); +extern int execv_git_cmd(const char **argv); /* NULL terminated */ +extern int execl_git_cmd(const char *cmd, ...); #endif /* __GIT_EXEC_CMD_H_ */ diff --git a/git.c b/git.c index a547dbd91..164d3e9e4 100644 --- a/git.c +++ b/git.c @@ -216,33 +216,33 @@ static void prepend_to_path(const char *dir, int len) setenv("PATH", path, 1); } -static void show_man_page(char *git_cmd) +static void show_man_page(const char *git_cmd) { - char *page; + const char *page; if (!strncmp(git_cmd, "git", 3)) page = git_cmd; else { int page_len = strlen(git_cmd) + 4; - - page = malloc(page_len + 1); - strcpy(page, "git-"); - strcpy(page + 4, git_cmd); - page[page_len] = 0; + char *p = malloc(page_len + 1); + strcpy(p, "git-"); + strcpy(p + 4, git_cmd); + p[page_len] = 0; + page = p; } execlp("man", "man", page, NULL); } -static int cmd_version(int argc, char **argv, char **envp) +static int cmd_version(int argc, const char **argv, char **envp) { printf("git version %s\n", GIT_VERSION); return 0; } -static int cmd_help(int argc, char **argv, char **envp) +static int cmd_help(int argc, const char **argv, char **envp) { - char *help_cmd = argv[1]; + const char *help_cmd = argv[1]; if (!help_cmd) cmd_usage(git_exec_path(), NULL); show_man_page(help_cmd); @@ -251,7 +251,7 @@ static int cmd_help(int argc, char **argv, char **envp) #define LOGSIZE (65536) -static int cmd_log(int argc, char **argv, char **envp) +static int cmd_log(int argc, const char **argv, char **envp) { struct rev_info rev; struct commit *commit; @@ -263,7 +263,7 @@ static int cmd_log(int argc, char **argv, char **envp) argc = setup_revisions(argc, argv, &rev, "HEAD"); while (1 < argc) { - char *arg = argv[1]; + const char *arg = argv[1]; if (!strncmp(arg, "--pretty", 8)) { commit_format = get_commit_format(arg + 8); if (commit_format == CMIT_FMT_ONELINE) @@ -325,12 +325,12 @@ static int cmd_log(int argc, char **argv, char **envp) #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) -static void handle_internal_command(int argc, char **argv, char **envp) +static void handle_internal_command(int argc, const char **argv, char **envp) { const char *cmd = argv[0]; static struct cmd_struct { const char *cmd; - int (*fn)(int, char **, char **); + int (*fn)(int, const char **, char **); } commands[] = { { "version", cmd_version }, { "help", cmd_help }, @@ -346,9 +346,9 @@ static void handle_internal_command(int argc, char **argv, char **envp) } } -int main(int argc, char **argv, char **envp) +int main(int argc, const char **argv, char **envp) { - char *cmd = argv[0]; + const char *cmd = argv[0]; char *slash = strrchr(cmd, '/'); char git_command[PATH_MAX + 1]; const char *exec_path = NULL; diff --git a/receive-pack.c b/receive-pack.c index 2a3db16d6..93929b537 100644 --- a/receive-pack.c +++ b/receive-pack.c @@ -6,7 +6,7 @@ static const char receive_pack_usage[] = "git-receive-pack "; -static char *unpacker[] = { "unpack-objects", NULL }; +static const char *unpacker[] = { "unpack-objects", NULL }; static int report_status = 0; @@ -177,7 +177,7 @@ static void run_update_post_hook(struct command *cmd) { struct command *cmd_p; int argc; - char **argv; + const char **argv; if (access(update_post_hook, X_OK) < 0) return; @@ -190,10 +190,12 @@ static void run_update_post_hook(struct command *cmd) argv[0] = update_post_hook; for (argc = 1, cmd_p = cmd; cmd_p; cmd_p = cmd_p->next) { + char *p; if (cmd_p->error_string) continue; - argv[argc] = xmalloc(strlen(cmd_p->ref_name) + 1); - strcpy(argv[argc], cmd_p->ref_name); + p = xmalloc(strlen(cmd_p->ref_name) + 1); + strcpy(p, cmd_p->ref_name); + argv[argc] = p; argc++; } argv[argc] = NULL; diff --git a/run-command.c b/run-command.c index b3d287e97..ca67ee933 100644 --- a/run-command.c +++ b/run-command.c @@ -3,7 +3,7 @@ #include #include "exec_cmd.h" -int run_command_v_opt(int argc, char **argv, int flags) +int run_command_v_opt(int argc, const char **argv, int flags) { pid_t pid = fork(); @@ -47,7 +47,7 @@ int run_command_v_opt(int argc, char **argv, int flags) } } -int run_command_v(int argc, char **argv) +int run_command_v(int argc, const char **argv) { return run_command_v_opt(argc, argv, 0); } @@ -55,7 +55,7 @@ int run_command_v(int argc, char **argv) int run_command(const char *cmd, ...) { int argc; - char *argv[MAX_RUN_COMMAND_ARGS]; + const char *argv[MAX_RUN_COMMAND_ARGS]; const char *arg; va_list param; diff --git a/run-command.h b/run-command.h index ef3ee053d..70b477a74 100644 --- a/run-command.h +++ b/run-command.h @@ -13,8 +13,8 @@ enum { #define RUN_COMMAND_NO_STDIO 1 #define RUN_GIT_CMD 2 /*If this is to be git sub-command */ -int run_command_v_opt(int argc, char **argv, int opt); -int run_command_v(int argc, char **argv); +int run_command_v_opt(int argc, const char **argv, int opt); +int run_command_v(int argc, const char **argv); int run_command(const char *cmd, ...); #endif diff --git a/send-pack.c b/send-pack.c index f55838614..c8ffc8d53 100644 --- a/send-pack.c +++ b/send-pack.c @@ -27,7 +27,7 @@ static int is_zero_sha1(const unsigned char *sha1) static void exec_pack_objects(void) { - static char *args[] = { + static const char *args[] = { "pack-objects", "--stdout", NULL @@ -39,7 +39,7 @@ static void exec_pack_objects(void) static void exec_rev_list(struct ref *refs) { struct ref *ref; - static char *args[1000]; + static const char *args[1000]; int i = 0, j; args[i++] = "rev-list"; /* 0 */ diff --git a/shell.c b/shell.c index fc0c73cde..8c08cf0fb 100644 --- a/shell.c +++ b/shell.c @@ -15,7 +15,7 @@ static int do_generic_cmd(const char *me, char *arg) my_argv[1] = arg; my_argv[2] = NULL; - return execv_git_cmd((char**) my_argv); + return execv_git_cmd(my_argv); } static struct commands { diff --git a/upload-pack.c b/upload-pack.c index 635abb371..47560c952 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -46,7 +46,7 @@ static void create_pack_file(void) if (!pid) { int i; int args; - char **argv; + const char **argv; char *buf; char **p; @@ -56,9 +56,9 @@ static void create_pack_file(void) } else args = nr_has + nr_needs + 5; - argv = xmalloc(args * sizeof(char *)); + p = xmalloc(args * sizeof(char *)); + argv = (const char **) p; buf = xmalloc(args * 45); - p = argv; dup2(fd[1], 1); close(0); -- 2.26.2