diff options
author | Junio C Hamano <junkio@cox.net> | 2005-12-05 11:54:29 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-12-05 15:50:29 -0800 |
commit | 4050c0df8ec7043315e2192695de432875239775 (patch) | |
tree | 36ea762082320aae037a95157c6c7f0ffc383046 /cache.h | |
parent | cd8c4589473d2a6669cf882ebcd708a2d81e9168 (diff) | |
download | git-4050c0df8ec7043315e2192695de432875239775.tar.gz git-4050c0df8ec7043315e2192695de432875239775.tar.xz |
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>
Diffstat (limited to 'cache.h')
-rw-r--r-- | cache.h | 96 |
1 files changed, 1 insertions, 95 deletions
@@ -1,23 +1,7 @@ #ifndef CACHE_H #define CACHE_H -#include <unistd.h> -#include <stdio.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <stddef.h> -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <errno.h> -#include <limits.h> -#ifndef NO_MMAP -#include <sys/mman.h> -#endif -#include <sys/param.h> -#include <netinet/in.h> -#include <sys/types.h> -#include <dirent.h> +#include "git-compat-util.h" #include SHA1_HEADER #include <zlib.h> @@ -36,15 +20,6 @@ #define DTYPE(de) DT_UNKNOWN #endif -#ifdef __GNUC__ -#define NORETURN __attribute__((__noreturn__)) -#else -#define NORETURN -#ifndef __attribute__ -#define __attribute__(x) -#endif -#endif - /* * Intensive research over the course of many years has shown that * port 9418 is totally unused by anything else. Or @@ -250,11 +225,6 @@ extern const char *resolve_ref(const char *path, unsigned char *sha1, int); extern int create_symref(const char *git_HEAD, const char *refs_heads_master); extern int validate_symref(const char *git_HEAD); -/* General helper functions */ -extern void usage(const char *err) NORETURN; -extern void die(const char *err, ...) NORETURN __attribute__((format (printf, 1, 2))); -extern int error(const char *err, ...) __attribute__((format (printf, 1, 2))); - extern int base_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2); extern int cache_name_compare(const char *name1, int len1, const char *name2, int len2); @@ -272,30 +242,6 @@ extern int setup_ident(void); extern const char *git_author_info(void); extern const char *git_committer_info(void); -static inline void *xmalloc(size_t size) -{ - void *ret = malloc(size); - if (!ret) - die("Out of memory, malloc failed"); - return ret; -} - -static inline void *xrealloc(void *ptr, size_t size) -{ - void *ret = realloc(ptr, size); - if (!ret) - die("Out of memory, realloc failed"); - return ret; -} - -static inline void *xcalloc(size_t nmemb, size_t size) -{ - void *ret = calloc(nmemb, size); - if (!ret) - die("Out of memory, calloc failed"); - return ret; -} - struct checkout { const char *base_dir; int base_dir_len; @@ -373,20 +319,6 @@ extern void packed_object_info_detail(struct pack_entry *, char *, unsigned long /* Dumb servers support */ extern int update_server_info(int); -#ifdef NO_MMAP - -#ifndef PROT_READ -#define PROT_READ 1 -#define PROT_WRITE 2 -#define MAP_PRIVATE 1 -#define MAP_FAILED ((void*)-1) -#endif - -extern void *gitfakemmap(void *start, size_t length, int prot , int flags, int fd, off_t offset); -extern int gitfakemunmap(void *start, size_t length); - -#endif - typedef int (*config_fn_t)(const char *, const char *); extern int git_default_config(const char *, const char *); extern int git_config_from_file(config_fn_t fn, const char *); @@ -404,31 +336,5 @@ extern char git_default_name[MAX_GITNAME]; #define MAX_ENCODING_LENGTH 64 extern char git_commit_encoding[MAX_ENCODING_LENGTH]; -/* Sane ctype - no locale, and works with signed chars */ -#undef isspace -#undef isdigit -#undef isalpha -#undef isalnum -#undef tolower -#undef toupper -extern unsigned char sane_ctype[256]; -#define GIT_SPACE 0x01 -#define GIT_DIGIT 0x02 -#define GIT_ALPHA 0x04 -#define sane_istest(x,mask) ((sane_ctype[(unsigned char)(x)] & (mask)) != 0) -#define isspace(x) sane_istest(x,GIT_SPACE) -#define isdigit(x) sane_istest(x,GIT_DIGIT) -#define isalpha(x) sane_istest(x,GIT_ALPHA) -#define isalnum(x) sane_istest(x,GIT_ALPHA | GIT_DIGIT) -#define tolower(x) sane_case((unsigned char)(x), 0x20) -#define toupper(x) sane_case((unsigned char)(x), 0) - -static inline int sane_case(int x, int high) -{ - if (sane_istest(x, GIT_ALPHA)) - x = (x & ~0x20) | high; - return x; -} - extern int copy_fd(int ifd, int ofd); #endif /* CACHE_H */ |