Re: minor problems in git.c
- From
Alex Riesen <raa.lkml@gmail.com>
- Date
- Dec 1, 2005, 12:48 UTC
- Message-ID
- <81b0412b0512010448u7fcdddacnd7de5df217ab3ca@mail.gmail.com>
- In-Reply-To
- <72499e3b0512010400i1de76ed2la22cd745f811007f@mail.gmail.com>
On 12/1/05, Robert Watson <robert.oo.watson@gmail.com> wrote:
> There are some minor problems in git.c:
I had the following patches in my tree for some time. Even forgot about them, sorry. The second on top of the first.
- Use stderr for error output - Build git_command more careful - ENOENT is good enough for check of failed exec to show usage, no access() check needed
Use stderr for error output and build git_command more careful
---
git.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-)
081fc78a8c8e640420ac7e44d93a2a45246f5c2f
diff --git a/git.c b/git.c index bdd3f8d..9468b58 100644 --- a/git.c +++ b/git.c @@ -283,16 +283,15 @@ int main(int argc, char **argv, char **e len = strlen(git_command); prepend_to_path(git_command, len); - strncat(&git_command[len], "/git-", sizeof(git_command) - len); - len += 5; - strncat(&git_command[len], argv[i], sizeof(git_command) - len); + snprintf(git_command + len, sizeof(git_command) - len, "/git-%s", + argv[i]); if (access(git_command, X_OK)) usage(exec_path, "'%s' is not a git-command", argv[i]); /* execve() can only ever return if it fails */ execve(git_command, &argv[i], envp); - printf("Failed to run command '%s': %s\n", git_command, strerror(errno)); + fprintf(stderr, "git: '%s': %s\n", git_command, strerror(errno)); return 1; }
-- 0.99.9.GIT ENOENT is good enough, no access() check needed --- git.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) ac97adc8152a1e5ac78a03f218a3dab012bf8ba9 diff --git a/git.c b/git.c index 9468b58..c8c2b4a 100644 --- a/git.c +++ b/git.c @@ -286,12 +286,12 @@ int main(int argc, char **argv, char **e snprintf(git_command + len, sizeof(git_command) - len, "/git-%s", argv[i]); - if (access(git_command, X_OK)) - usage(exec_path, "'%s' is not a git-command", argv[i]); - /* execve() can only ever return if it fails */ execve(git_command, &argv[i], envp); - fprintf(stderr, "git: '%s': %s\n", git_command, strerror(errno)); + if ( ENOENT == errno ) + usage(exec_path, "'%s' is not a git-command", argv[i]); + else + fprintf(stderr, "git: '%s': %s\n", git_command, strerror(errno)); return 1; } -- 0.99.9.GIT