static char rcsid[] = "@(#)$Id: mime.c,v 1.16 2006/04/09 07:37:30 hurtta Exp $";
/******************************************************************************
* The Elm (ME+) Mail System - $Revision: 1.16 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtta+elm@posti.FMI.FI>
* (was hurtta+elm@ozone.FMI.FI)
*****************************************************************************/
#include "def_melib.h"
#include "s_me.h"
DEBUG_VAR(Debug,__FILE__,"mime");
#include <errno.h>
/* Notice that ENCODING_ILLEGAL is -1
*/
char *mime_encode_names[] = {
"none", /* Not used. */
"7bit",
"8bit",
"binary",
"quoted-printable",
"base64",
"X-???", /* ENCODING_EXPERIMENTAL */
"x-uuencoded"
};
void mime_panic(f,ln,pr,ms)
char * f;
int ln;
char *pr;
char *ms;
{
panic("MIME PANIC",f,ln,pr,ms,0);
}
int check_encoding(Encoding)
char *Encoding;
{
char *c, *d, tmp[VERY_LONG_STRING];
int result = ENCODING_ILLEGAL;
DPRINT(Debug,9,(&Debug,
"check_encoding(): Encoding=\"%s\"\n", Encoding));
/* Don't harm "str" */
strfcpy (tmp, Encoding, sizeof(tmp));
rfc822_reap_comments (tmp, NULL, 0);
c = tmp;
d = tmp + strlen(tmp);
while (d > tmp && whitespace(*(d-1)))
d--;
*d = '\0';
while (*c && whitespace(*c))
c++;
if ('\0' == *c)
result = ENCODING_7BIT;
else if (strincmp(c, "x-", 2) == 0) {
result = ENCODING_EXPERIMENTAL;
if (strincmp(c,"x-uue",5) == 0)
result = ENCODING_UUENCODED;
} else {
int i;
for (i = ENCODING_7BIT; i < ENCODING_EXPERIMENTAL; i++) {
if (istrcmp(c, mime_encode_names[i]) == 0) {
result = i;
break;
}
}
}
DPRINT(Debug,9,(&Debug,
"check_encoding()=%s (%d)\n",
ENCODING(result),result));
return(result);
}
/*
* Local Variables:
* mode:c
* c-basic-offset:4
* buffer-file-coding-system: iso-8859-1
* End:
*/
syntax highlighted by Code2HTML, v. 0.9.1