Mercurial > pidgin.yaz
annotate plugins/icq/util.c @ 2010:dff412b306b8
[gaim-migrate @ 2020]
this is Jeremy Brooks's patch to allow specification of host/port for Yahoo. I redid it slightly to work with some of the existing architecture.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Wed, 13 Jun 2001 23:12:20 +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: util.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 <stdlib.h> | |
26 #include <ctype.h> | |
27 | |
28 #include "icqlib.h" | |
29 #include "stdpackets.h" | |
30 | |
31 /* | |
32 * This list of countries should be sorted according to country code. | |
33 * When adding new country, please preserve the order! | |
34 */ | |
35 icq_ArrayType icq_Countries[] = { | |
36 {"USA",1}, | |
37 {"Russia",7}, | |
38 {"Egypt",20}, | |
39 {"South Africa",27}, | |
40 {"Greece",30}, | |
41 {"Netherlands",31}, | |
42 {"Belgium",32}, | |
43 {"France",33}, | |
44 {"Monaco",33}, | |
45 {"Spain",34}, | |
46 {"Hungary",36}, | |
47 {"Yugoslavia",38}, | |
48 {"Italy",39}, | |
49 {"San Marino",39}, | |
50 {"Vatican City",39}, | |
51 {"Romania",40}, | |
52 {"Liechtenstein",41}, | |
53 {"Switzerland",41}, | |
54 {"Czech Republic",42}, | |
55 {"Austria",43}, | |
56 {"UK",44}, | |
57 {"Denmark",45}, | |
58 {"Sweden",46}, | |
59 {"Norway",47}, | |
60 {"Poland",48}, | |
61 {"Germany",49}, | |
62 {"Peru",51}, | |
63 {"Mexico",52}, | |
64 {"Guantanomo Bay",53}, | |
65 {"Argentina",54}, | |
66 {"Brazil",55}, | |
67 {"Chile",56}, | |
68 {"Columbia",57}, | |
69 {"Venezuela",58}, | |
70 {"Malaysia",60}, | |
71 {"Australia",61}, | |
72 {"Indonesia",62}, | |
73 {"Philippines",63}, | |
74 {"New Zealand",64}, | |
75 {"Singapore",65}, | |
76 {"Thailand",66}, | |
77 {"Japan",81}, | |
78 {"South Korea",82}, | |
79 {"Vietnam",84}, | |
80 {"China",86}, | |
81 {"Turkey",90}, | |
82 {"India",91}, | |
83 {"Pakistan",92}, | |
84 {"Sri Lanka",94}, | |
85 {"Iran",98}, | |
86 {"Canada",107}, | |
87 {"Morocco",212}, | |
88 {"Algeria",213}, | |
89 {"Tunisia",216}, | |
90 {"Libya",218}, | |
91 {"Senegal",221}, | |
92 {"Mali",223}, | |
93 {"Ivory Coast",225}, | |
94 {"Liberia",231}, | |
95 {"Ghana",233}, | |
96 {"Nigeria",234}, | |
97 {"Cameroon",237}, | |
98 {"Gabon",241}, | |
99 {"Zaire",243}, | |
100 {"Ethiopia",251}, | |
101 {"Kenya",254}, | |
102 {"Tanzania",255}, | |
103 {"Zimbabwe",263}, | |
104 {"Namibia",264}, | |
105 {"Malawi",265}, | |
106 {"Aruba",297}, | |
107 {"Portugal",351}, | |
108 {"Luxembourg",352}, | |
109 {"Ireland",353}, | |
110 {"Iceland",354}, | |
111 {"Malta",356}, | |
112 {"Cyprus",357}, | |
113 {"Finland",358}, | |
114 {"Bulgaria",359}, | |
115 {"Ukraine",380}, | |
116 {"Belize",501}, | |
117 {"Guatemala",502}, | |
118 {"El Salvador",503}, | |
119 {"Honduras",504}, | |
120 {"Nicaragua",505}, | |
121 {"Costa Rice",506}, | |
122 {"Panama",507}, | |
123 {"Haiti",509}, | |
124 {"Guadeloupe",590}, | |
125 {"Bolivia",591}, | |
126 {"Guyana",592}, | |
127 {"Ecuador",593}, | |
128 {"Paraguay",595}, | |
129 {"French Antilles",596}, | |
130 {"Suriname",597}, | |
131 {"Uruguay",598}, | |
132 {"Netherlands Antilles",599}, | |
133 {"Saipan",670}, | |
134 {"Saipan",670}, | |
135 {"Guam",671}, | |
136 {"Papua New Guinea",675}, | |
137 {"Fiji",679}, | |
138 {"American Samoa",684}, | |
139 {"New Caledonia",687}, | |
140 {"French Polynesia",689}, | |
141 {"Hong Kong",852}, | |
142 {"Trinidad and Tobago",868}, | |
143 {"Bangladesh",880}, | |
144 {"Taiwan",886}, | |
145 {"Jordan",962}, | |
146 {"Iraq",964}, | |
147 {"Kuwait",965}, | |
148 {"Saudia Arabia",966}, | |
149 {"Yemen",967}, | |
150 {"Oman",968}, | |
151 {"United Arab Emirates",971}, | |
152 {"Israel",972}, | |
153 {"Bahrain",973}, | |
154 {"Qatar",974}, | |
155 {"Nepal",977}, | |
156 {"Slovak Republic",4201}, | |
157 {"Not entered",0xffff}, | |
158 }; | |
159 | |
160 icq_ArrayType icq_MetaOccupation[] = { | |
161 {"Academic", 1}, | |
162 {"Administrative", 2}, | |
163 {"Art/Entertainment", 3}, | |
164 {"College Student", 4}, | |
165 {"Computers", 5}, | |
166 {"Community & Social", 6}, | |
167 {"Education", 7}, | |
168 {"Engineering", 8}, | |
169 {"Financial Services", 9}, | |
170 {"Government", 10}, | |
171 {"High School Student", 11}, | |
172 {"Home", 12}, | |
173 {"ICQ - Providing Help", 13}, | |
174 {"Law", 14}, | |
175 {"Managerial", 15}, | |
176 {"Manufacturing", 16}, | |
177 {"Medical/Health", 17}, | |
178 {"Military", 18}, | |
179 {"Non-Government Organization", 19}, | |
180 {"Professional", 20}, | |
181 {"Retail", 21}, | |
182 {"Retired", 22}, | |
183 {"Science & Research", 23}, | |
184 {"Sports", 24}, | |
185 {"Technical", 25}, | |
186 {"University Student", 26}, | |
187 {"Web Building", 27}, | |
188 {"Other Services", 99}, | |
189 }; | |
190 | |
191 icq_ArrayType icq_MetaPastBackgrounds[] = { | |
192 {"Elementary School", 300}, | |
193 {"High School", 301}, | |
194 {"College", 302}, | |
195 {"University", 303}, | |
196 {"Military", 304}, | |
197 {"Past Work Place", 305}, | |
198 {"Past Organization", 306}, | |
199 {"Other", 399}, | |
200 }; | |
201 | |
202 icq_ArrayType icq_MetaAffiliations[] = { | |
203 {"Alumni Org.", 200}, | |
204 {"Charity Org.", 201}, | |
205 {"Club/Social Org.", 202}, | |
206 {"Community Org.", 203}, | |
207 {"Cultural Org.", 204}, | |
208 {"Fan Clubs", 205}, | |
209 {"Fraternity/Sorority", 206}, | |
210 {"Hobbyists Org.", 207}, | |
211 {"International Org.", 208}, | |
212 {"Nature and Environment Org.", 209}, | |
213 {"Professional Org.", 210}, | |
214 {"Scientific/Technical Org.", 211}, | |
215 {"Self Improvement Group", 212}, | |
216 {"Spiritual/Religious Org.", 213}, | |
217 {"Sports Org.", 214}, | |
218 {"Support Org.", 215}, | |
219 {"Trade and Business Org.", 216}, | |
220 {"Union", 217}, | |
221 {"Voluntary Org.", 218}, | |
222 {"Other", 299}, | |
223 }; | |
224 | |
225 icq_ArrayType icq_MetaLanguages[] = { | |
226 {"Not Entered", 0}, | |
227 {"Arabic", 1}, | |
228 {"Bhojpuri", 2}, | |
229 {"Bulgarian", 3}, | |
230 {"Burmese", 4}, | |
231 {"Cantonese", 5}, | |
232 {"Catalan", 6}, | |
233 {"Chinese", 7}, | |
234 {"Croatian", 8}, | |
235 {"Czech", 9}, | |
236 {"Danish", 10}, | |
237 {"Dutch", 11}, | |
238 {"English", 12}, | |
239 {"Esperanto", 13}, | |
240 {"Estonian", 14}, | |
241 {"Farsi", 15}, | |
242 {"Finnish", 16}, | |
243 {"French", 17}, | |
244 {"Gaelic", 18}, | |
245 {"German", 19}, | |
246 {"Greek", 20}, | |
247 {"Hebrew", 21}, | |
248 {"Hindi", 22}, | |
249 {"Hungarian", 23}, | |
250 {"Icelandic", 24}, | |
251 {"Indonesian", 25}, | |
252 {"Italian", 26}, | |
253 {"Japanese", 27}, | |
254 {"Khmer", 28}, | |
255 {"Korean", 29}, | |
256 {"Lao", 30}, | |
257 {"Latvian", 31}, | |
258 {"Lithuanian", 32}, | |
259 {"Malay", 33}, | |
260 {"Norwegian", 34}, | |
261 {"Polish", 35}, | |
262 {"Portuguese", 36}, | |
263 {"Romanian", 37}, | |
264 {"Russian", 38}, | |
265 {"Serbian", 39}, | |
266 {"Slovak", 40}, | |
267 {"Slovenian", 41}, | |
268 {"Somali", 42}, | |
269 {"Spanish", 43}, | |
270 {"Swahili", 44}, | |
271 {"Swedish", 45}, | |
272 {"Tagalog", 46}, | |
273 {"Tatar", 47}, | |
274 {"Thai", 48}, | |
275 {"Turkish", 49}, | |
276 {"Ukrainian", 50}, | |
277 {"Urdu", 51}, | |
278 {"Vietnamese", 52}, | |
279 {"Yiddish", 53}, | |
280 {"Yoruba", 54}, | |
281 {"Afrikaans", 55}, | |
282 {"Bosnian", 56}, | |
283 {"Persian", 57}, | |
284 {"Albanian", 58}, | |
285 {"Armenian", 59}, | |
286 {"Punjabi", 60}, | |
287 {"Chamorro", 61}, | |
288 {"Mongolian", 62}, | |
289 {"Mandarin", 63}, | |
290 {"Taiwaness", 64}, | |
291 {"Macedonian", 65}, | |
292 {"Sindhi", 66}, | |
293 {"Welsh", 67}, | |
294 }; | |
295 | |
1309
0a766047b4fd
[gaim-migrate @ 1319]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
296 icq_ArrayType icq_Genders[] = { |
0a766047b4fd
[gaim-migrate @ 1319]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
297 {"Not Specified", 0}, |
0a766047b4fd
[gaim-migrate @ 1319]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
298 {"Female", 1}, |
0a766047b4fd
[gaim-migrate @ 1319]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
299 {"Male", 2}, |
0a766047b4fd
[gaim-migrate @ 1319]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
300 }; |
0a766047b4fd
[gaim-migrate @ 1319]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
301 |
1152 | 302 void hex_dump(char *data, long size) |
303 { | |
304 long i; | |
305 long x; | |
306 int r=1; | |
307 char d[32]; | |
308 unsigned char bfr[64]; | |
309 for(i=0, x=0;;i++) | |
310 { | |
311 if(i<size) | |
312 { | |
313 if(x==0) | |
314 printf("%04lx: ", i); | |
315 #ifdef _WIN32 | |
316 sprintf(d, "%08x", data[i]); | |
317 #else | |
318 snprintf(d, 9, "%08x", data[i]); | |
319 #endif | |
320 printf("%c%c ", d[6], d[7]); | |
321 bfr[x]=data[i]; | |
322 if(bfr[x]<0x20) | |
323 bfr[x]='.'; | |
324 if(bfr[x]>0x7f) | |
325 bfr[x]='.'; | |
326 } | |
327 else | |
328 { | |
329 if(x==0) | |
330 break; | |
331 else | |
332 { | |
333 printf(" "); | |
334 bfr[x]=' '; | |
335 r=0; | |
336 } | |
337 } | |
338 x++; | |
339 if(!(x<16)) | |
340 { | |
341 bfr[x]=0; | |
342 printf("%s\n", bfr); | |
343 x=0; | |
344 if(!r) | |
345 break; | |
346 } | |
347 } | |
348 } | |
349 | |
350 /* simple mapping for udp status->tcp status translation function */ | |
351 struct icq_TCPStatusRec | |
352 { | |
353 unsigned long udp_status; | |
354 long tcp_status; | |
355 } icq_TCPStatusMap[] = { | |
356 { STATUS_OFFLINE , 0 }, | |
357 { STATUS_ONLINE , ICQ_TCP_STATUS_ONLINE }, | |
358 { STATUS_INVISIBLE , ICQ_TCP_STATUS_INVISIBLE }, | |
359 { STATUS_NA , ICQ_TCP_STATUS_NA }, | |
360 { STATUS_FREE_CHAT , ICQ_TCP_STATUS_FREE_CHAT }, | |
361 { STATUS_OCCUPIED , ICQ_TCP_STATUS_OCCUPIED }, | |
362 { STATUS_AWAY , ICQ_TCP_STATUS_AWAY }, | |
363 { STATUS_DND , ICQ_TCP_STATUS_DND }, | |
364 }; | |
365 | |
366 long icq_TCPXlateStatus(unsigned long udp_status) | |
367 { | |
368 unsigned int i; | |
369 for(i=0;i<sizeof(icq_TCPStatusMap)/sizeof(struct icq_TCPStatusRec);i++) | |
370 if(icq_TCPStatusMap[i].udp_status==udp_status) | |
371 return icq_TCPStatusMap[i].tcp_status; | |
372 /* warning: "couldn't find tcp status for %d, assuming 0", udp_status */ | |
373 return 0; | |
374 } | |
375 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
376 void icq_FmtLog(icq_Link *icqlink, int level, const char *fmt, ...) |
1152 | 377 { |
378 char buffer[2048]; | |
379 va_list ap; | |
380 va_start(ap, fmt); | |
381 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
382 if(!icqlink) |
1152 | 383 return; |
384 #ifdef _MSVC_ | |
385 _vsnprintf(buffer, 1024, fmt, ap); | |
386 #else | |
387 (void)vsnprintf(buffer, 1024, fmt, ap); | |
388 #endif | |
389 va_end(ap); | |
390 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
391 if(icqlink->icq_Log && icq_LogLevel>=level) |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
392 (*icqlink->icq_Log)(icqlink, time(0L), level, buffer); |
1152 | 393 } |
394 | |
395 /** | |
396 * Following functions used by qsort and bsearch to | |
397 * compare 2 pointers to icq_ArrayType object. | |
398 */ | |
399 int array_code_compare(const void *x, const void *y) | |
400 { | |
401 return ((icq_ArrayType*)x)->code - ((icq_ArrayType*)y)->code; | |
402 } | |
403 | |
404 const char *icq_GetCountryName(unsigned short code) | |
405 { | |
406 icq_ArrayType *res,key; | |
407 | |
408 key.code=code; | |
409 res=bsearch(&key, icq_Countries, sizeof(icq_Countries)/sizeof(icq_ArrayType), | |
410 sizeof(icq_ArrayType), array_code_compare); | |
411 | |
412 return res?res->name:"Unknown"; | |
413 } | |
414 | |
415 const char *icq_GetMetaOccupationName(unsigned short code) | |
416 { | |
417 icq_ArrayType *res,key; | |
418 | |
419 key.code=code; | |
420 res=bsearch(&key, icq_MetaOccupation, sizeof(icq_MetaOccupation)/sizeof(icq_ArrayType), | |
421 sizeof(icq_ArrayType), array_code_compare); | |
422 | |
423 return res?res->name:"Unknown"; | |
424 } | |
425 | |
426 const char *icq_GetMetaBackgroundName(unsigned short code) | |
427 { | |
428 icq_ArrayType *res,key; | |
429 | |
430 key.code=code; | |
431 res=bsearch(&key, icq_MetaPastBackgrounds, sizeof(icq_MetaPastBackgrounds)/sizeof(icq_ArrayType), | |
432 sizeof(icq_ArrayType), array_code_compare); | |
433 | |
434 return res?res->name:"Unknown"; | |
435 } | |
436 | |
437 const char *icq_GetMetaAffiliationName(unsigned short code) | |
438 { | |
439 icq_ArrayType *res,key; | |
440 | |
441 key.code=code; | |
442 res=bsearch(&key, icq_MetaAffiliations, sizeof(icq_MetaAffiliations)/sizeof(icq_ArrayType), | |
443 sizeof(icq_ArrayType), array_code_compare); | |
444 | |
445 return res?res->name:"Unknown"; | |
446 } | |
447 | |
448 const char *icq_GetMetaLanguageName(unsigned short code) | |
449 { | |
450 icq_ArrayType *res,key; | |
451 | |
452 key.code=code; | |
453 res=bsearch(&key, icq_MetaLanguages, sizeof(icq_MetaLanguages)/sizeof(icq_ArrayType), | |
454 sizeof(icq_ArrayType), array_code_compare); | |
455 | |
456 return res?res->name:"Unknown"; | |
457 } | |
458 | |
459 /******************************************** | |
460 returns a string describing the status or | |
461 a "Error" if no such string exists | |
462 *********************************************/ | |
463 const char *icq_ConvertStatus2Str(unsigned long status) | |
464 { | |
465 if((unsigned long)STATUS_OFFLINE == status) /* this because -1 & 0x01FF is not -1 */ | |
466 return "Offline"; | |
467 | |
468 if((status & STATUS_INVISIBLE) == STATUS_INVISIBLE) | |
469 return "Invisible"; | |
470 else if((status & STATUS_FREE_CHAT) == STATUS_FREE_CHAT) | |
471 return "Free for chat"; | |
472 else if((status & STATUS_DND) == STATUS_DND) | |
473 return "Do not disturb"; | |
474 else if((status & STATUS_OCCUPIED) == STATUS_OCCUPIED) | |
475 return "Occupied"; | |
476 else if((status & STATUS_NA) == STATUS_NA) | |
477 return "Not available"; | |
478 else if((status & STATUS_AWAY) == STATUS_AWAY) | |
479 return "Away"; | |
480 else if(!(status & 0x01FF)) | |
481 return "Online"; | |
482 else | |
483 return "Error"; | |
484 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
485 |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
486 int icq_SplitFields(icq_List *strList, const char *str) |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
487 { |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
488 char *tmpBuf, *tmp, *ptr; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
489 int count = 0; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
490 |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
491 tmpBuf = (char*)malloc(strlen(str)+1); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
492 strcpy(tmpBuf, str); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
493 ptr = tmpBuf; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
494 |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
495 while(ptr) |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
496 { |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
497 char *p; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
498 tmp = strchr(ptr, 0xFE); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
499 if(tmp != 0L) |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
500 { |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
501 *tmp = 0; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
502 tmp++; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
503 } |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
504 count++; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
505 p = (char *)malloc(strlen(ptr)+1); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
506 strcpy(p, ptr); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
507 icq_ListEnqueue(strList, p); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
508 ptr = tmp; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
509 } |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
510 |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
511 free(tmpBuf); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
512 return count; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1432
diff
changeset
|
513 } |