#ifndef REF_FILTER_H
#define REF_FILTER_H
#include "gettext.h"
#include "oid-array.h"
#include "commit.h"
#include "string-list.h"
#include "strvec.h"
#include "commit-reach.h"
#define QUOTE_NONE …
#define QUOTE_SHELL …
#define QUOTE_PERL …
#define QUOTE_PYTHON …
#define QUOTE_TCL …
#define FILTER_REFS_TAGS …
#define FILTER_REFS_BRANCHES …
#define FILTER_REFS_REMOTES …
#define FILTER_REFS_OTHERS …
#define FILTER_REFS_REGULAR …
#define FILTER_REFS_DETACHED_HEAD …
#define FILTER_REFS_PSEUDOREFS …
#define FILTER_REFS_ROOT_REFS …
#define FILTER_REFS_KIND_MASK …
struct atom_value;
struct ref_sorting;
struct ahead_behind_count;
struct option;
enum ref_sorting_order { … };
struct ref_array_item { … };
struct ref_array { … };
struct ref_filter { … };
struct ref_format { … };
#define REF_FILTER_INIT …
#define REF_FORMAT_INIT …
#define _OPT_MERGED_NO_MERGED(option, filter, h) …
#define OPT_MERGED(f, h) …
#define OPT_NO_MERGED(f, h) …
#define OPT_REF_SORT(var) …
#define OPT_REF_FILTER_EXCLUDE(var) …
int filter_refs(struct ref_array *array, struct ref_filter *filter, unsigned int type);
void filter_and_format_refs(struct ref_filter *filter, unsigned int type,
struct ref_sorting *sorting,
struct ref_format *format);
void ref_array_clear(struct ref_array *array);
int verify_ref_format(struct ref_format *format);
void ref_array_sort(struct ref_sorting *sort, struct ref_array *array);
void ref_sorting_set_sort_flags_all(struct ref_sorting *sorting, unsigned int mask, int on);
int format_ref_array_item(struct ref_array_item *info,
struct ref_format *format,
struct strbuf *final_buf,
struct strbuf *error_buf);
void ref_sorting_release(struct ref_sorting *);
struct ref_sorting *ref_sorting_options(struct string_list *);
int parse_opt_merge_filter(const struct option *opt, const char *arg, int unset);
char *get_head_description(void);
void setup_ref_filter_porcelain_msg(void);
void print_formatted_ref_array(struct ref_array *array, struct ref_format *format);
void pretty_print_ref(const char *name, const struct object_id *oid,
struct ref_format *format);
struct ref_array_item *ref_array_push(struct ref_array *array,
const char *refname,
const struct object_id *oid);
void filter_ahead_behind(struct repository *r,
struct ref_format *format,
struct ref_array *array);
void filter_is_base(struct repository *r,
struct ref_format *format,
struct ref_array *array);
void ref_filter_init(struct ref_filter *filter);
void ref_filter_clear(struct ref_filter *filter);
void ref_format_init(struct ref_format *format);
void ref_format_clear(struct ref_format *format);
#endif