blob: 8d32a3d061b7e8721c335188e49cd1621aeb61d9 [file] [log] [blame]
Lars Hjemlia4d1ca12008-03-24 16:50:57 +01001#ifndef UI_SHARED_H
2#define UI_SHARED_H
3
Peter Colberg4c692412016-01-13 17:25:07 -05004extern const char *cgit_httpscheme(void);
5extern char *cgit_hosturl(void);
6extern const char *cgit_rooturl(void);
7extern char *cgit_currenturl(void);
8extern const char *cgit_loginurl(void);
Lars Hjemlia4d1ca12008-03-24 16:50:57 +01009extern char *cgit_repourl(const char *reponame);
10extern char *cgit_fileurl(const char *reponame, const char *pagename,
11 const char *filename, const char *query);
12extern char *cgit_pageurl(const char *reponame, const char *pagename,
13 const char *query);
14
John Keepingbbfa0062014-08-01 22:14:17 +010015extern void cgit_add_clone_urls(void (*fn)(const char *));
16
Johan Herlandc3f23d42010-06-10 01:09:24 +020017extern void cgit_index_link(const char *name, const char *title,
Jason A. Donenfeld2e4a41e2015-03-03 17:23:40 +010018 const char *class, const char *pattern, const char *sort, int ofs, int always_root);
Johan Herlandc3f23d42010-06-10 01:09:24 +020019extern void cgit_summary_link(const char *name, const char *title,
20 const char *class, const char *head);
21extern void cgit_tag_link(const char *name, const char *title,
John Keepingc422b9b2015-01-15 22:18:14 +000022 const char *class, const char *tag);
Johan Herlandc3f23d42010-06-10 01:09:24 +020023extern void cgit_tree_link(const char *name, const char *title,
24 const char *class, const char *head,
25 const char *rev, const char *path);
John Keeping46c71632018-06-18 14:22:02 +080026extern void cgit_source_link(const char *name, const char *title,
27 const char *class, const char *head,
28 const char *rev, const char *path);
Johan Herlandc3f23d42010-06-10 01:09:24 +020029extern void cgit_plain_link(const char *name, const char *title,
30 const char *class, const char *head,
31 const char *rev, const char *path);
Jeff Smith1649afd2017-10-01 23:39:09 -050032extern void cgit_blame_link(const char *name, const char *title,
33 const char *class, const char *head,
34 const char *rev, const char *path);
Johan Herlandc3f23d42010-06-10 01:09:24 +020035extern void cgit_log_link(const char *name, const char *title,
36 const char *class, const char *head, const char *rev,
37 const char *path, int ofs, const char *grep,
John Keeping30304d82015-08-12 15:55:28 +010038 const char *pattern, int showmsg, int follow);
Jeff Smithf6ffe402017-10-01 23:39:07 -050039extern void cgit_commit_link(const char *name, const char *title,
Johan Herlandc3f23d42010-06-10 01:09:24 +020040 const char *class, const char *head,
John Keepingeeddb5b2014-10-05 10:59:02 +010041 const char *rev, const char *path);
Johan Herlandc3f23d42010-06-10 01:09:24 +020042extern void cgit_patch_link(const char *name, const char *title,
43 const char *class, const char *head,
Johan Herlandeac1b672010-06-10 01:09:33 +020044 const char *rev, const char *path);
Johan Herlandc3f23d42010-06-10 01:09:24 +020045extern void cgit_refs_link(const char *name, const char *title,
46 const char *class, const char *head,
47 const char *rev, const char *path);
48extern void cgit_snapshot_link(const char *name, const char *title,
49 const char *class, const char *head,
50 const char *rev, const char *archivename);
51extern void cgit_diff_link(const char *name, const char *title,
52 const char *class, const char *head,
53 const char *new_rev, const char *old_rev,
John Keeping03f537f2014-10-05 10:59:03 +010054 const char *path);
Johan Herlandc3f23d42010-06-10 01:09:24 +020055extern void cgit_stats_link(const char *name, const char *title,
56 const char *class, const char *head,
57 const char *path);
Lars Hjemlia4d1ca12008-03-24 16:50:57 +010058extern void cgit_object_link(struct object *obj);
59
Lars Hjemli6857bec2011-06-15 10:04:13 +020060extern void cgit_submodule_link(const char *class, char *path,
61 const char *rev);
Andy Green15927282018-06-19 10:32:25 +080062extern const char *cgit_repo_create_url(struct strbuf *sb, struct strbuf *sb_post,
63 const char *page, const char *head,
64 const char *path);
Lars Hjemli6857bec2011-06-15 10:04:13 +020065
John Keeping76498792015-08-14 12:47:11 +010066extern void cgit_print_layout_start(void);
67extern void cgit_print_layout_end(void);
68
John Keepinged5bd302013-04-06 11:23:52 +010069__attribute__((format (printf,1,2)))
70extern void cgit_print_error(const char *fmt, ...);
71__attribute__((format (printf,1,0)))
72extern void cgit_vprint_error(const char *fmt, va_list ap);
John Keeping9c15f3c2016-02-08 15:05:54 +000073extern const struct date_mode *cgit_date_mode(enum date_mode_type type);
John Keepingf2a901d2016-01-19 19:33:05 +000074extern void cgit_print_age(time_t t, int tz, time_t max_relative);
Lukas Fleischerf60ffa12014-01-15 21:53:15 +010075extern void cgit_print_http_headers(void);
Jason A. Donenfeldd7034802015-08-12 14:50:09 +020076extern void cgit_redirect(const char *url, bool permanent);
Lukas Fleischerf60ffa12014-01-15 21:53:15 +010077extern void cgit_print_docstart(void);
Peter Colberg4c692412016-01-13 17:25:07 -050078extern void cgit_print_docend(void);
John Keepingaec12042015-08-14 12:47:01 +010079__attribute__((format (printf,3,4)))
80extern void cgit_print_error_page(int code, const char *msg, const char *fmt, ...);
Lukas Fleischerf60ffa12014-01-15 21:53:15 +010081extern void cgit_print_pageheader(void);
Lars Hjemlia4d1ca12008-03-24 16:50:57 +010082extern void cgit_print_filemode(unsigned short mode);
Lukas Fleischer9984e7a2016-05-24 18:15:18 +020083extern void cgit_compose_snapshot_prefix(struct strbuf *filename,
84 const char *base, const char *ref);
John Keepingbd1b2812018-03-31 14:05:02 +010085extern void cgit_print_snapshot_links(const struct cgit_repo *repo,
John Keepinge491eaa2018-03-31 15:08:59 +010086 const char *ref, const char *separator);
Andy Greenfc033222018-06-26 18:57:21 +080087/* result is NULL or must be freed */
88extern char *cgit_snapshot_prefix(const struct cgit_repo *repo);
Lars Hjemlic3c925f2008-12-07 15:52:35 +010089extern void cgit_add_hidden_formfields(int incl_head, int incl_search,
Johan Herlandc3f23d42010-06-10 01:09:24 +020090 const char *page);
Jeff Smith9337c7e2017-10-01 23:39:06 -050091
92extern void cgit_set_title_from_path(const char *path);
Lars Hjemlia4d1ca12008-03-24 16:50:57 +010093#endif /* UI_SHARED_H */