Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37841736
en ru br
Репозитории ALT
4.0: 7.3.0-alt1
3.0: 6.8.2-alt18
+updates:6.8.2-alt24
www.altlinux.org/Changes

Группа :: Система/X11
Пакет: xorg-x11

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: xorg-x11-6.8.99.900-alt-i18n-cp866.patch
Скачать


--- xc/fonts/util/CP866.TXT.orig	2004-11-03 14:49:09 +0300
+++ xc/fonts/util/CP866.TXT	2004-11-03 14:47:02 +0300
@@ -0,0 +1,273 @@
+#
+#    Name:     cp866_DOSCyrillicRussian to Unicode table
+#    Unicode version: 2.0
+#    Table version: 2.00
+#    Table format:  Format A
+#    Date:          04/24/96
+#    Authors:       Lori Brownell <loribr@microsoft.com>
+#                   K.D. Chang    <a-kchang@microsoft.com>
+#    General notes: none
+#
+#    Format: Three tab-separated columns
+#        Column #1 is the cp866_DOSCyrillicRussian code (in hex)
+#        Column #2 is the Unicode (in hex as 0xXXXX)
+#        Column #3 is the Unicode name (follows a comment sign, '#')
+#
+#    The entries are in cp866_DOSCyrillicRussian order
+#
+0x00	0x0000	#NULL
+0x01	0x0001	#START OF HEADING
+0x02	0x0002	#START OF TEXT
+0x03	0x0003	#END OF TEXT
+0x04	0x0004	#END OF TRANSMISSION
+0x05	0x0005	#ENQUIRY
+0x06	0x0006	#ACKNOWLEDGE
+0x07	0x0007	#BELL
+0x08	0x0008	#BACKSPACE
+0x09	0x0009	#HORIZONTAL TABULATION
+0x0a	0x000a	#LINE FEED
+0x0b	0x000b	#VERTICAL TABULATION
+0x0c	0x000c	#FORM FEED
+0x0d	0x000d	#CARRIAGE RETURN
+0x0e	0x000e	#SHIFT OUT
+0x0f	0x000f	#SHIFT IN
+0x10	0x0010	#DATA LINK ESCAPE
+0x11	0x0011	#DEVICE CONTROL ONE
+0x12	0x0012	#DEVICE CONTROL TWO
+0x13	0x0013	#DEVICE CONTROL THREE
+0x14	0x0014	#DEVICE CONTROL FOUR
+0x15	0x0015	#NEGATIVE ACKNOWLEDGE
+0x16	0x0016	#SYNCHRONOUS IDLE
+0x17	0x0017	#END OF TRANSMISSION BLOCK
+0x18	0x0018	#CANCEL
+0x19	0x0019	#END OF MEDIUM
+0x1a	0x001a	#SUBSTITUTE
+0x1b	0x001b	#ESCAPE
+0x1c	0x001c	#FILE SEPARATOR
+0x1d	0x001d	#GROUP SEPARATOR
+0x1e	0x001e	#RECORD SEPARATOR
+0x1f	0x001f	#UNIT SEPARATOR
+0x20	0x0020	#SPACE
+0x21	0x0021	#EXCLAMATION MARK
+0x22	0x0022	#QUOTATION MARK
+0x23	0x0023	#NUMBER SIGN
+0x24	0x0024	#DOLLAR SIGN
+0x25	0x0025	#PERCENT SIGN
+0x26	0x0026	#AMPERSAND
+0x27	0x0027	#APOSTROPHE
+0x28	0x0028	#LEFT PARENTHESIS
+0x29	0x0029	#RIGHT PARENTHESIS
+0x2a	0x002a	#ASTERISK
+0x2b	0x002b	#PLUS SIGN
+0x2c	0x002c	#COMMA
+0x2d	0x002d	#HYPHEN-MINUS
+0x2e	0x002e	#FULL STOP
+0x2f	0x002f	#SOLIDUS
+0x30	0x0030	#DIGIT ZERO
+0x31	0x0031	#DIGIT ONE
+0x32	0x0032	#DIGIT TWO
+0x33	0x0033	#DIGIT THREE
+0x34	0x0034	#DIGIT FOUR
+0x35	0x0035	#DIGIT FIVE
+0x36	0x0036	#DIGIT SIX
+0x37	0x0037	#DIGIT SEVEN
+0x38	0x0038	#DIGIT EIGHT
+0x39	0x0039	#DIGIT NINE
+0x3a	0x003a	#COLON
+0x3b	0x003b	#SEMICOLON
+0x3c	0x003c	#LESS-THAN SIGN
+0x3d	0x003d	#EQUALS SIGN
+0x3e	0x003e	#GREATER-THAN SIGN
+0x3f	0x003f	#QUESTION MARK
+0x40	0x0040	#COMMERCIAL AT
+0x41	0x0041	#LATIN CAPITAL LETTER A
+0x42	0x0042	#LATIN CAPITAL LETTER B
+0x43	0x0043	#LATIN CAPITAL LETTER C
+0x44	0x0044	#LATIN CAPITAL LETTER D
+0x45	0x0045	#LATIN CAPITAL LETTER E
+0x46	0x0046	#LATIN CAPITAL LETTER F
+0x47	0x0047	#LATIN CAPITAL LETTER G
+0x48	0x0048	#LATIN CAPITAL LETTER H
+0x49	0x0049	#LATIN CAPITAL LETTER I
+0x4a	0x004a	#LATIN CAPITAL LETTER J
+0x4b	0x004b	#LATIN CAPITAL LETTER K
+0x4c	0x004c	#LATIN CAPITAL LETTER L
+0x4d	0x004d	#LATIN CAPITAL LETTER M
+0x4e	0x004e	#LATIN CAPITAL LETTER N
+0x4f	0x004f	#LATIN CAPITAL LETTER O
+0x50	0x0050	#LATIN CAPITAL LETTER P
+0x51	0x0051	#LATIN CAPITAL LETTER Q
+0x52	0x0052	#LATIN CAPITAL LETTER R
+0x53	0x0053	#LATIN CAPITAL LETTER S
+0x54	0x0054	#LATIN CAPITAL LETTER T
+0x55	0x0055	#LATIN CAPITAL LETTER U
+0x56	0x0056	#LATIN CAPITAL LETTER V
+0x57	0x0057	#LATIN CAPITAL LETTER W
+0x58	0x0058	#LATIN CAPITAL LETTER X
+0x59	0x0059	#LATIN CAPITAL LETTER Y
+0x5a	0x005a	#LATIN CAPITAL LETTER Z
+0x5b	0x005b	#LEFT SQUARE BRACKET
+0x5c	0x005c	#REVERSE SOLIDUS
+0x5d	0x005d	#RIGHT SQUARE BRACKET
+0x5e	0x005e	#CIRCUMFLEX ACCENT
+0x5f	0x005f	#LOW LINE
+0x60	0x0060	#GRAVE ACCENT
+0x61	0x0061	#LATIN SMALL LETTER A
+0x62	0x0062	#LATIN SMALL LETTER B
+0x63	0x0063	#LATIN SMALL LETTER C
+0x64	0x0064	#LATIN SMALL LETTER D
+0x65	0x0065	#LATIN SMALL LETTER E
+0x66	0x0066	#LATIN SMALL LETTER F
+0x67	0x0067	#LATIN SMALL LETTER G
+0x68	0x0068	#LATIN SMALL LETTER H
+0x69	0x0069	#LATIN SMALL LETTER I
+0x6a	0x006a	#LATIN SMALL LETTER J
+0x6b	0x006b	#LATIN SMALL LETTER K
+0x6c	0x006c	#LATIN SMALL LETTER L
+0x6d	0x006d	#LATIN SMALL LETTER M
+0x6e	0x006e	#LATIN SMALL LETTER N
+0x6f	0x006f	#LATIN SMALL LETTER O
+0x70	0x0070	#LATIN SMALL LETTER P
+0x71	0x0071	#LATIN SMALL LETTER Q
+0x72	0x0072	#LATIN SMALL LETTER R
+0x73	0x0073	#LATIN SMALL LETTER S
+0x74	0x0074	#LATIN SMALL LETTER T
+0x75	0x0075	#LATIN SMALL LETTER U
+0x76	0x0076	#LATIN SMALL LETTER V
+0x77	0x0077	#LATIN SMALL LETTER W
+0x78	0x0078	#LATIN SMALL LETTER X
+0x79	0x0079	#LATIN SMALL LETTER Y
+0x7a	0x007a	#LATIN SMALL LETTER Z
+0x7b	0x007b	#LEFT CURLY BRACKET
+0x7c	0x007c	#VERTICAL LINE
+0x7d	0x007d	#RIGHT CURLY BRACKET
+0x7e	0x007e	#TILDE
+0x7f	0x007f	#DELETE
+0x80	0x0410	#CYRILLIC CAPITAL LETTER A
+0x81	0x0411	#CYRILLIC CAPITAL LETTER BE
+0x82	0x0412	#CYRILLIC CAPITAL LETTER VE
+0x83	0x0413	#CYRILLIC CAPITAL LETTER GHE
+0x84	0x0414	#CYRILLIC CAPITAL LETTER DE
+0x85	0x0415	#CYRILLIC CAPITAL LETTER IE
+0x86	0x0416	#CYRILLIC CAPITAL LETTER ZHE
+0x87	0x0417	#CYRILLIC CAPITAL LETTER ZE
+0x88	0x0418	#CYRILLIC CAPITAL LETTER I
+0x89	0x0419	#CYRILLIC CAPITAL LETTER SHORT I
+0x8a	0x041a	#CYRILLIC CAPITAL LETTER KA
+0x8b	0x041b	#CYRILLIC CAPITAL LETTER EL
+0x8c	0x041c	#CYRILLIC CAPITAL LETTER EM
+0x8d	0x041d	#CYRILLIC CAPITAL LETTER EN
+0x8e	0x041e	#CYRILLIC CAPITAL LETTER O
+0x8f	0x041f	#CYRILLIC CAPITAL LETTER PE
+0x90	0x0420	#CYRILLIC CAPITAL LETTER ER
+0x91	0x0421	#CYRILLIC CAPITAL LETTER ES
+0x92	0x0422	#CYRILLIC CAPITAL LETTER TE
+0x93	0x0423	#CYRILLIC CAPITAL LETTER U
+0x94	0x0424	#CYRILLIC CAPITAL LETTER EF
+0x95	0x0425	#CYRILLIC CAPITAL LETTER HA
+0x96	0x0426	#CYRILLIC CAPITAL LETTER TSE
+0x97	0x0427	#CYRILLIC CAPITAL LETTER CHE
+0x98	0x0428	#CYRILLIC CAPITAL LETTER SHA
+0x99	0x0429	#CYRILLIC CAPITAL LETTER SHCHA
+0x9a	0x042a	#CYRILLIC CAPITAL LETTER HARD SIGN
+0x9b	0x042b	#CYRILLIC CAPITAL LETTER YERU
+0x9c	0x042c	#CYRILLIC CAPITAL LETTER SOFT SIGN
+0x9d	0x042d	#CYRILLIC CAPITAL LETTER E
+0x9e	0x042e	#CYRILLIC CAPITAL LETTER YU
+0x9f	0x042f	#CYRILLIC CAPITAL LETTER YA
+0xa0	0x0430	#CYRILLIC SMALL LETTER A
+0xa1	0x0431	#CYRILLIC SMALL LETTER BE
+0xa2	0x0432	#CYRILLIC SMALL LETTER VE
+0xa3	0x0433	#CYRILLIC SMALL LETTER GHE
+0xa4	0x0434	#CYRILLIC SMALL LETTER DE
+0xa5	0x0435	#CYRILLIC SMALL LETTER IE
+0xa6	0x0436	#CYRILLIC SMALL LETTER ZHE
+0xa7	0x0437	#CYRILLIC SMALL LETTER ZE
+0xa8	0x0438	#CYRILLIC SMALL LETTER I
+0xa9	0x0439	#CYRILLIC SMALL LETTER SHORT I
+0xaa	0x043a	#CYRILLIC SMALL LETTER KA
+0xab	0x043b	#CYRILLIC SMALL LETTER EL
+0xac	0x043c	#CYRILLIC SMALL LETTER EM
+0xad	0x043d	#CYRILLIC SMALL LETTER EN
+0xae	0x043e	#CYRILLIC SMALL LETTER O
+0xaf	0x043f	#CYRILLIC SMALL LETTER PE
+0xb0	0x2591	#LIGHT SHADE
+0xb1	0x2592	#MEDIUM SHADE
+0xb2	0x2593	#DARK SHADE
+0xb3	0x2502	#BOX DRAWINGS LIGHT VERTICAL
+0xb4	0x2524	#BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5	0x2561	#BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb6	0x2562	#BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xb7	0x2556	#BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xb8	0x2555	#BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xb9	0x2563	#BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba	0x2551	#BOX DRAWINGS DOUBLE VERTICAL
+0xbb	0x2557	#BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc	0x255d	#BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd	0x255c	#BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xbe	0x255b	#BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xbf	0x2510	#BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0	0x2514	#BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1	0x2534	#BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2	0x252c	#BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3	0x251c	#BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4	0x2500	#BOX DRAWINGS LIGHT HORIZONTAL
+0xc5	0x253c	#BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6	0x255e	#BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xc7	0x255f	#BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xc8	0x255a	#BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9	0x2554	#BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca	0x2569	#BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb	0x2566	#BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc	0x2560	#BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd	0x2550	#BOX DRAWINGS DOUBLE HORIZONTAL
+0xce	0x256c	#BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf	0x2567	#BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xd0	0x2568	#BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xd1	0x2564	#BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xd2	0x2565	#BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xd3	0x2559	#BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xd4	0x2558	#BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xd5	0x2552	#BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xd6	0x2553	#BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xd7	0x256b	#BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xd8	0x256a	#BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xd9	0x2518	#BOX DRAWINGS LIGHT UP AND LEFT
+0xda	0x250c	#BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb	0x2588	#FULL BLOCK
+0xdc	0x2584	#LOWER HALF BLOCK
+0xdd	0x258c	#LEFT HALF BLOCK
+0xde	0x2590	#RIGHT HALF BLOCK
+0xdf	0x2580	#UPPER HALF BLOCK
+0xe0	0x0440	#CYRILLIC SMALL LETTER ER
+0xe1	0x0441	#CYRILLIC SMALL LETTER ES
+0xe2	0x0442	#CYRILLIC SMALL LETTER TE
+0xe3	0x0443	#CYRILLIC SMALL LETTER U
+0xe4	0x0444	#CYRILLIC SMALL LETTER EF
+0xe5	0x0445	#CYRILLIC SMALL LETTER HA
+0xe6	0x0446	#CYRILLIC SMALL LETTER TSE
+0xe7	0x0447	#CYRILLIC SMALL LETTER CHE
+0xe8	0x0448	#CYRILLIC SMALL LETTER SHA
+0xe9	0x0449	#CYRILLIC SMALL LETTER SHCHA
+0xea	0x044a	#CYRILLIC SMALL LETTER HARD SIGN
+0xeb	0x044b	#CYRILLIC SMALL LETTER YERU
+0xec	0x044c	#CYRILLIC SMALL LETTER SOFT SIGN
+0xed	0x044d	#CYRILLIC SMALL LETTER E
+0xee	0x044e	#CYRILLIC SMALL LETTER YU
+0xef	0x044f	#CYRILLIC SMALL LETTER YA
+0xf0	0x0401	#CYRILLIC CAPITAL LETTER IO
+0xf1	0x0451	#CYRILLIC SMALL LETTER IO
+0xf2	0x0404	#CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0xf3	0x0454	#CYRILLIC SMALL LETTER UKRAINIAN IE
+0xf4	0x0407	#CYRILLIC CAPITAL LETTER YI
+0xf5	0x0457	#CYRILLIC SMALL LETTER YI
+0xf6	0x040e	#CYRILLIC CAPITAL LETTER SHORT U
+0xf7	0x045e	#CYRILLIC SMALL LETTER SHORT U
+0xf8	0x00b0	#DEGREE SIGN
+0xf9	0x2219	#BULLET OPERATOR
+0xfa	0x00b7	#MIDDLE DOT
+0xfb	0x221a	#SQUARE ROOT
+0xfc	0x2116	#NUMERO SIGN
+0xfd	0x00a4	#CURRENCY SIGN
+0xfe	0x25a0	#BLACK SQUARE
+0xff	0x00a0	#NO-BREAK SPACE
--- xc/lib/X11/lcUniConv/cp866.h.orig	2004-07-26 16:59:36 +0400
+++ xc/lib/X11/lcUniConv/cp866.h	2004-11-02 20:55:13 +0300
@@ -0,0 +1,113 @@
+
+/*
+ * CP866
+ */
+
+static const unsigned short cp866_2uni[128] = {
+  /* 0x80 */
+  0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
+  0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
+  /* 0x90 */
+  0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
+  0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
+  /* 0xa0 */
+  0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
+  0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
+  /* 0xb0 */
+  0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
+  0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
+  /* 0xc0 */
+  0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
+  0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
+  /* 0xd0 */
+  0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
+  0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
+  /* 0xe0 */
+  0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
+  0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
+  /* 0xf0 */
+  0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e,
+  0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0,
+};
+
+static int
+cp866_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80)
+    *pwc = (ucs4_t) c;
+  else
+    *pwc = (ucs4_t) cp866_2uni[c-0x80];
+  return 1;
+}
+
+static const unsigned char cp866_page00[24] = {
+  0xff, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+  0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */
+};
+static const unsigned char cp866_page04[96] = {
+  0x00, 0xf0, 0x00, 0x00, 0xf2, 0x00, 0x00, 0xf4, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x00, /* 0x08-0x0f */
+  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */
+  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */
+  0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */
+  0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */
+  0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x30-0x37 */
+  0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x38-0x3f */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
+  0x00, 0xf1, 0x00, 0x00, 0xf3, 0x00, 0x00, 0xf5, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, /* 0x58-0x5f */
+};
+static const unsigned char cp866_page22[8] = {
+  0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+};
+static const unsigned char cp866_page25[168] = {
+  0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */
+  0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */
+  0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */
+  0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+  0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+};
+
+static int
+cp866_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00b8)
+    c = cp866_page00[wc-0x00a0];
+  else if (wc >= 0x0400 && wc < 0x0460)
+    c = cp866_page04[wc-0x0400];
+  else if (wc == 0x2116)
+    c = 0xfc;
+  else if (wc >= 0x2218 && wc < 0x2220)
+    c = cp866_page22[wc-0x2218];
+  else if (wc >= 0x2500 && wc < 0x25a8)
+    c = cp866_page25[wc-0x2500];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
--- xc/lib/X11/lcUTF8.c.orig	2004-11-02 15:52:05 +0300
+++ xc/lib/X11/lcUTF8.c	2004-11-02 21:02:20 +0300
@@ -186,6 +186,7 @@
 #include "lcUniConv/koi8_r.h"
 #include "lcUniConv/koi8_u.h"
 #include "lcUniConv/koi8_c.h"
+#include "lcUniConv/cp866.h"
 #include "lcUniConv/armscii_8.h"
 #include "lcUniConv/cp1133.h"
 #include "lcUniConv/mulelao.h"
@@ -305,6 +306,9 @@
     { "IBM-CP1133", NULLQUARK,
 	cp1133_mbtowc, cp1133_wctomb
     },
+    { "CP866", NULLQUARK,
+	cp866_mbtowc, cp866_wctomb
+    },
     { "MULELAO-1", NULLQUARK,
 	mulelao_mbtowc, mulelao_wctomb
     },
--- xc/nls/compose.dir.orig	2004-11-03 14:01:02 +0300
+++ xc/nls/compose.dir	2004-11-03 14:01:29 +0300
@@ -185,6 +185,7 @@
 iso8859-15/Compose:		pt_PT.ISO8859-15
 iso8859-2/Compose:		ro_RO.ISO8859-2
 koi8-r/Compose:			ru_RU.KOI8-R
+ibm-cp866/Compose:		ru_RU.CP866
 iso8859-5/Compose:		ru_RU.ISO8859-5
 microsoft-cp1251/Compose:	ru_RU.CP1251
 koi8-u/Compose:			ru_UA.KOI8-U
--- xc/nls/locale.dir.orig	2004-11-03 14:33:02 +0300
+++ xc/nls/locale.dir	2004-11-03 14:33:25 +0300
@@ -198,6 +198,7 @@
 paratype-cp154/XLC_LOCALE:		ru_RU.PT154
 koi8-r/XLC_LOCALE: 			ru_RU.KOI8-R
 koi8-u/XLC_LOCALE:			ru_UA.KOI8-U
+ibm-cp866/XLC_LOCALE: 			ru_RU.CP866
 iso8859-2/XLC_LOCALE: 			sh_YU.ISO8859-2
 iso8859-2/XLC_LOCALE: 			sk_SK.ISO8859-2
 iso8859-2/XLC_LOCALE: 			sl_SI.ISO8859-2
--- xc/nls/Compose/Imakefile.orig	2004-10-18 22:42:02 +0400
+++ xc/nls/Compose/Imakefile	2004-11-02 15:53:44 +0300
@@ -34,6 +34,7 @@
 ComposeTarget(georgian-academy)
 ComposeTarget(georgian-ps)
 ComposeTarget(ibm-cp1133)
+ComposeTarget(ibm-cp866)
 ComposeTarget(iso8859-1)
 ComposeTarget(iso8859-2)
 ComposeTarget(iso8859-3)
--- xc/nls/Compose/ibm-cp866.orig	2004-07-26 16:59:36 +0400
+++ xc/nls/Compose/ibm-cp866	2004-10-29 16:51:15 +0400
@@ -0,0 +1,15 @@
+XCOMM
+XCOMM ibm-cp866 Compose Sequence
+XCOMM
+XCOMM Sequence Definition
+XCOMM
+XCOMM $XFree86: xc/nls/Compose/ibm-cp866,v 1.1 1999/08/28 09:00:34 dawes Exp $
+XCOMM
+XCOMM This file currently has no entries.  It appears that a compose file (even
+XCOMM just an empty one) is required for the appropriate keysyms to work for
+XCOMM this encoding.
+XCOMM
+XCOMM <Multi_key> Means <Compose>
+XCOMM Special Character
+
+XCOMM End of Sequence Definition
--- xc/nls/XI18N_OBJS/Imakefile.orig	2004-10-18 22:42:02 +0400
+++ xc/nls/XI18N_OBJS/Imakefile	2004-10-29 16:45:32 +0400
@@ -27,6 +27,7 @@
 XI18NTarget(georgian-academy)
 XI18NTarget(georgian-ps)
 XI18NTarget(ibm-cp1133)
+XI18NTarget(ibm-cp866)
 XI18NTarget(iscii-dev)
 XI18NTarget(isiri-3342)
 XI18NTarget(iso8859-1)
--- xc/nls/XI18N_OBJS/ibm-cp866.orig	2004-07-26 16:59:36 +0400
+++ xc/nls/XI18N_OBJS/ibm-cp866	2004-10-29 16:50:49 +0400
@@ -0,0 +1,7 @@
+# CATEGORY(XLC|XIM|OM)	SHARED_LIBRARY_NAME	FUNCTION_NAME
+#
+#	XI18N objects table for ibm-cp866 locale
+#
+XLC	common/xlcDef	_XlcDefaultLoader	# XLC_open
+XIM	common/ximcp	_XimOpenIM _XimRegisterIMInstantiateCallback  _XimUnRegisterIMInstantiateCallback # XIM_open	XIM_register XIM_unregister
+XOM	common/xomGeneric 	_XomGenericOpenOM	# XOM_open
--- xc/nls/XLC_LOCALE/Imakefile.orig	2004-10-18 22:42:02 +0400
+++ xc/nls/XLC_LOCALE/Imakefile	2004-10-29 16:47:31 +0400
@@ -39,6 +39,7 @@
 LTarget(georgian-academy)
 LTarget(georgian-ps)
 LTarget(ibm-cp1133)
+LTarget(ibm-cp866)
 LTarget(iscii-dev)
 LTarget(isiri-3342)
 LTarget(iso8859-1)
--- xc/nls/XLC_LOCALE/ibm-cp866.orig	2004-07-26 16:59:36 +0400
+++ xc/nls/XLC_LOCALE/ibm-cp866	2004-10-29 16:50:13 +0400
@@ -0,0 +1,82 @@
+XCOMM  $Xorg: ibm-cp866,v 1.3 2000/08/17 19:47:00 cpqbld Exp $
+XCOMM  XLocale Database Sample for ibm-cp866.
+XCOMM 
+XCOMM 
+XCOMM  $XFree86: xc/nls/XLC_LOCALE/ibm-cp866,v 3.3 2000/12/01 17:43:03 dawes Exp $
+
+XCOMM 
+XCOMM 	XLC_FONTSET category
+XCOMM 
+XLC_FONTSET
+XCOMM 	fs0 class (7 bit ASCII)
+fs0	{
+	charset	{
+		name		ISO8859-1:GL
+	}
+	font	{
+		primary		CP866:GL
+		substitute	ISO8859-1:GL
+	}
+}
+XCOMM 	fs1 class 
+fs1	{
+	charset         CP866:GR
+	font            CP866:GR
+}
+END XLC_FONTSET
+
+XCOMM
+XCOMM	XLC_CHARSET_DEFINE category
+XCOMM
+XLC_CHARSET_DEFINE
+csd0	{
+	charset_name	CP866
+	side		GR
+	length		1
+	string_encoding	False
+	sequence	\x1b%/1
+}
+END XLC_CHARSET_DEFINE
+
+XCOMM 
+XCOMM 	XLC_XLOCALE category
+XCOMM 
+XLC_XLOCALE
+
+encoding_name           CP866
+mb_cur_max		1
+state_depend_encoding	False
+#if WCHAR32
+wc_encoding_mask	\x30000000
+wc_shift_bits		7
+#else
+wc_encoding_mask	\x00008080
+wc_shift_bits		8
+#endif
+
+#ifndef X_LOCALE
+use_stdc_env		True
+#endif
+
+XCOMM 	cs0 class
+cs0	{
+	side		GL:Default
+	length		1
+	wc_encoding	\x00000000
+	ct_encoding     CP866:GL; ISO8859-1:GL
+}
+
+
+XCOMM 	cs1 class
+cs1	{
+	side		GR:Default
+	length		1
+#if WCHAR32
+	wc_encoding	\x30000000
+#else
+	wc_encoding	\x00008080
+#endif
+	ct_encoding     CP866:GR
+}
+
+END XLC_XLOCALE
--- xc/nls/locale.alias.orig	2005-08-04 13:13:56 +0400
+++ xc/nls/locale.alias	2005-08-04 15:24:28 +0400
@@ -700,6 +700,7 @@
 ru_RU.microsoftcp1251:				ru_RU.CP1251
 ru_RU.microsoft-cp1251:				ru_RU.CP1251
 ru_RU.MICROSOFT-CP1251:				ru_RU.CP1251
+ru_RU.cp866:					ru_RU.CP866
 #if defined(INCLUDE_ru_SU)
 XCOMM ru_SU is redundant now
 ru_SU:						ru_RU.KOI8-R
@@ -805,6 +806,7 @@
 uk_UA.microsoft-cp1251:				uk_UA.CP1251
 uk_UA.MICROSOFT-CP1251:				uk_UA.CP1251
 uk_UA.utf8:					uk_UA.UTF-8
+uk_UA.cp866:					uk_UA.CP866
 ur:						ur_PK.CP1256
 ur_PK:						ur_PK.CP1256
 ur_PK.cp1256:					ur_PK.CP1256
--- xc/fonts/util/Imakefile.orig	2004-04-23 22:43:05 +0400
+++ xc/fonts/util/Imakefile	2005-08-04 15:26:36 +0400
@@ -4,7 +4,7 @@
 	map-ISO8859-1 map-ISO8859-2 map-ISO8859-3 map-ISO8859-4 map-ISO8859-5 \
 	map-ISO8859-7 map-ISO8859-8 map-ISO8859-9 map-ISO8859-10 \
 	map-ISO8859-11 map-ISO8859-13 map-ISO8859-14 map-ISO8859-15 \
-	map-ISO8859-16 map-JISX0201.1976-0 map-KOI8-R
+	map-ISO8859-16 map-JISX0201.1976-0 map-KOI8-R map-CP866
 
 InstallMultipleFlags($(MAPFILES),$(FONTDIR)/util,$(INSTDATFLAGS))
 
@@ -39,4 +39,5 @@
 LinkFile(map-ISO8859-16,8859-16.TXT)
 LinkFile(map-JISX0201.1976-0,JIS0201.TXT)
 LinkFile(map-KOI8-R,KOI8-R.TXT)
+LinkFile(map-CP866,CP866.TXT)
 
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin