]> git.cameronkatri.com Git - cgit.git/commitdiff
Merge branch 'lh/mimetypes'
authorLars Hjemli <hjemli@gmail.com>
Sun, 9 Aug 2009 11:45:36 +0000 (13:45 +0200)
committerLars Hjemli <hjemli@gmail.com>
Sun, 9 Aug 2009 11:45:36 +0000 (13:45 +0200)
1  2 
cgit.c
cgit.h
cgitrc.5.txt

diff --combined cgit.c
index f6bb0c7ed01bdb8402ce26c4490609a21e24e4d4,4f414c333437a67106c327c7fddbefa964d400c7..aa1107ae2100f0c13b47f18085f38542bfb3c570
--- 1/cgit.c
--- 2/cgit.c
+++ b/cgit.c
  
  const char *cgit_version = CGIT_VERSION;
  
+ void add_mimetype(const char *name, const char *value)
+ {
+       struct string_list_item *item;
+       item = string_list_insert(xstrdup(name), &ctx.cfg.mimetypes);
+       item->util = xstrdup(value);
+ }
  void config_cb(const char *name, const char *value)
  {
        if (!strcmp(name, "root-title"))
@@@ -51,8 -59,6 +59,8 @@@
                        ctx.cfg.virtual_root = "";
        } else if (!strcmp(name, "nocache"))
                ctx.cfg.nocache = atoi(value);
 +      else if (!strcmp(name, "noplainemail"))
 +              ctx.cfg.noplainemail = atoi(value);
        else if (!strcmp(name, "noheader"))
                ctx.cfg.noheader = atoi(value);
        else if (!strcmp(name, "snapshots"))
                ctx.cfg.clone_prefix = xstrdup(value);
        else if (!strcmp(name, "local-time"))
                ctx.cfg.local_time = atoi(value);
+       else if (!prefixcmp(name, "mimetype."))
+               add_mimetype(name + 9, value);
        else if (!strcmp(name, "repo.group"))
                ctx.cfg.repo_group = xstrdup(value);
        else if (!strcmp(name, "repo.url"))
@@@ -215,6 -223,7 +225,7 @@@ static void prepare_context(struct cgit
        ctx->page.modified = time(NULL);
        ctx->page.expires = ctx->page.modified;
        ctx->page.etag = NULL;
+       memset(&ctx->cfg.mimetypes, 0, sizeof(struct string_list));
  }
  
  struct refmatch {
diff --combined cgit.h
index acb5e8fd52ff1e9a1e8e16dbcbb10569cef36a74,9259f33d60e0d21f6dc61e50e39e094ac43d8a9f..1194eb0209880289729ac3a196d6037ea7427561
--- 1/cgit.h
--- 2/cgit.h
+++ b/cgit.h
@@@ -15,6 -15,7 +15,7 @@@
  #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>
@@@ -168,13 -169,13 +169,14 @@@ struct cgit_config 
        int max_repodesc_len;
        int max_stats;
        int nocache;
 +      int noplainemail;
        int noheader;
        int renamelimit;
        int snapshots;
        int summary_branches;
        int summary_log;
        int summary_tags;
+       struct string_list mimetypes;
  };
  
  struct cgit_page {
diff --combined cgitrc.5.txt
index 77549236072347a9d2c95301f188f822e117e4ba,7256ec0d0fa1a0f6baad63cde084102190cfbce9..0412f64acb507b3a2fa652108890e367017c0732
@@@ -147,6 -147,10 +147,10 @@@ max-stats:
        "month", "quarter" and "year". If unspecified, statistics are
        disabled. Default value: none. See also: "repo.max-stats".
  
+ mimetype.<ext>::
+       Set the mimetype for the specified filename extension. This is used
+       by the `plain` command when returning blob content.
  module-link::
        Text which will be used as the formatstring for a hyperlink when a
        submodule is printed in a directory listing. The arguments for the
@@@ -158,10 -162,6 +162,10 @@@ nocache:
        deprecated, and will not be honored starting with cgit-1.0. Default
        value: "0".
  
 +noplainemail::
 +      If set to "1" showing full author email adresses will be disabled.
 +      Default value: "0".
 +
  noheader::
        Flag which, when set to "1", will make cgit omit the standard header
        on all pages. Default value: none. See also: "embedded".
@@@ -328,6 -328,19 +332,19 @@@ root-readme=/var/www/htdocs/about.htm
  snapshots=tar.gz tar.bz2 zip
  
  
+ ##
+ ## List of common mimetypes
+ ##
+ mimetype.git=image/git
+ mimetype.html=text/html
+ mimetype.jpg=image/jpeg
+ mimetype.jpeg=image/jpeg
+ mimetype.pdf=application/pdf
+ mimetype.png=image/png
+ mimetype.svg=image/svg+xml
  ##
  ## List of repositories.
  ## PS: Any repositories listed when repo.group is unset will not be