435 lines · 15.6 KB · Brainfuck
RawDownload
implement EncoderAlias; include "sys.m";include "hash.m"; include "converter.m"; lookup( targ : string ) : string{	# lookup the proper name of an alias 	table   := mastertable; 	while( 1 )	{		end := len table;		if ( end <= 20 )		{			# linear search			for( x:=0; x < end; x++ )			{				(alias,proper) := table[x];				if ( alias == targ )					return( proper );			}			# search failed			return(nil);		} 		# do binary search		mid := int end / 2;		(alias,proper) := table[mid];		if ( alias == targ )			return( proper ); 		# search failed setup next portion		if ( alias < targ )			table = table[mid+1:];		else			table = table[:mid-1];	}		 	return( nil );}   ## alias table: each entry is an (alias,proper)# pair of strings.  This table MUST be in# sorted order, else the search fails.# by placing in a initialized module-global# the resulting size and load/init time is greatly# reduced.#mastertable := array[] of {	("037",                   "Cp037"),	("1006",                  "Cp1006"),	("1025",                  "Cp1025"),	("1026",                  "Cp1026"),	("1089",                  "8859_6"),	("1097",                  "Cp1097"),	("1098",                  "Cp1098"),	("1112",                  "Cp1112"),	("1122",                  "Cp1122"),	("1123",                  "Cp1123"),	("1124",                  "Cp1124"),	("1381",                  "Cp1381"),        # MDA 	("1383",                  "Cp1383"),        # MDA 	("273",                   "Cp273"),	("277",                   "Cp277"),	("278",                   "Cp278"),	("280",                   "Cp280"),	("284",                   "Cp284"),	("285",                   "Cp285"),	("297",                   "Cp297"),	("33722",                 "Cp33722"),       # MDA 	("420",                   "Cp420"),	("424",                   "Cp424"),	("437",                   "Cp437"),	("500",                   "Cp500"),	("737",                   "Cp737"),	("775",                   "Cp775"),	("813",                   "8859_7"),	("819",                   "8859_1"),	("838",                   "Cp838"),         # MDA 	("850",                   "Cp850"),	("852",                   "Cp852"),	("855",                   "Cp855"),	("856",                   "Cp856"),	("857",                   "Cp857"),	("860",                   "Cp860"),	("861",                   "Cp861"),	("862",                   "Cp862"),	("863",                   "Cp863"),	("865",                   "Cp865"),	("866",                   "Cp866"),	("868",                   "Cp868"),	("869",                   "Cp869"),	("870",                   "Cp870"),	("871",                   "Cp871"),	("874",                   "Cp874"),	("875",                   "Cp875"),	("912",                   "8859_2"),	("913",                   "8859_3"),	("914",                   "8859_4"),	("915",                   "8859_5"),	("916",                   "8859_8"),	("918",                   "Cp918"),	("920",                   "8859_9"),	("921",                   "Cp921"),	("922",                   "Cp922"),	("930",                   "Cp930"),         # MDA 	("933",                   "Cp933"),         # MDA 	("935",                   "Cp935"),         # MDA 	("937",                   "Cp937"),         # MDA 	("939",                   "Cp939"),         # MDA 	("942",                   "Cp942"),         # MDA 	("948",                   "Cp948"),         # MDA 	("949",                   "Cp949"),         # MDA 	("950",                   "Cp950"),         # MDA 	("964",                   "Cp964"),         # MDA 	("970",                   "Cp970"),         # MDA 	("arabic",                "8859_6"),	("asmo-708",              "8859_6"),	("cp-gr",                 "Cp869"),	("cp-is",                 "Cp861"),	("cp037",                 "Cp037"),	("cp1006",                "Cp1006"),	("cp1025",                "Cp1025"),	("cp1026",                "Cp1026"),	("cp1089",                "8859_6"),	("cp1097",                "Cp1097"),	("cp1098",                "Cp1098"),	("cp1112",                "Cp1112"),	("cp1122",                "Cp1122"),	("cp1123",                "Cp1123"),	("cp1124",                "Cp1124"),	("cp1381",                "Cp1381"),        # MDA 	("cp1383",                "Cp1383"),        # MDA 	("cp273",                 "Cp273"),	("cp277",                 "Cp277"),	("cp278",                 "Cp278"),	("cp280",                 "Cp280"),	("cp284",                 "Cp284"),	("cp285",                 "Cp285"),	("cp297",                 "Cp297"),	("cp33722",               "Cp33722"),       # MDA 	("cp420",                 "Cp420"),	("cp424",                 "Cp424"),	("cp437",                 "Cp437"),	("cp500",                 "Cp500"),	("cp737",                 "Cp737"),	("cp775",                 "Cp775"),	("cp813",                 "8859_7"),	("cp819",                 "8859_1"),	("cp838",                 "Cp838"),         # MDA 	("cp850",                 "Cp850"),	("cp852",                 "Cp852"),	("cp855",                 "Cp855"),	("cp856",                 "Cp856"),	("cp857",                 "Cp857"),	("cp860",                 "Cp860"),	("cp861",                 "Cp861"),	("cp862",                 "Cp862"),	("cp863",                 "Cp863"),	("cp864",                 "Cp864"),	("cp865",                 "Cp865"),	("cp866",                 "Cp866"),	("cp868",                 "Cp868"),	("cp869",                 "Cp869"),	("cp870",                 "Cp870"),	("cp871",                 "Cp871"),	("cp874",                 "Cp874"),	("cp875",                 "Cp875"),	("cp912",                 "8859_2"),	("cp913",                 "8859_3"),	("cp914",                 "8859_4"),	("cp915",                 "8859_5"),	("cp916",                 "8859_8"),	("cp918",                 "Cp918"),	("cp920",                 "8859_9"),	("cp921",                 "Cp921"),	("cp922",                 "Cp922"),	("cp930",                 "Cp930"),         # MDA 	("cp933",                 "Cp933"),         # MDA 	("cp935",                 "Cp935"),         # MDA 	("cp937",                 "Cp937"),         # MDA 	("cp939",                 "Cp939"),         # MDA 	("cp942",                 "Cp942"),         # MDA 	("cp948",                 "Cp948"),         # MDA 	("cp949",                 "Cp949"),         # MDA 	("cp950",                 "Cp950"),         # MDA 	("cp964",                 "Cp964"),         # MDA 	("cp970",                 "Cp970"),         # MDA 	("csISOLatin1",           "8859_1"),	("cseucpkdfmtjapanese",   "EUCJIS"),	("csibm857",              "Cp857"),	("csibm860",              "Cp860"),	("csibm861",              "Cp861"),	("csibm863",              "Cp863"),	("csibm864",              "Cp864"),	("csibm865",              "Cp865"),	("csibm865",              "Cp866"),	("csibm869",              "Cp869"),	("csiso2022jp",           "JIS"),	("csisolatin2",           "8859_2"),	("csisolatin3",           "8859_3"),	("csisolatin4",           "8859_4"),	("csisolatin5",           "8859_9"),	("csisolatinarabic",      "8859_6"),	("csisolatincyrillic",    "8859_5"),	("csisolatingreek",       "8859_7"),	("csisolatinhebrew",      "8859_8"),	("csjisencoding",         "JIS"),	("cskoi8r",               "KOI8_R"),	("cspc850multilingual",   "Cp850"),	("cspc862latinhebrew",    "Cp862"),	("cspc8codepage437",      "Cp437"),	("cspcp852",              "Cp852"),	("cspcp855",              "Cp855"),	("csshiftjis",            "SJIS"),	("cswindows31j",          "SJIS"),	("cyrillic",              "8859_5"),	("ecma-114",              "8859_6"),	("ecma-118",              "8859_7"),	("elot_928",              "8859_7"),	("extended_unix_code_packed_format_for_japanese", "EUCJIS"),	("greek",                 "8859_7"),	("greek8",                "8859_7"),	("hebrew",                "8859_8"),	("ibm-037",               "Cp037"),	("ibm-1006",              "Cp1006"),	("ibm-1025",              "Cp1025"),	("ibm-1026",              "Cp1026"),	("ibm-1089",              "8859_6"),	("ibm-1097",              "Cp1097"),	("ibm-1098",              "Cp1098"),	("ibm-1112",              "Cp1112"),	("ibm-1122",              "Cp1122"),	("ibm-1123",              "Cp1123"),	("ibm-1124",              "Cp1124"),	("ibm-1381",              "Cp1381"),        # MDA 	("ibm-1383",              "Cp1383"),        # MDA 	("ibm-273",               "Cp273"),	("ibm-277",               "Cp277"),	("ibm-278",               "Cp278"),	("ibm-280",               "Cp280"),	("ibm-284",               "Cp284"),	("ibm-285",               "Cp285"),	("ibm-297",               "Cp297"),	("ibm-33722",             "Cp33722"),       # MDA 	("ibm-420",               "Cp420"),	("ibm-424",               "Cp424"),	("ibm-437",               "Cp437"),	("ibm-500",               "Cp500"),	("ibm-737",               "Cp737"),	("ibm-775",               "Cp775"),	("ibm-813",               "8859_7"),	("ibm-819",               "8859_1"),	("ibm-838",               "Cp838"),         # MDA 	("ibm-850",               "Cp850"),	("ibm-852",               "Cp852"),	("ibm-855",               "Cp855"),	("ibm-856",               "Cp856"),	("ibm-857",               "Cp857"),	("ibm-860",               "Cp860"),	("ibm-861",               "Cp861"),	("ibm-862",               "Cp862"),	("ibm-863",               "Cp863"),	("ibm-864",               "Cp864"),	("ibm-865",               "Cp865"),	("ibm-866",               "Cp866"),	("ibm-868",               "Cp868"),	("ibm-869",               "Cp869"),	("ibm-870",               "Cp870"),	("ibm-871",               "Cp871"),	("ibm-874",               "Cp874"),	("ibm-875",               "Cp875"),	("ibm-912",               "8859_2"),	("ibm-913",               "8859_3"),	("ibm-914",               "8859_4"),	("ibm-915",               "8859_5"),	("ibm-916",               "8859_8"),	("ibm-918",               "Cp918"),	("ibm-920",               "8859_9"),	("ibm-921",               "Cp921"),	("ibm-922",               "Cp922"),	("ibm-930",               "Cp930"),         # MDA 	("ibm-933",               "Cp933"),         # MDA 	("ibm-935",               "Cp935"),         # MDA 	("ibm-937",               "Cp937"),         # MDA 	("ibm-939",               "Cp939"),         # MDA 	("ibm-942",               "Cp942"),         # MDA 	("ibm-948",               "Cp948"),         # MDA 	("ibm-949",               "Cp949"),         # MDA 	("ibm-950",               "Cp950"),         # MDA 	("ibm-964",               "Cp964"),         # MDA 	("ibm-970",               "Cp970"),         # MDA 	("ibm037",                "Cp037"),	("ibm1006",               "Cp1006"),	("ibm1025",               "Cp1025"),	("ibm1026",               "Cp1026"),	("ibm1089",               "8859_6"),	("ibm1097",               "Cp1097"),	("ibm1098",               "Cp1098"),	("ibm1112",               "Cp1112"),	("ibm1122",               "Cp1122"),	("ibm1123",               "Cp1123"),	("ibm1124",               "Cp1124"),	("ibm1381",               "Cp1381"),        # MDA 	("ibm1383",               "Cp1383"),        # MDA 	("ibm273",                "Cp273"),	("ibm277",                "Cp277"),	("ibm278",                "Cp278"),	("ibm280",                "Cp280"),	("ibm284",                "Cp284"),	("ibm285",                "Cp285"),	("ibm297",                "Cp297"),	("ibm33722",              "Cp33722"),       # MDA 	("ibm420",                "Cp420"),	("ibm424",                "Cp424"),	("ibm437",                "Cp437"),	("ibm500",                "Cp500"),	("ibm737",                "Cp737"),	("ibm775",                "Cp775"),	("ibm813",                "8859_7"),	("ibm819",                "8859_1"),	("ibm838",                "Cp838"),         # MDA 	("ibm850",                "Cp850"),	("ibm852",                "Cp852"),	("ibm855",                "Cp855"),	("ibm856",                "Cp856"),	("ibm857",                "Cp857"),	("ibm860",                "Cp860"),	("ibm861",                "Cp861"),	("ibm862",                "Cp862"),	("ibm863",                "Cp863"),	("ibm864",                "Cp864"),	("ibm865",                "Cp865"),	("ibm866",                "Cp866"),	("ibm868",                "Cp868"),	("ibm869",                "Cp869"),	("ibm870",                "Cp870"),	("ibm871",                "Cp871"),	("ibm874",                "Cp874"),	("ibm875",                "Cp875"),	("ibm912",                "8859_2"),	("ibm913",                "8859_3"),	("ibm914",                "8859_4"),	("ibm915",                "8859_5"),	("ibm916",                "8859_8"),	("ibm918",                "Cp918"),	("ibm920",                "8859_9"),	("ibm921",                "Cp921"),	("ibm922",                "Cp922"),	("ibm930",                "Cp930"),         # MDA 	("ibm933",                "Cp933"),         # MDA 	("ibm935",                "Cp935"),         # MDA 	("ibm937",                "Cp937"),         # MDA 	("ibm939",                "Cp939"),         # MDA 	("ibm942",                "Cp942"),         # MDA 	("ibm948",                "Cp948"),         # MDA 	("ibm949",                "Cp949"),         # MDA 	("ibm950",                "Cp950"),         # MDA 	("ibm964",                "Cp964"),         # MDA 	("ibm970",                "Cp970"),         # MDA 	("iso-2022-jp",           "JIS"),	("iso-8859-1",            "8859_1"),	("iso-8859-2",            "8859_2"),	("iso-8859-3",            "8859_3"),	("iso-8859-4",            "8859_4"),	("iso-8859-5",            "8859_5"),	("iso-8859-6",            "8859_6"),	("iso-8859-7",            "8859_7"),	("iso-8859-8",            "8859_8"),	("iso-8859-9",            "8859_9"),	("iso-ir-100",            "8859_1"),	("iso-ir-101",            "8859_2"),	("iso-ir-109",            "8859_3"),	("iso-ir-110",            "8859_4"),	("iso-ir-126",            "8859_7"),	("iso-ir-127",            "8859_6"),	("iso-ir-138",            "8859_8"),	("iso-ir-144",            "8859_5"),	("iso-ir-148",            "8859_9"),	("iso_8859-1",            "8859_1"),	("iso_8859-1:1978",       "8859_1"),	("iso_8859-2",            "8859_2"),	("iso_8859-2:1987",       "8859_2"),	("iso_8859-3",            "8859_3"),	("iso_8859-3:1988",       "8859_3"),	("iso_8859-4",            "8859_4"),	("iso_8859-4:1988",       "8859_4"),	("iso_8859-5",            "8859_5"),	("iso_8859-5:1988",       "8859_5"),	("iso_8859-6",            "8859_6"),	("iso_8859-6:1987",       "8859_6"),	("iso_8859-7",            "8859_7"),	("iso_8859-7:1987",       "8859_7"),	("iso_8859-8",            "8859_8"),	("iso_8859-8:1988",       "8859_8"),	("iso_8859-9",            "8859_9"),	("iso_8859-9:1989",       "8859_9"),	("jis auto detect",       "JISAutoDetect"),	("jis_encoding",          "JIS"),	("koi8-r",                "KOI8_R"),	("ks_c_5601-1987",        "KSC5601"),	("ksc_5601",              "KSC5601"),	("l1",                    "8859_1"),	("l2",                    "8859_2"),	("l3",                    "8859_3"),	("l4",                    "8859_4"),	("l5",                    "8859_9"),	("latin1",                "8859_1"),	("latin2",                "8859_2"),	("latin3",                "8859_3"),	("latin4",                "8859_4"),	("latin5",                "8859_9"),	("ms_kanji",              "SJIS"),	("shift_jis",             "SJIS"),	("windows-1250",          "Cp1250"),	("windows-1251",          "Cp1251"),	("windows-1252",          "Cp1252"),	("windows-1253",          "Cp1253"),	("windows-1254",          "Cp1254"),	("windows-1255",          "Cp1255"),	("windows-1256",          "Cp1256"),	("windows-1257",          "Cp1257"),	("windows-1258",          "Cp1258"),	("windows-31J",           "SJIS"),	("windows-874",          	"MS874")}; 

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t