/******************************************************************************
 *  The Elm (ME+) Mail System  -  $Revision: 1.76 $   $State: Exp $
 *
 *  Author: Kari Hurtta <hurtta+elm@posti.FMI.FI> 
 *****************************************************************************/

#include <stdio.h>
#include "defs.h"
#include "elmlib.h"
#include "cs_imp.h"

struct charset_type cs_ascii;
struct charset_type cs_unknown;
struct charset_type cs_onebyte;
struct charset_type cs_iso646;
struct charset_type cs_utf8;
struct charset_type cs_utf7;
struct charset_type cs_imap;
struct charset_type cs_iso2022;
struct charset_type cs_euc;

struct  map_info map_ascii;
struct  map_info map_latin1; 
struct  map_info map_koi8r; 
struct  map_info map_cp1251; 
struct  map_info map_invariant;
struct  map_info map_utf8; 
struct  map_info map_utf7; 
struct  map_info map_cp1252;
struct  map_info map_koi8u; 
struct  map_info map_885915;
struct  map_info map_ISO2022_ascii;
struct  map_info map_ISO2022_ascii_latin1;
struct  map_info map_EUC_ascii;
struct  map_info map_EUC_ascii_latin1;

struct setlist sets_iso_8859_X [10] ;
struct setlist set_latin8;
struct setlist set_utf8;
struct setlist set_ISO2022KR;
struct setlist set_EUCKR;
struct setlist set_ISO2022JP;
struct setlist set_EUCJP;
struct setlist set_ISO2022JP2;
struct setlist set_ISO2022CN;
struct setlist set_ISO2022CNEXT;
struct setlist set_EUCCN;
struct setlist set_ISO646JP;
struct setlist set_latin7;
struct setlist set_latin9;
struct setlist set_iso885916;
struct setlist set_koi8e;
struct setlist set_iso_ir_2;
struct setlist set_iso_ir_4;
struct setlist set_iso_ir_8_1;
struct setlist set_iso_ir_8_2;
struct setlist set_iso_ir_9_1;
struct setlist set_iso_ir_9_2;
struct setlist set_iso_ir_10;
struct setlist set_iso_ir_11;
struct setlist set_iso_ir_149;
struct setlist set_iso_ir_13;
struct setlist set_iso_ir_15;
struct setlist set_iso_ir_16;
struct setlist set_iso_ir_17;
struct setlist set_iso_ir_18;
struct setlist set_iso_ir_19;
struct setlist set_iso_ir_21;
struct setlist set_iso_ir_25;
struct setlist set_iso_ir_27;
struct setlist set_iso_ir_37;
struct setlist set_iso_ir_42;
struct setlist set_iso_ir_47;
struct setlist set_iso_ir_49;
struct setlist set_iso_ir_50;
struct setlist set_iso_ir_51;
struct setlist set_iso_ir_54;
struct setlist set_iso_ir_55;
struct setlist set_iso_ir_57;
struct setlist set_iso_ir_58;
struct setlist set_iso_ir_60;
struct setlist set_iso_ir_61;
struct setlist set_iso_ir_69;
struct setlist set_iso_ir_70;
struct setlist set_iso_ir_84;
struct setlist set_iso_ir_85;
struct setlist set_iso_ir_86;
struct setlist set_iso_ir_87;
struct setlist set_iso_ir_89;
struct setlist set_iso_ir_90;
struct setlist set_iso_ir_91;
struct setlist set_iso_ir_92;
struct setlist set_iso_ir_93;
struct setlist set_iso_ir_94;
struct setlist set_iso_ir_95;
struct setlist set_iso_ir_96;
struct setlist set_iso_ir_98;
struct setlist set_iso_ir_99;
struct setlist set_iso_ir_102;
struct setlist set_iso_ir_103;
struct setlist set_iso_ir_121;
struct setlist set_iso_ir_122;
struct setlist set_iso_ir_123;
struct setlist set_iso_ir_128;
struct setlist set_iso_ir_139;
struct setlist set_iso_ir_141;
struct setlist set_iso_ir_142;
struct setlist set_iso_ir_143;
struct setlist set_iso_ir_146;
struct setlist set_iso_ir_147;
struct setlist set_iso_ir_150;
struct setlist set_iso_ir_151;
struct setlist set_iso_ir_152;
struct setlist set_iso_ir_153;
struct setlist set_iso_ir_154;
struct setlist set_iso_ir_155;
struct setlist set_iso_ir_158;
struct setlist set_iso_ir_159;

int main (argc, argv)
     int argc;
     char *argv[];
{
    char * munge;


    int i;

    if (argc != 2) {
	fprintf(stderr,"Usage: %s charset\n",argv[0]);
	exit(1);
    }

    for (i = 0; precompiled_sets[i].charset_type; i++) {
	if (precompiled_sets[i].MIME_name &&
	    0 == istrcmp(precompiled_sets[i].MIME_name,argv[1])) {
	    printf("%s\n",precompiled_sets[i].MIME_name);
	    exit(0);
	}
	if (precompiled_sets[i].codeset &&
	    0 == istrcmp(precompiled_sets[i].codeset,argv[1])) {
	    printf("codeset=\"%s\"\n",precompiled_sets[i].codeset);
	    exit(0);
	}
    }

    /* Then replace every , with : */

    munge = strdup(argv[1]);
    if (munge) {
	char * s;

	for (s = munge; *s; s++) {
	    if (',' == *s)
		*s = ':';
	}

	if (0 == strcmp(argv[1],munge))
	    exit(1);

	for (i = 0; precompiled_sets[i].charset_type; i++) {
	    if (precompiled_sets[i].MIME_name &&
		0 == istrcmp(precompiled_sets[i].MIME_name,munge)) {
		printf("%s\n",precompiled_sets[i].MIME_name);
		exit(0);
	    }
	    if (precompiled_sets[i].codeset &&
		0 == istrcmp(precompiled_sets[i].codeset,munge)) {
		printf("codeset=\"%s\"\n",precompiled_sets[i].codeset);
		exit(0);
	    }
	}
    }

    exit(1);
}

/*
 * Local Variables:
 *  mode:c
 *  c-basic-offset:4
 *  buffer-file-coding-system: iso-8859-1
 * End:
 */


syntax highlighted by Code2HTML, v. 0.9.1