contrib/entitynorm/generate_encoding_aliases.c
3506ac49
b0b8398b
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdint.h>
 #include "../../libclamav/htmlnorm.h"
 #include "../../libclamav/entconv.h"
 #include "../../libclamav/hashtab.h"
3506ac49
 #include <string.h>
 
 static const struct {
 	const char* alias;
 	int   encoding;
 } aliases [] = {
 	{"UTF8",E_UTF8},
 	{"UTF-8",E_UTF8},
 	{"ISO-10646/UTF8",E_UTF8},
 	{"ISO-10646/UTF-8",E_UTF8},
 	{"ISO-10646",E_UCS4},
 	{"10646-1:1993",E_UCS4},
 	{"UCS4",E_UCS4},
 	{"UCS-4",E_UCS4},
 	{"UCS-4BE",E_UCS4_4321},
 	{"UCS-4LE",E_UCS4_1234},
 	{"ISO-10646/UCS4",E_UCS4},
 	{"10646-1:1993/UCS4",E_UCS4},
 	{"UCS2",E_UTF16},
 	{"ISO-10646/UCS2",E_UTF16},
 	{"UTF-16",E_UTF16},
 	{"UTF-16BE",E_UTF16_BE},
 	{"UTF-16LE",E_UTF16_LE},
 	{"UTF16BE",E_UTF16_BE},
 	{"UTF16LE",E_UTF16_LE},
 	{"UTF32",E_UCS4},
 	{"UTF32BE",E_UCS4_4321},
 	{"UTF32LE",E_UCS4_1234},
 	{"UTF-32",E_UCS4},
 	{"UTF-32BE",E_UCS4_4321},
 	{"UTF-32LE",E_UCS4_1234}
 };
 
 static const size_t aliases_cnt = sizeof(aliases)/sizeof(aliases[0]);
c3671221
 extern short cli_debug_flag;
3506ac49
 
 int main(int argc, char* argv[])
 {
cc447ac8
 	struct cli_hashtable ht;
3506ac49
 	size_t i;
 
c3671221
 	cli_debug_flag=1;
cc447ac8
 	cli_hashtab_init(&ht,aliases_cnt);
3506ac49
 
 	for(i=0;i < aliases_cnt;i++) {
cc447ac8
 		cli_hashtab_insert(&ht,(const unsigned char*)aliases[i].alias,strlen(aliases[i].alias),aliases[i].encoding);
3506ac49
 	}
 
cc447ac8
 	cli_hashtab_generate_c(&ht,"aliases_htable");
3506ac49
 	return 0;
 }