Clean up compatibility definitions.

This attempts to clean up the way various compatibility
functions are defined and used.

 - A new header file, git-compat-util.h, is introduced.  This
   looks at various NO_XXX and does necessary function name
   replacements, equivalent of -Dstrcasestr=gitstrcasestr in the
   Makefile.

 - Those function name replacements are removed from the Makefile.

 - Common features such as usage(), die(), xmalloc() are moved
   from cache.h to git-compat-util.h; cache.h includes
   git-compat-util.h itself.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano
2005-12-05 11:54:29 -08:00
parent cd8c458947
commit 4050c0df8e
8 changed files with 129 additions and 118 deletions

15
git.c
View File

@ -8,15 +8,12 @@
#include <errno.h>
#include <limits.h>
#include <stdarg.h>
#include "git-compat-util.h"
#ifndef PATH_MAX
# define PATH_MAX 4096
#endif
#ifdef NO_SETENV
extern int gitsetenv(const char *, const char *, int);
#endif
static const char git_usage[] =
"Usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--help] COMMAND [ ARGS ]";
@ -156,10 +153,10 @@ static void list_commands(const char *exec_path, const char *pattern)
}
#ifdef __GNUC__
static void usage(const char *exec_path, const char *fmt, ...)
static void cmd_usage(const char *exec_path, const char *fmt, ...)
__attribute__((__format__(__printf__, 2, 3), __noreturn__));
#endif
static void usage(const char *exec_path, const char *fmt, ...)
static void cmd_usage(const char *exec_path, const char *fmt, ...)
{
if (fmt) {
va_list ap;
@ -254,12 +251,12 @@ int main(int argc, char **argv, char **envp)
else if (!strcmp(arg, "help"))
show_help = 1;
else if (!show_help)
usage(NULL, NULL);
cmd_usage(NULL, NULL);
}
if (i >= argc || show_help) {
if (i >= argc)
usage(exec_path, NULL);
cmd_usage(exec_path, NULL);
show_man_page(argv[i]);
}
@ -297,7 +294,7 @@ int main(int argc, char **argv, char **envp)
execve(git_command, &argv[i], envp);
if (errno == ENOENT)
usage(exec_path, "'%s' is not a git-command", argv[i]);
cmd_usage(exec_path, "'%s' is not a git-command", argv[i]);
fprintf(stderr, "Failed to run command '%s': %s\n",
git_command, strerror(errno));