cGit-UI for Git Repositories

cGit-UI – is a web interface for Git Repositories. cGit CGI script is writen in C and therefore it's fast enough

12 Commits   0 Branches   1 Tag
     5         kx 
     5         kx #ifndef    __CONTEXT_H
     5         kx #define    __CONTEXT_H
     5         kx 
     5         kx #ifdef __cplusplus
     5         kx extern "C" {
     5         kx #endif
     5         kx 
     5         kx 
     5         kx #define CONTEXT_MEM_SIZE  524288
     5         kx 
     5         kx struct __context
     5         kx {
     5         kx   void *_cur_brk;
     5         kx   unsigned char _mem[CONTEXT_MEM_SIZE];
     5         kx };
     5         kx 
     5         kx extern struct __context *pmctx;
     5         kx 
     5         kx #define __cur_brk  (*((void **)&(pmctx->_cur_brk)))
     5         kx #define __mem      ((unsigned char *)&((pmctx->_mem)[0]))
     5         kx 
     5         kx extern void __mctx_init( void );
     5         kx extern void *__sbrk( int incr );
     5         kx 
     5         kx 
     5         kx struct cgit_tmplt_vars {
     5         kx   const char *css;
     5         kx   const char *owner;
     5         kx   const char *author;
     5         kx   const char *description;
     5         kx   const char *keywords;
     5         kx   const char *title;
     5         kx   const char *favicon_path;
     5         kx   const char *syntax_highlight_css;
     5         kx   const char *logo;
     5         kx   const char *logo_alt;
     5         kx   const char *logo_link;
     5         kx   const char *home_page;
     5         kx   const char *snapshots;
     5         kx   const char *status_line;
     5         kx   const char *main_menu_logo;
     5         kx   const char *main_menu_item;
     5         kx   const char *left_menu_items;
     5         kx   const char *popup_menu_items;
     5         kx   const char *right_menu_items;
     5         kx   const char *copyright_notice;
     5         kx   const char *copyright;
     5         kx   const char *page_type;
     5         kx   const char *page_size;
     5         kx   const char *num_of_repos;
     5         kx };
     5         kx 
     5         kx #define CGIT_INFO_INIT  (struct cgit_info) { .kind = GIT_OBJECT_INVALID, .revision = { 0 }, .oid = { 0 }, .mode = GIT_FILEMODE_TREE, .author = NULL, .date = -1, .offset = 0, .mime = NULL, .lang = NULL }
     5         kx 
     5         kx struct cgit_info {
     5         kx   git_object_t kind;
     5         kx   char    revision[GIT_OID_HEXSZ+1];
     5         kx   char         oid[GIT_OID_HEXSZ+1];
     5         kx   git_filemode_t  mode;
     5         kx   const char     *author;
     5         kx   git_time_t      date;
     5         kx   int             offset;
     5         kx   const char     *mime;
     5         kx   const char     *lang;
     5         kx };
     5         kx 
     5         kx struct cgit_repository {
     5         kx   const char       *name;
     5         kx   struct cgit_info  info;
     5         kx   const char       *git_root;
     5         kx   const char       *repo_root;
     5         kx   const char       *relative_path;
     5         kx   struct cgit_info  relative_info;
     5         kx   const char       *relative_html;
     5         kx   const char       *relative_href;
     5         kx   const char       *search_placeholder;
     5         kx   const char       *trunk;    /* trunk    directory name */
     5         kx   const char       *clone_prefix;
     5         kx   const char       *clone_ro_prefix;
     5         kx   int               nbranches; /* number of branches */
     5         kx   int               ncommits;  /* number of commits (no more than 9999) */
     5         kx   int               ntags;     /* number of tags     */
     5         kx };
     5         kx 
     5         kx struct cgit_page {
     5         kx   time_t modified;
     5         kx   time_t expires;
     5         kx   size_t size;
     5         kx   const char *mimetype;
     5         kx   const char *charset;
     5         kx   int status;
     5         kx   const char *status_message;
     5         kx   const char *header;
     5         kx   const char *footer;
     5         kx };
     5         kx 
     5         kx struct cgit_environment {
     5         kx   const char *http_host;
     5         kx   const char *https;
     5         kx   const char *no_http;
     5         kx   const char *path_info;
     5         kx   const char *query_string;
     5         kx   const char *request_uri;
     5         kx   const char *request_scheme;
     5         kx   const char *request_method;
     5         kx   const char *script_name;
     5         kx   const char *server_name;
     5         kx   const char *server_port;
     5         kx   const char *http_cookie;
     5         kx   unsigned int content_lenght;
     5         kx   const char *http_root;
     5         kx   int authenticated;
     5         kx };
     5         kx 
     5         kx struct cgit_query {
     5         kx   int ofs;
     5         kx   const char *rev;
     5         kx   const char *revision;
     5         kx   const char *operation;
     5         kx   const char *search;
     5         kx };
     5         kx 
     5         kx struct cgit_versions {
     5         kx   const char *git;
     5         kx   const char *nginx;
     5         kx   const char *cgit;
     5         kx };
     5         kx 
     5         kx struct cgit_promotion {
     5         kx   const char *analytic_links;
     5         kx   const char *analytic_scripts;
     5         kx   int donate;
     5         kx   const char *donate_css;
     5         kx   const char *donate_html;
     5         kx   const char *donate_js;
     5         kx   const char *donate_header;
     5         kx   const char *donate_purpose;
     5         kx };
     5         kx 
     5         kx struct cgit_context {
     5         kx   struct cgit_environment  env;
     5         kx   struct cgit_promotion    promo;
     5         kx   struct cgit_query        query;
     5         kx   struct cgit_page         page;
     5         kx   struct cgit_tmplt_vars   vars;
     5         kx   struct cgit_repository   repo;
     5         kx   struct cgit_versions     vers;
     5         kx };
     5         kx 
     5         kx 
     5         kx extern const char *ptype_repolist;
     5         kx extern const char *ptype_repo;
     5         kx 
     5         kx extern struct cgit_context ctx;
     5         kx 
     5         kx /*
     5         kx   header/footer template variables:
     5         kx   ================================
     5         kx   ${css}
     5         kx   ${owner}
     5         kx   ${author}
     5         kx   ${description}
     5         kx   ${keywords}
     5         kx   ${title}
     5         kx   ${favicon-path}
     5         kx   ${syntax-highlight-css}
     5         kx   ${logo}
     5         kx   ${logo-alt}
     5         kx   ${logo-link}
     5         kx   ${home-page}
     5         kx   ${snapshots}
     5         kx   ${status-line}
     5         kx   ${main-menu-logo}
     5         kx   ${main-menu-item}
     5         kx   ${left-menu-items}
     5         kx   ${popup-menu-items}
     5         kx   ${right-menu-items}
     5         kx   ${relative-html}
     5         kx   ${search-placeholder}
     5         kx 
     5         kx   ${analytic-links}
     5         kx   ${analytic-scripts}
     5         kx   ${donate-css}
     5         kx   ${donate-html}
     5         kx   ${donate-js}
     5         kx   ${donate-header}
     5         kx   ${donate-purpose}
     5         kx 
     5         kx   ${git-version}
     5         kx   ${nginx-version}
     5         kx   ${cgit-version}
     5         kx   ${copyright-notice}
     5         kx   ${copyright}
     5         kx 
     5         kx   ${page-type}
     5         kx   ${page-size}
     5         kx   ${num-of-repos}
     5         kx  */
     5         kx 
     5         kx extern void cgit_prepare_context( void );
     5         kx extern void cgit_prepare_template_variables( void );
     5         kx extern void cgit_release_template_variables( void );
     5         kx 
     5         kx extern void cgit_parse_query( void );
     5         kx 
     5         kx extern int ctx_grab_int_query_param( const char *name );
     5         kx extern const char *ctx_grab_str_query_param( const char *name );
     5         kx extern const char *ctx_remove_query_param( const char *query_string, const char *name );
     5         kx 
     5         kx 
     5         kx #ifdef __cplusplus
     5         kx }
     5         kx #endif
     5         kx 
     5         kx #endif  /* __CONTEXT_H */