typedef void (*linediff_fn)(char *line, int len);
typedef enum {
- ABOUT, COMMIT, SOURCE
+ DIFF_UNIFIED, DIFF_SSDIFF, DIFF_STATONLY
+} diff_type;
+
+typedef enum {
+ ABOUT, COMMIT, SOURCE, EMAIL, AUTH, OWNER
} filter_type;
struct cgit_filter {
struct cgit_filter *about_filter;
struct cgit_filter *commit_filter;
struct cgit_filter *source_filter;
+ struct cgit_filter *email_filter;
+ struct cgit_filter *owner_filter;
struct string_list submodules;
+ int hide;
+ int ignore;
};
typedef void (*repo_config_fn)(struct cgit_repo *repo, const char *name,
struct cgit_query {
int has_symref;
int has_sha1;
- int has_ssdiff;
+ int has_difftype;
char *raw;
char *repo;
char *page;
int nohead;
char *sort;
int showmsg;
- int ssdiff;
+ diff_type difftype;
int show_all;
int context;
int ignorews;
int cache_scanrc_ttl;
int cache_static_ttl;
int cache_about_ttl;
+ int cache_snapshot_ttl;
int case_sensitive_sort;
int embedded;
int enable_filter_overrides;
int summary_branches;
int summary_log;
int summary_tags;
- int ssdiff;
+ diff_type difftype;
int branch_sort;
int commit_sort;
struct string_list mimetypes;
struct cgit_filter *about_filter;
struct cgit_filter *commit_filter;
struct cgit_filter *source_filter;
+ struct cgit_filter *email_filter;
+ struct cgit_filter *owner_filter;
+ struct cgit_filter *auth_filter;
};
struct cgit_page {
const char *script_name;
const char *server_name;
const char *server_port;
+ const char *http_cookie;
+ const char *http_referer;
+ unsigned int content_length;
+ int authenticated;
};
struct cgit_context {