Mercurial > pidgin
annotate plugins/icq/cyrillic.c @ 2082:3937f5eb6d75
[gaim-migrate @ 2092]
fix solaris stuffs.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Tue, 24 Jul 2001 22:23:23 +0000 |
parents | 7b3f1eb1ef7d |
children |
rev | line source |
---|---|
1152 | 1 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
2 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
3 /* |
1977
7b3f1eb1ef7d
[gaim-migrate @ 1987]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1912
diff
changeset
|
4 * $Id: cyrillic.c 1987 2001-06-09 14:46:51Z warmenhoven $ |
7b3f1eb1ef7d
[gaim-migrate @ 1987]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1912
diff
changeset
|
5 * |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
6 * Copyright (C) 1998-2001, Denis V. Dmitrienko <denis@null.net> and |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
7 * Bill Soudan <soudan@kde.org> |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
8 * |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
9 * This program is free software; you can redistribute it and/or modify |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
10 * it under the terms of the GNU General Public License as published by |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
11 * the Free Software Foundation; either version 2 of the License, or |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
12 * (at your option) any later version. |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
13 * |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
14 * This program is distributed in the hope that it will be useful, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
17 * GNU General Public License for more details. |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
18 * |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
19 * You should have received a copy of the GNU General Public License |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
20 * along with this program; if not, write to the Free Software |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
21 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
22 * |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
23 */ |
1152 | 24 |
25 #include "icq.h" | |
26 #include "icqlib.h" | |
27 | |
28 BYTE kw[] = {128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, | |
29 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
30 160,161,162,184,186,165,179,191,168,169,170,171,172,180,174,175, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
31 176,177,178,168,170,181,178,175,184,185,170,187,188,165,190,169, |
1152 | 32 254,224,225,246,228,229,244,227,245,232,233,234,235,236,237,238, |
33 239,255,240,241,242,243,230,226,252,251,231,248,253,249,247,250, | |
34 222,192,193,214,196,197,212,195,213,200,201,202,203,204,205,206, | |
35 207,223,208,209,210,211,198,194,220,219,199,216,221,217,215,218}; | |
36 | |
37 BYTE wk[] = {128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, | |
38 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
39 160,161,162,163,164,189,166,167,179,191,180,171,172,173,174,183, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
40 176,177,182,166,173,181,182,183,163,185,164,187,188,189,190,167, |
1152 | 41 225,226,247,231,228,229,246,250,233,234,235,236,237,238,239,240, |
42 242,243,244,245,230,232,227,254,251,253,255,249,248,252,224,241, | |
43 193,194,215,199,196,197,214,218,201,202,203,204,205,206,207,208, | |
44 210,211,212,213,198,200,195,222,219,221,223,217,216,220,192,209}; | |
45 | |
46 /******************************************************** | |
47 Russian language ICQ fix. | |
48 Usual Windows ICQ users do use Windows 1251 encoding but | |
49 unix users do use koi8 encoding, so we need to convert it. | |
50 This function will convert string from windows 1251 to koi8 | |
51 or from koi8 to windows 1251. | |
52 Andrew Frolov dron@ilm.net | |
53 *********************************************************/ | |
54 | |
55 extern int icq_Russian; | |
56 | |
57 void icq_RusConv(const char to[4], char *t_in) | |
58 { | |
59 BYTE *table; | |
60 int i; | |
61 | |
62 /* 6-17-1998 by Linux_Dude | |
63 * Moved initialization of table out front of 'if' block to prevent compiler | |
64 * warning. Improved error message, and now return without performing string | |
65 * conversion to prevent addressing memory out of range (table pointer would | |
66 * previously have remained uninitialized (= bad)). | |
67 */ | |
68 | |
69 table = wk; | |
70 if(strcmp(to, "kw") == 0) | |
71 table = kw; | |
72 else if(strcmp(to, "wk") != 0) | |
73 { | |
74 icq_FmtLog(NULL, ICQ_LOG_ERROR, "Unknown option in call to Russian Convert\n"); | |
75 return; | |
76 } | |
77 | |
78 /* End Linux_Dude's changes ;) */ | |
79 | |
80 if(icq_Russian) | |
81 { | |
82 for(i=0;t_in[i]!=0;i++) | |
83 { | |
84 t_in[i] &= 0377; | |
85 if(t_in[i] & 0200) | |
86 t_in[i] = table[t_in[i] & 0177]; | |
87 } | |
88 } | |
89 } | |
90 | |
91 void icq_RusConv_n(const char to[4], char *t_in, int len) | |
92 { | |
93 BYTE *table; | |
94 int i; | |
95 | |
96 /* 6-17-1998 by Linux_Dude | |
97 * Moved initialization of table out front of 'if' block to prevent compiler | |
98 * warning. Improved error message, and now return without performing string | |
99 * conversion to prevent addressing memory out of range (table pointer would | |
100 * previously have remained uninitialized (= bad)). | |
101 */ | |
102 | |
103 table = wk; | |
104 if(strcmp(to, "kw") == 0) | |
105 table = kw; | |
106 else if(strcmp(to, "wk") != 0) | |
107 { | |
108 icq_FmtLog(NULL, ICQ_LOG_ERROR, "Unknown option in call to Russian Convert\n"); | |
109 return; | |
110 } | |
111 | |
112 /* End Linux_Dude's changes ;) */ | |
113 | |
114 if(icq_Russian) | |
115 { | |
116 for(i=0;i < len;i++) | |
117 { | |
118 t_in[i] &= 0377; | |
119 if(t_in[i] & 0200) | |
120 t_in[i] = table[t_in[i] & 0177]; | |
121 } | |
122 } | |
123 } |