dddbad728c
Git's source code assumes that unsigned long is at least as precise as time_t. Which is incorrect, and causes a lot of problems, in particular where unsigned long is only 32-bit (notably on Windows, even in 64-bit versions). So let's just use a more appropriate data type instead. In preparation for this, we introduce the new `timestamp_t` data type. By necessity, this is a very, very large patch, as it has to replace all timestamps' data type in one go. As we will use a data type that is not necessarily identical to `time_t`, we need to be very careful to use `time_t` whenever we interact with the system functions, and `timestamp_t` everywhere else. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
24 lines
606 B
C
24 lines
606 B
C
#ifndef TAG_H
|
|
#define TAG_H
|
|
|
|
#include "object.h"
|
|
|
|
extern const char *tag_type;
|
|
|
|
struct tag {
|
|
struct object object;
|
|
struct object *tagged;
|
|
char *tag;
|
|
timestamp_t date;
|
|
};
|
|
|
|
extern struct tag *lookup_tag(const unsigned char *sha1);
|
|
extern int parse_tag_buffer(struct tag *item, const void *data, unsigned long size);
|
|
extern int parse_tag(struct tag *item);
|
|
extern struct object *deref_tag(struct object *, const char *, int);
|
|
extern struct object *deref_tag_noverify(struct object *);
|
|
extern int gpg_verify_tag(const unsigned char *sha1,
|
|
const char *name_to_report, unsigned flags);
|
|
|
|
#endif /* TAG_H */
|