X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=cache.h;h=9a6bfb96d9d0f4e8316dbbe60469988cf48f197b;hb=f8348be3be8493a62110a09ab0343213990b416b;hp=1a7e047d762a6f4eab05b6fc34e156c9886ceae9;hpb=e1b10391eabdaaa4c89c53099dd96d5f9d978719;p=git.git diff --git a/cache.h b/cache.h index 1a7e047d..9a6bfb96 100644 --- a/cache.h +++ b/cache.h @@ -179,6 +179,7 @@ extern int commit_index_file(struct cache_file *); extern void rollback_index_file(struct cache_file *); extern int trust_executable_bit; +extern int only_use_symrefs; #define MTIME_CHANGED 0x0001 #define CTIME_CHANGED 0x0002 @@ -313,6 +314,7 @@ extern struct packed_git { void *pack_base; unsigned int pack_last_used; unsigned int pack_use_cnt; + int pack_local; unsigned char sha1[20]; char pack_name[0]; /* something like ".git/objects/pack/xxxxx.pack" */ } *packed_git; @@ -338,7 +340,8 @@ extern int path_match(const char *path, int nr, char **match); extern int match_refs(struct ref *src, struct ref *dst, struct ref ***dst_tail, int nr_refspec, char **refspec, int all); extern int get_ack(int fd, unsigned char *result_sha1); -extern struct ref **get_remote_heads(int in, struct ref **list, int nr_match, char **match); +extern struct ref **get_remote_heads(int in, struct ref **list, int nr_match, char **match, int ignore_funny); +extern int server_supports(const char *feature); extern struct packed_git *parse_pack_index(unsigned char *sha1); extern struct packed_git *parse_pack_index_file(const unsigned char *sha1, @@ -352,7 +355,7 @@ extern struct packed_git *find_sha1_pack(const unsigned char *sha1, extern int use_packed_git(struct packed_git *); extern void unuse_packed_git(struct packed_git *); -extern struct packed_git *add_packed_git(char *, int); +extern struct packed_git *add_packed_git(char *, int, int); extern int num_packed_objects(const struct packed_git *p); extern int nth_packed_object_sha1(const struct packed_git *, int, unsigned char*); extern int find_pack_entry_one(const unsigned char *, struct pack_entry *, struct packed_git *); @@ -386,4 +389,31 @@ extern int git_config_bool(const char *, const char *); extern char git_default_email[MAX_GITNAME]; extern char git_default_name[MAX_GITNAME]; +/* 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 */