/* -----------------------------------------------------------------------------
* mime.c
*
* This file provides some mimimal MIME handling.
*
* Author(s) : David Beazley (beazley@cs.uchicago.edu)
* Mike Sliczniak (mzsliczn@midway.uchicago.edu)
*
* Copyright (C) 1999-2000. The University of Chicago
* See the file LICENSE for information on usage and redistribution.
* ----------------------------------------------------------------------------- */
static char cvsroot[] = "$Header: /home/pastacvs/cvs-rep/vermicelli/tot/src/SWILL-0.1/Source/SWILL/mime.c,v 1.1 2005/01/27 08:46:25 dillema Exp $";
#include "swillint.h"
typedef struct {
char *suffix;
char *mimetype;
} MimeType;
static MimeType types[] = {
{"txt", "text/plain"},
{"htm", "text/html"},
{"html", "text/html"},
{"gif", "image/gif"},
{"jpg", "image/jpg"},
{"jpeg", "image/jpg"},
{"rgb", "image/rgb"},
{"png", "image/png"},
{"pdf", "application/pdf"},
{ 0, 0},
};
/* -----------------------------------------------------------------------------
* swill_guess_mimetype(DOH *fn)
*
* Give a filename, guess the mimetype based on its suffix
* ----------------------------------------------------------------------------- */
char *
swill_guess_mimetype(const char *filename)
{
char *cfilename;
char *c;
int i;
cfilename = (char *) DohMalloc(strlen(filename)+1);
strcpy(cfilename,filename);
for (c = cfilename; *c; c++) {
*c = tolower(*c);
}
c = cfilename+strlen(cfilename)-1;
while (c >= cfilename) {
if (*c == '.') {
c++;
for (i = 0; types[i].suffix; i++) {
if (strcmp(c,types[i].suffix) == 0) {
DohFree(cfilename);
return types[i].mimetype;
}
}
DohFree(cfilename);
return "text/plain";
}
c--;
}
DohFree(cfilename);
return "text/plain";
}
syntax highlighted by Code2HTML, v. 0.9.1