summaryrefslogtreecommitdiff
path: root/protocols/Telegram/tgl/tg-mime-types.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Telegram/tgl/tg-mime-types.c')
-rw-r--r--protocols/Telegram/tgl/tg-mime-types.c112
1 files changed, 0 insertions, 112 deletions
diff --git a/protocols/Telegram/tgl/tg-mime-types.c b/protocols/Telegram/tgl/tg-mime-types.c
deleted file mode 100644
index 578d8da780..0000000000
--- a/protocols/Telegram/tgl/tg-mime-types.c
+++ /dev/null
@@ -1,112 +0,0 @@
-#include <string.h>
-#include <assert.h>
-#define MAX_MIME_TYPES_NUM 10000
-
-#include "mime-types.c"
-
-static int mime_initialized;
-static int mime_type_number;
-static char *mime_type_names[MAX_MIME_TYPES_NUM];
-static char *mime_type_extensions[MAX_MIME_TYPES_NUM];
-
-static void mime_init (void) {
- char *start = (char *)mime_types;
- char *end = start + mime_types_len;
- mime_initialized = 1;
- char *c = start;
- while (c < end) {
- if (*c == '#') {
- while (c < end && *c != '\n') {
- c ++;
- }
- if (c < end) {
- c ++;
- }
- } else {
- while (*c <= ' ' && *c != '\n' && c < end) {
- c ++;
- }
- assert (*c > ' ' && *c != '\n' && c < end);
- char *name = c;
- while (*c > ' ' && *c != '\n' && c < end) {
- c ++;
- }
- assert (*c <= ' ' && *c != '\n' && c < end);
- *c = 0;
- c ++;
- while (1) {
- while (*c <= ' ' && *c != '\n' && c < end) {
- c ++;
- }
- if (*c == '\n' || c == end) {
- if (*c == '\n') { c ++; }
- break;
- }
- char *ext = c;
- while (*c > ' ' && *c != '\n' && c < end) {
- c ++;
- }
- assert (c != end);
- int br = (*c == '\n');
- *c = 0;
- c ++;
- assert (mime_type_number < MAX_MIME_TYPES_NUM);
- mime_type_names[mime_type_number] = name;
- mime_type_extensions[mime_type_number] = ext;
- mime_type_number ++;
- if (br) { break; }
- }
- }
- }
-}
-
-char *tg_extension_by_mime (const char *mime_type) {
- if (!mime_initialized) {
- mime_init ();
- }
- int i;
- for (i = 0; i < mime_type_number; i++) {
- if (!strcmp (mime_type_names[i], mime_type)) {
- return mime_type_extensions[i];
- }
- }
- return NULL;
-}
-
-char *tg_mime_by_filename (const char *filename) {
- int l = strlen (filename);
- const char *p = filename - 1 + l;
- while (p >= filename && *p != '.') {
- p --;
- }
- p ++;
-
- if (!mime_initialized) {
- mime_init ();
- }
-
- static char *def = "application/octet-stream";
- if (strlen (p) > 10) {
- return def;
- }
- static char s[11];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- strcpy_s(s, 11, p);
-#else
- strcpy (s, p);
-#endif
- char *q = s;
- while (*q) {
- if (*q >= 'A' && *p <= 'Z') {
- *q = *q + 'z' - 'Z';
- }
- q ++;
- }
- int i;
- for (i = 0; i < mime_type_number; i++) {
- if (!strcmp (mime_type_extensions[i], s)) {
- return mime_type_names[i];
- }
- }
- return def;
-}