/* ui-plain.c: functions for output of plain blobs by path
*
- * Copyright (C) 2008 Lars Hjemli
+ * Copyright (C) 2006-2014 cgit Development Team <cgit@lists.zx2c4.com>
*
* Licensed under GNU General Public License v2
* (see COPYING for full license text)
mime = string_list_lookup(&ctx.cfg.mimetypes, ext);
if (mime) {
ctx.page.mimetype = (char *)mime->util;
+ ctx.page.charset = NULL;
} else {
ctx.page.mimetype = get_mimetype_from_file(ctx.cfg.mimetype_file, ext);
- if (ctx.page.mimetype)
+ if (ctx.page.mimetype) {
freemime = 1;
+ ctx.page.charset = NULL;
+ }
}
}
if (!ctx.page.mimetype) {
- if (buffer_is_binary(buf, size))
+ if (buffer_is_binary(buf, size)) {
ctx.page.mimetype = "application/octet-stream";
- else
+ ctx.page.charset = NULL;
+ } else {
ctx.page.mimetype = "text/plain";
+ }
}
ctx.page.filename = path;
ctx.page.size = size;
static char *buildpath(const char *base, int baselen, const char *path)
{
if (path[0])
- return fmt("%.*s%s/", baselen, base, path);
+ return fmtalloc("%.*s%s/", baselen, base, path);
else
- return fmt("%.*s/", baselen, base);
+ return fmtalloc("%.*s/", baselen, base);
}
static void print_dir(const unsigned char *sha1, const char *base,
fullpath);
html("</li>\n");
}
+ free(fullpath);
}
static void print_dir_entry(const unsigned char *sha1, const char *base,
cgit_plain_link(path, NULL, NULL, ctx.qry.head, ctx.qry.sha1,
fullpath);
html("</li>\n");
+ free(fullpath);
}
static void print_dir_tail(void)