]> git.cameronkatri.com Git - cgit.git/blobdiff - ui-summary.c
git: update to v2.32.0
[cgit.git] / ui-summary.c
index a5c70788104373b07fa9071e905541f7ef47c043..947812a814caff74bab85079ab7559640d7f5753 100644 (file)
@@ -9,9 +9,10 @@
 #include "cgit.h"
 #include "ui-summary.h"
 #include "html.h"
+#include "ui-blob.h"
 #include "ui-log.h"
+#include "ui-plain.h"
 #include "ui-refs.h"
-#include "ui-blob.h"
 #include "ui-shared.h"
 
 static int urls;
@@ -48,6 +49,7 @@ void cgit_print_summary(void)
        if (ctx.repo->enable_log_linecount)
                columns++;
 
+       cgit_print_layout_start();
        html("<table summary='repository info' class='list nowrap'>");
        cgit_print_branches(ctx.cfg.summary_branches);
        htmlf("<tr class='nohover'><td colspan='%d'>&nbsp;</td></tr>", columns);
@@ -60,6 +62,7 @@ void cgit_print_summary(void)
        urls = 0;
        cgit_add_clone_urls(print_url);
        html("</table>");
+       cgit_print_layout_end();
 }
 
 /* The caller must free the return value. */
@@ -96,13 +99,24 @@ static char* append_readme_path(const char *filename, const char *ref, const cha
        return full_path;
 }
 
-void cgit_print_repo_readme(char *path)
+void cgit_print_repo_readme(const char *path)
 {
-       char *filename, *ref;
+       char *filename, *ref, *mimetype;
        int free_filename = 0;
 
-       if (ctx.repo->readme.nr == 0)
+       mimetype = get_mimetype_for_filename(path);
+       if (mimetype && (!strncmp(mimetype, "image/", 6) || !strncmp(mimetype, "video/", 6))) {
+               ctx.page.mimetype = mimetype;
+               ctx.page.charset = NULL;
+               cgit_print_plain();
+               free(mimetype);
                return;
+       }
+       free(mimetype);
+
+       cgit_print_layout_start();
+       if (ctx.repo->readme.nr == 0)
+               goto done;
 
        filename = ctx.repo->readme.items[0].string;
        ref = ctx.repo->readme.items[0].util;
@@ -111,7 +125,7 @@ void cgit_print_repo_readme(char *path)
                free_filename = 1;
                filename = append_readme_path(filename, ref, path);
                if (!filename)
-                       return;
+                       goto done;
        }
 
        /* Print the calculated readme, either from the git repo or from the
@@ -128,4 +142,7 @@ void cgit_print_repo_readme(char *path)
        html("</div>");
        if (free_filename)
                free(filename);
+
+done:
+       cgit_print_layout_end();
 }