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