hash_print.h 1.17 KB
Newer Older
1 2 3
/* hash_print.h - functions to print hash sums */
#ifndef HASH_PRINT_H
#define HASH_PRINT_H
4

5 6
#include <stdio.h>

7 8 9 10
#ifdef __cplusplus
extern "C" {
#endif

11 12 13
/**
 * An element of a list specifying an output format.
 */
14
typedef struct print_item {
15 16 17 18 19
	struct print_item *next;
	unsigned flags;
	unsigned hash_id;
	unsigned width;
	const char *data;
20 21
} print_item;

22 23 24
/**
 * Name and other info of a hash function
 */
25 26
typedef struct print_hash_info
{
27
	const char *name;
28 29
	char short_name[20];
	char short_char;
30 31 32 33 34
} print_hash_info;

extern print_hash_info hash_info_table[];

struct file_info;
35
struct file_t;
36
struct strbuf_t;
37

38 39 40 41
/* initialization of static data */
void init_hash_info_table(void);
void init_printf_format(struct strbuf_t* out);

42
/* formatted output of hash sums and file information */
43 44 45 46
print_item* parse_print_string(const char* format, unsigned *sum_mask);
void print_line(FILE* out, print_item* list, struct file_info *info);
void free_print_list(print_item* list);

47 48
/* SFV format functions */
void print_sfv_banner(FILE* out);
49
int print_sfv_header_line(FILE* out, struct file_t* file, const char* printpath);
50 51 52 53 54

#ifdef __cplusplus
} /* extern "C" */
#endif /* __cplusplus */

55
#endif /* HASH_PRINT_H */