#include <revision.h>
#include <log-tree.h>
#include <archive.h>
+#include <string-list.h>
#include <xdiff-interface.h>
#include <xdiff/xdiff.h>
#include <utf8.h>
+#include <notes.h>
+#include <graph.h>
/*
typedef void (*filepair_fn)(struct diff_filepair *pair);
typedef void (*linediff_fn)(char *line, int len);
+typedef enum {
+ ABOUT, COMMIT, SOURCE
+} filter_type;
+
+struct cgit_filter {
+ char *cmd;
+ char **argv;
+ int old_stdout;
+ int pipe_fh[2];
+ int pid;
+ int exitstatus;
+};
+
struct cgit_repo {
char *url;
char *name;
char *desc;
char *owner;
char *defbranch;
- char *group;
char *module_link;
char *readme;
+ char *section;
char *clone_url;
+ char *logo;
+ char *logo_link;
int snapshots;
+ int enable_commit_graph;
int enable_log_filecount;
int enable_log_linecount;
+ int enable_remote_branches;
+ int enable_subject_links;
int max_stats;
time_t mtime;
+ struct cgit_filter *about_filter;
+ struct cgit_filter *commit_filter;
+ struct cgit_filter *source_filter;
};
+typedef void (*repo_config_fn)(struct cgit_repo *repo, const char *name,
+ const char *value);
+
struct cgit_repolist {
int length;
int count;
int nohead;
char *sort;
int showmsg;
-};
-
-struct cgit_filter {
- char *cmd;
- char **argv;
- int old_stdout;
- int pipe_fh[2];
- int pid;
- int exitstatus;
+ int ssdiff;
+ int show_all;
+ int context;
+ int ignorews;
+ char *vpath;
};
struct cgit_config {
char *logo;
char *logo_link;
char *module_link;
- char *repo_group;
+ char *project_list;
+ char *readme;
char *robots;
char *root_title;
char *root_desc;
char *root_readme;
char *script_name;
+ char *section;
char *virtual_root;
+ char *strict_export;
int cache_size;
int cache_dynamic_ttl;
int cache_max_create_time;
int cache_repo_ttl;
int cache_root_ttl;
+ int cache_scanrc_ttl;
int cache_static_ttl;
int embedded;
+ int enable_filter_overrides;
+ int enable_gitweb_owner;
int enable_index_links;
+ int enable_commit_graph;
int enable_log_filecount;
int enable_log_linecount;
+ int enable_remote_branches;
+ int enable_subject_links;
+ int enable_tree_linenumbers;
int local_time;
+ int max_atom_items;
int max_repo_count;
int max_commit_count;
int max_lock_attempts;
int max_msg_len;
int max_repodesc_len;
+ int max_blob_size;
int max_stats;
int nocache;
+ int noplainemail;
int noheader;
int renamelimit;
+ int remove_suffix;
+ int scan_hidden_path;
+ int section_from_path;
int snapshots;
int summary_branches;
int summary_log;
int summary_tags;
+ int ssdiff;
+ struct string_list mimetypes;
+ struct cgit_filter *about_filter;
+ struct cgit_filter *commit_filter;
+ struct cgit_filter *source_filter;
};
struct cgit_page {
char *statusmsg;
};
+struct cgit_environment {
+ char *cgit_config;
+ char *http_host;
+ char *https;
+ char *no_http;
+ char *path_info;
+ char *query_string;
+ char *request_method;
+ char *script_name;
+ char *server_name;
+ char *server_port;
+};
+
struct cgit_context {
+ struct cgit_environment env;
struct cgit_query qry;
struct cgit_config cfg;
struct cgit_repo *repo;
extern int cgit_diff_files(const unsigned char *old_sha1,
const unsigned char *new_sha1,
unsigned long *old_size, unsigned long *new_size,
- int *binary, linediff_fn fn);
+ int *binary, int context, int ignorews,
+ linediff_fn fn);
extern void cgit_diff_tree(const unsigned char *old_sha1,
const unsigned char *new_sha1,
- filepair_fn fn, const char *prefix);
+ filepair_fn fn, const char *prefix, int ignorews);
-extern void cgit_diff_commit(struct commit *commit, filepair_fn fn);
+extern void cgit_diff_commit(struct commit *commit, filepair_fn fn,
+ const char *prefix);
+__attribute__((format (printf,1,2)))
extern char *fmt(const char *format,...);
extern struct commitinfo *cgit_parse_commit(struct commit *commit);
extern int cgit_parse_snapshots_mask(const char *str);
-extern int cgit_open_filter(struct cgit_filter *filter);
+extern int cgit_open_filter(struct cgit_filter *filter, struct cgit_repo * repo);
extern int cgit_close_filter(struct cgit_filter *filter);
+extern int readfile(const char *path, char **buf, size_t *size);
+
+extern char *expand_macros(const char *txt);
#endif /* CGIT_H */