summaryrefslogtreecommitdiff
path: root/mail/elm+ME/files/patch-ad
blob: ae2f5ac41ef0e2409334312c56f77afb27eccf43 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
--- lib/cs_binary.c.old	Wed Aug  9 18:14:34 2000
+++ lib/cs_binary.c	Mon Aug 14 17:07:42 2000
@@ -274,6 +274,51 @@
     &cs_ascii, "KOI8-R", 0, map_init_koi8r, 0 };
 
 
+/* CP1251 ------------------------------------------------------------ */
+
+/* Table compied from official Unicode mapping 2.01 */
+
+static uint16 cp12512unicode[128] = {
+     0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021,
+     0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F,
+     0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
+     0x003F,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F,
+     0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7,
+     0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407,
+     0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7,
+     0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457,
+     0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
+     0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
+     0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
+     0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
+     0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
+     0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
+     0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
+     0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F
+   };
+
+
+static void map_init_cp1251 P_((struct  map_info *map));
+static void map_init_cp1251(map)
+     struct  map_info *map;
+{
+    int i;
+    
+    for (i = 0; i < 128; i++) {
+	map->b.ascii.map_ascii_upper[i] = cp12512unicode[i];
+    }
+
+    map_ascii_init_rev(map);
+    map->map_initialized = 1;
+    
+    dprint(5,(debugfile,
+	      "Map %s initialized\n",map->map_name));
+}
+
+struct  map_info map_cp1251 = {
+    &cs_ascii, "WINDOWS-1251", 0, map_init_cp1251, 0 };
+
+
 /* bytemap --------------------------------------------------------------- */
 
 static void map_bytemap_init_rev P_((struct map_info *map)); 
@@ -2209,7 +2254,7 @@
 
     int i;
     static struct  map_info * maps[] = { &map_ascii, &map_latin1, 
-					 &map_koi8r, NULL };
+					 &map_koi8r, &map_cp1251, NULL };
 
     for (i = 0; maps[i]; i++)
 	if (0 == strcmp(map_name,maps[i]->map_name))