comparison libpurple/protocols/oscar/family_locate.c @ 29818:2c95b7c57ebb

Fix up the X-Status code in many ways: * Clean up the descriptions to be consistently of the form, "I am _____." * Properly mark the descriptions for translation. * Utilize the files from small smiley theme as much as possible. Through a Makefile rule, they will be copied from emotes/small/16/ to emblems/16 at build time and then installed as usual. This is slightly hackish, but ensures that our icons are consistent and saves manual copying work and duplication of source files in the repository. + As part of this, mobile.png was moved to emotes/small/16, as it is needed in both places. * Call these things "Custom Status Icon"s (adding "Status") in the UI. * Add icqmood0 = shopping, based on testing with ICQ6. Thanks John!!! * Change the xstatus_crap icon to xstatus_typing to match ICQ 6. The other typing icon was left alone, except that the name was set to NULL so we wouldn't get duplicates in the list. * Change the xstatus_iron (Pro7 TV icon) to xstatus_suit, using the 'person wearing a suit' icon from N3fr0n to match ICQ6. I named this icon, somewhat arbitrarily, "At the office". * The PDA icon is now the same as the hiptop, but hopefully that won't cause any confusion. Also, the custom icon is now higher priority than the hiptop icon. * The music icon is the ("tune") emblem, not the emoticon. This seems more consistent, given that we're talking about buddy list emblems. * The "Googling" icon has been renamed to "Searching the web" to avoid the trademark. * The "zzz" icon is now an icon for smoking, which seems to fit with the official client's icon as posted in #4508. Other clients may show a marijuana leaf. Oh well.
author Richard Laager <rlaager@wiktel.com>
date Sun, 16 Nov 2008 08:39:34 +0000
parents 365b90fa23cf
children 5f8fc6e7466a
comparison
equal deleted inserted replaced
29817:ef7e87ada472 29818:2c95b7c57ebb
262 /* empty X-Status for the case when customicon == 0 */ 262 /* empty X-Status for the case when customicon == 0 */
263 {NULL, NULL, 263 {NULL, NULL,
264 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 264 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
265 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, 265 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
266 266
267 {"xstatus_thinking", "Thinking", 267 {"thinking", N_("Thinking"),
268 {0x3f, 0xb0, 0xbd, 0x36, 0xaf, 0x3b, 0x4a, 0x60, 268 {0x3f, 0xb0, 0xbd, 0x36, 0xaf, 0x3b, 0x4a, 0x60,
269 0x9e, 0xef, 0xcf, 0x19, 0x0f, 0x6a, 0x5a, 0x7f}}, 269 0x9e, 0xef, 0xcf, 0x19, 0x0f, 0x6a, 0x5a, 0x7f}},
270 270
271 {"xstatus_busy", "Busy", 271 {"busy", N_("Busy"),
272 {0x48, 0x8e, 0x14, 0x89, 0x8a, 0xca, 0x4a, 0x08, 272 {0x48, 0x8e, 0x14, 0x89, 0x8a, 0xca, 0x4a, 0x08,
273 0x82, 0xaa, 0x77, 0xce, 0x7a, 0x16, 0x52, 0x08}}, 273 0x82, 0xaa, 0x77, 0xce, 0x7a, 0x16, 0x52, 0x08}},
274 274
275 {"xstatus_shopping", "Shopping", 275 {"xstatus_shopping", N_("Shopping"),
276 {0x63, 0x62, 0x73, 0x37, 0xa0, 0x3f, 0x49, 0xff, 276 {0x63, 0x62, 0x73, 0x37, 0xa0, 0x3f, 0x49, 0xff,
277 0x80, 0xe5, 0xf7, 0x09, 0xcd, 0xe0, 0xa4, 0xee}}, 277 0x80, 0xe5, 0xf7, 0x09, 0xcd, 0xe0, 0xa4, 0xee}},
278 278
279 {"xstatus_typing", "Typing", 279 /* This was in the original patch, but isn't what the official client
280 * (ICQ 6) sets when you choose its typewriter icon. */
281 {"xstatus_typing", NULL,
280 {0x63, 0x4f, 0x6b, 0xd8 ,0xad, 0xd2, 0x4a, 0xa1, 282 {0x63, 0x4f, 0x6b, 0xd8 ,0xad, 0xd2, 0x4a, 0xa1,
281 0xaa, 0xb9, 0x11, 0x5b, 0xc2, 0x6d, 0x05, 0xa1}}, 283 0xaa, 0xb9, 0x11, 0x5b, 0xc2, 0x6d, 0x05, 0xa1}},
282 284
283 {"xstatus_question", "Question Mark", 285 {"question", N_("Questioning"),
284 {0x63, 0x14, 0x36, 0xff, 0x3f, 0x8a, 0x40, 0xd0, 286 {0x63, 0x14, 0x36, 0xff, 0x3f, 0x8a, 0x40, 0xd0,
285 0xa5, 0xcb, 0x7b, 0x66, 0xe0, 0x51, 0xb3, 0x64}}, 287 0xa5, 0xcb, 0x7b, 0x66, 0xe0, 0x51, 0xb3, 0x64}},
286 288
287 {"xstatus_angry", "Angry", 289 {"angry", N_("Angry"),
288 {0x01, 0xd8, 0xd7, 0xee, 0xac, 0x3b, 0x49, 0x2a, 290 {0x01, 0xd8, 0xd7, 0xee, 0xac, 0x3b, 0x49, 0x2a,
289 0xa5, 0x8d, 0xd3, 0xd8, 0x77, 0xe6, 0x6b, 0x92}}, 291 0xa5, 0x8d, 0xd3, 0xd8, 0x77, 0xe6, 0x6b, 0x92}},
290 292
291 {"xstatus_eating", "Eating", 293 {"plate", N_("Eating"),
292 {0xf8, 0xe8, 0xd7, 0xb2, 0x82, 0xc4, 0x41, 0x42, 294 {0xf8, 0xe8, 0xd7, 0xb2, 0x82, 0xc4, 0x41, 0x42,
293 0x90, 0xf8, 0x10, 0xc6, 0xce, 0x0a, 0x89, 0xa6}}, 295 0x90, 0xf8, 0x10, 0xc6, 0xce, 0x0a, 0x89, 0xa6}},
294 296
295 {"xstatus_cinema", "Cinema", 297 /* Shooting Film (or Pictures) */
298 {"camera", N_("Shooting"),
296 {0x10, 0x7a, 0x9a, 0x18, 0x12, 0x32, 0x4d, 0xa4, 299 {0x10, 0x7a, 0x9a, 0x18, 0x12, 0x32, 0x4d, 0xa4,
297 0xb6, 0xcd, 0x08, 0x79, 0xdb, 0x78, 0x0f, 0x09}}, 300 0xb6, 0xcd, 0x08, 0x79, 0xdb, 0x78, 0x0f, 0x09}},
298 301
299 {"xstatus_sick", "Sick", 302 {"sick", N_("Sick"),
300 {0x1f, 0x7a, 0x40, 0x71, 0xbf, 0x3b, 0x4e, 0x60, 303 {0x1f, 0x7a, 0x40, 0x71, 0xbf, 0x3b, 0x4e, 0x60,
301 0xbc, 0x32, 0x4c, 0x57, 0x87, 0xb0, 0x4c, 0xf1}}, 304 0xbc, 0x32, 0x4c, 0x57, 0x87, 0xb0, 0x4c, 0xf1}},
302 305
303 {"xstatus_crap", "Unknown 1", 306 {"xstatus_typing", N_("Typing"),
304 {0x2c, 0xe0, 0xe4, 0xe5, 0x7c, 0x64, 0x43, 0x70, 307 {0x2c, 0xe0, 0xe4, 0xe5, 0x7c, 0x64, 0x43, 0x70,
305 0x9c, 0x3a, 0x7a, 0x1c, 0xe8, 0x78, 0xa7, 0xdc}}, 308 0x9c, 0x3a, 0x7a, 0x1c, 0xe8, 0x78, 0xa7, 0xdc}},
306 309
307 {"xstatus_iron", "Unknown 2", 310 {"xstatus_suit", N_("At the office"),
308 {0xb7, 0x08, 0x67, 0xf5, 0x38, 0x25, 0x43, 0x27, 311 {0xb7, 0x08, 0x67, 0xf5, 0x38, 0x25, 0x43, 0x27,
309 0xa1, 0xff, 0xcf, 0x4c, 0xc1, 0x93, 0x97, 0x97}}, 312 0xa1, 0xff, 0xcf, 0x4c, 0xc1, 0x93, 0x97, 0x97}},
310 313
311 {"xstatus_bathing", "Bathing", 314 {"xstatus_bathing", N_("Taking a bath"),
312 {0x5a, 0x58, 0x1e, 0xa1, 0xe5, 0x80, 0x43, 0x0c, 315 {0x5a, 0x58, 0x1e, 0xa1, 0xe5, 0x80, 0x43, 0x0c,
313 0xa0, 0x6f, 0x61, 0x22, 0x98, 0xb7, 0xe4, 0xc7}}, 316 0xa0, 0x6f, 0x61, 0x22, 0x98, 0xb7, 0xe4, 0xc7}},
314 317
315 {"xstatus_tv", "Watching TV", 318 {"tv", N_("Watching TV"),
316 {0x80, 0x53, 0x7d, 0xe2, 0xa4, 0x67, 0x4a, 0x76, 319 {0x80, 0x53, 0x7d, 0xe2, 0xa4, 0x67, 0x4a, 0x76,
317 0xb3, 0x54, 0x6d, 0xfd, 0x07, 0x5f, 0x5e, 0xc6}}, 320 0xb3, 0x54, 0x6d, 0xfd, 0x07, 0x5f, 0x5e, 0xc6}},
318 321
319 {"xstatus_fun", "Having fun", 322 {"smile-big", N_("Having fun"),
320 {0x6f, 0x49, 0x30, 0x98, 0x4f, 0x7c, 0x4a, 0xff, 323 {0x6f, 0x49, 0x30, 0x98, 0x4f, 0x7c, 0x4a, 0xff,
321 0xa2, 0x76, 0x34, 0xa0, 0x3b, 0xce, 0xae, 0xa7}}, 324 0xa2, 0x76, 0x34, 0xa0, 0x3b, 0xce, 0xae, 0xa7}},
322 325
323 {"xstatus_sleeping", "Sleeping", 326 {"sleepy", N_("Sleeping"),
324 {0x78, 0x5e, 0x8c, 0x48, 0x40, 0xd3, 0x4c, 0x65, 327 {0x78, 0x5e, 0x8c, 0x48, 0x40, 0xd3, 0x4c, 0x65,
325 0x88, 0x6f, 0x04, 0xcf, 0x3f, 0x3f, 0x43, 0xdf}}, 328 0x88, 0x6f, 0x04, 0xcf, 0x3f, 0x3f, 0x43, 0xdf}},
326 329
327 {"xstatus_pda", "PDA device", 330 {"hiptop", N_("Using a PDA"),
328 {0x10, 0x11, 0x17, 0xc9, 0xa3, 0xb0, 0x40, 0xf9, 331 {0x10, 0x11, 0x17, 0xc9, 0xa3, 0xb0, 0x40, 0xf9,
329 0x81, 0xac, 0x49, 0xe1, 0x59, 0xfb, 0xd5, 0xd4}}, 332 0x81, 0xac, 0x49, 0xe1, 0x59, 0xfb, 0xd5, 0xd4}},
330 333
331 {"xstatus_heart", "In love", 334 {"love", N_("In love"),
332 {0xdd, 0xcf, 0x0e, 0xa9, 0x71, 0x95, 0x40, 0x48, 335 {0xdd, 0xcf, 0x0e, 0xa9, 0x71, 0x95, 0x40, 0x48,
333 0xa9, 0xc6, 0x41, 0x32, 0x06, 0xd6, 0xf2, 0x80}}, 336 0xa9, 0xc6, 0x41, 0x32, 0x06, 0xd6, 0xf2, 0x80}},
334 337
335 {"xstatus_tired", "Tired", 338 /* Sleepy / Tired */
339 {"yawn", N_("Sleepy"),
336 {0x83, 0xc9, 0xb7, 0x8e, 0x77, 0xe7, 0x43, 0x78, 340 {0x83, 0xc9, 0xb7, 0x8e, 0x77, 0xe7, 0x43, 0x78,
337 0xb2, 0xc5, 0xfb, 0x6c, 0xfc, 0xc3, 0x5b, 0xec}}, 341 0xb2, 0xc5, 0xfb, 0x6c, 0xfc, 0xc3, 0x5b, 0xec}},
338 342
339 {"xstatus_friends", "Friends", 343 {"meeting", N_("Meeting friends"),
340 {0xf1, 0x8a, 0xb5, 0x2e, 0xdc, 0x57, 0x49, 0x1d, 344 {0xf1, 0x8a, 0xb5, 0x2e, 0xdc, 0x57, 0x49, 0x1d,
341 0x99, 0xdc, 0x64, 0x44, 0x50, 0x24, 0x57, 0xaf}}, 345 0x99, 0xdc, 0x64, 0x44, 0x50, 0x24, 0x57, 0xaf}},
342 346
343 {"xstatus_phone", "On the phone", 347 {"phone", N_("On the phone"),
344 {0x12, 0x92, 0xe5, 0x50, 0x1b, 0x64, 0x4f, 0x66, 348 {0x12, 0x92, 0xe5, 0x50, 0x1b, 0x64, 0x4f, 0x66,
345 0xb2, 0x06, 0xb2, 0x9a, 0xf3, 0x78, 0xe4, 0x8d}}, 349 0xb2, 0x06, 0xb2, 0x9a, 0xf3, 0x78, 0xe4, 0x8d}},
346 350
347 {"xstatus_surfing", "Surfing", 351 {"xstatus_surfing", N_("Surfing"),
348 {0xa6, 0xed, 0x55, 0x7e, 0x6b, 0xf7, 0x44, 0xd4, 352 {0xa6, 0xed, 0x55, 0x7e, 0x6b, 0xf7, 0x44, 0xd4,
349 0xa5, 0xd4, 0xd2, 0xe7, 0xd9, 0x5c, 0xe8, 0x1f}}, 353 0xa5, 0xd4, 0xd2, 0xe7, 0xd9, 0x5c, 0xe8, 0x1f}},
350 354
351 {"xstatus_mobile", "Cell phone", 355 /* "I am mobile." / "John is mobile." */
356 {"mobile", N_("Mobile"),
352 {0x16, 0x0c, 0x60, 0xbb, 0xdd, 0x44, 0x43, 0xf3, 357 {0x16, 0x0c, 0x60, 0xbb, 0xdd, 0x44, 0x43, 0xf3,
353 0x91, 0x40, 0x05, 0x0f, 0x00, 0xe6, 0xc0, 0x09}}, 358 0x91, 0x40, 0x05, 0x0f, 0x00, 0xe6, 0xc0, 0x09}},
354 359
355 {"xstatus_google", "Googling", 360 {"search", N_("Searching the web"),
356 {0xd4, 0xe2, 0xb0, 0xba, 0x33, 0x4e, 0x4f, 0xa5, 361 {0xd4, 0xe2, 0xb0, 0xba, 0x33, 0x4e, 0x4f, 0xa5,
357 0x98, 0xd0, 0x11, 0x7d, 0xbf, 0x4d, 0x3c, 0xc8}}, 362 0x98, 0xd0, 0x11, 0x7d, 0xbf, 0x4d, 0x3c, 0xc8}},
358 363
359 {"xstatus_party", "Party", 364 {"party", N_("At a party"),
360 {0xe6, 0x01, 0xe4, 0x1c, 0x33, 0x73, 0x4b, 0xd1, 365 {0xe6, 0x01, 0xe4, 0x1c, 0x33, 0x73, 0x4b, 0xd1,
361 0xbc, 0x06, 0x81, 0x1d, 0x6c, 0x32, 0x3d, 0x81}}, 366 0xbc, 0x06, 0x81, 0x1d, 0x6c, 0x32, 0x3d, 0x81}},
362 367
363 {"xstatus_coffee", "Coffee", 368 {"coffee", N_("Having Coffee"),
364 {0x1b, 0x78, 0xae, 0x31, 0xfa, 0x0b, 0x4d, 0x38, 369 {0x1b, 0x78, 0xae, 0x31, 0xfa, 0x0b, 0x4d, 0x38,
365 0x93, 0xd1, 0x99, 0x7e, 0xee, 0xaf, 0xb2, 0x18}}, 370 0x93, 0xd1, 0x99, 0x7e, 0xee, 0xaf, 0xb2, 0x18}},
366 371
367 {"xstatus_gaming", "Playing", 372 /* Playing video games */
373 {"console", N_("Gaming"),
368 {0xd4, 0xa6, 0x11, 0xd0, 0x8f, 0x01, 0x4e, 0xc0, 374 {0xd4, 0xa6, 0x11, 0xd0, 0x8f, 0x01, 0x4e, 0xc0,
369 0x92, 0x23, 0xc5, 0xb6, 0xbe, 0xc6, 0xcc, 0xf0}}, 375 0x92, 0x23, 0xc5, 0xb6, 0xbe, 0xc6, 0xcc, 0xf0}},
370 376
371 {"xstatus_internet", "Internet", 377 {"xstatus_internet", N_("Browsing the web"),
372 {0x12, 0xd0, 0x7e, 0x3e, 0xf8, 0x85, 0x48, 0x9e, 378 {0x12, 0xd0, 0x7e, 0x3e, 0xf8, 0x85, 0x48, 0x9e,
373 0x8e, 0x97, 0xa7, 0x2a, 0x65, 0x51, 0xe5, 0x8d}}, 379 0x8e, 0x97, 0xa7, 0x2a, 0x65, 0x51, 0xe5, 0x8d}},
374 380
375 {"xstatus_zzz", "Snoozing", 381 {"cigarette", N_("Smoking"),
376 {0x64, 0x43, 0xc6, 0xaf, 0x22, 0x60, 0x45, 0x17, 382 {0x64, 0x43, 0xc6, 0xaf, 0x22, 0x60, 0x45, 0x17,
377 0xb5, 0x8c, 0xd7, 0xdf, 0x8e, 0x29, 0x03, 0x52}}, 383 0xb5, 0x8c, 0xd7, 0xdf, 0x8e, 0x29, 0x03, 0x52}},
378 384
379 {"xstatus_writing", "Writing", 385 {"xstatus_writing", N_("Writing"),
380 {0x00, 0x72, 0xd9, 0x08, 0x4a, 0xd1, 0x43, 0xdd, 386 {0x00, 0x72, 0xd9, 0x08, 0x4a, 0xd1, 0x43, 0xdd,
381 0x91, 0x99, 0x6f, 0x02, 0x69, 0x66, 0x02, 0x6f}}, 387 0x91, 0x99, 0x6f, 0x02, 0x69, 0x66, 0x02, 0x6f}},
382 388
383 {"xstatus_beer", "Drinking", 389 /* Drinking [Alcohol] */
390 {"beer", N_("Drinking"),
384 {0x8c, 0x50, 0xdb, 0xae, 0x81, 0xed, 0x47, 0x86, 391 {0x8c, 0x50, 0xdb, 0xae, 0x81, 0xed, 0x47, 0x86,
385 0xac, 0xca, 0x16, 0xcc, 0x32, 0x13, 0xc7, 0xb7}}, 392 0xac, 0xca, 0x16, 0xcc, 0x32, 0x13, 0xc7, 0xb7}},
386 393
387 {"xstatus_music", "Music", 394 {"music", N_("Listening to music"),
388 {0x61, 0xbe, 0xe0, 0xdd, 0x8b, 0xdd, 0x47, 0x5d, 395 {0x61, 0xbe, 0xe0, 0xdd, 0x8b, 0xdd, 0x47, 0x5d,
389 0x8d, 0xee, 0x5f, 0x4b, 0xaa, 0xcf, 0x19, 0xa7}}, 396 0x8d, 0xee, 0x5f, 0x4b, 0xaa, 0xcf, 0x19, 0xa7}},
390 397
391 {"xstatus_studying", "Studying", 398 {"xstatus_studying", N_("Studying"),
392 {0x60, 0x9d, 0x52, 0xf8, 0xa2, 0x9a, 0x49, 0xa6, 399 {0x60, 0x9d, 0x52, 0xf8, 0xa2, 0x9a, 0x49, 0xa6,
393 0xb2, 0xa0, 0x25, 0x24, 0xc5, 0xe9, 0xd2, 0x60}}, 400 0xb2, 0xa0, 0x25, 0x24, 0xc5, 0xe9, 0xd2, 0x60}},
394 401
395 {"xstatus_engineering", "Engineering", 402 {"xstatus_working", N_("Working"),
396 {0xba, 0x74, 0xdb, 0x3e, 0x9e, 0x24, 0x43, 0x4b, 403 {0xba, 0x74, 0xdb, 0x3e, 0x9e, 0x24, 0x43, 0x4b,
397 0x87, 0xb6, 0x2f, 0x6b, 0x8d, 0xfe, 0xe5, 0x0f}}, 404 0x87, 0xb6, 0x2f, 0x6b, 0x8d, 0xfe, 0xe5, 0x0f}},
398 405
399 {"xstatus_crapping", "In the restroom", 406 {"xstatus_restroom", N_("In the restroom"),
400 {0x16, 0xf5, 0xb7, 0x6f, 0xa9, 0xd2, 0x40, 0x35, 407 {0x16, 0xf5, 0xb7, 0x6f, 0xa9, 0xd2, 0x40, 0x35,
401 0x8c, 0xc5, 0xc0, 0x84, 0x70, 0x3c, 0x98, 0xfa}} 408 0x8c, 0xc5, 0xc0, 0x84, 0x70, 0x3c, 0x98, 0xfa}}
402 }; 409 };
403 410
404 /* 411 /*
650 657
651 cap = byte_stream_getraw(bs, 0x10); 658 cap = byte_stream_getraw(bs, 0x10);
652 659
653 for (i = 1; i < AIM_CUSTOM_ICONS_COUNT; i++) { 660 for (i = 1; i < AIM_CUSTOM_ICONS_COUNT; i++) {
654 if (memcmp(&aim_custom_icons[i].data, cap, 0x10) == 0) { 661 if (memcmp(&aim_custom_icons[i].data, cap, 0x10) == 0) {
655 purple_debug_misc("oscar", "Custom user icon: %s\n", aim_custom_icons[i].descriptivename); 662 purple_debug_misc("oscar", "Custom status icon: %s\n", aim_custom_icons[i].descriptivename);
656 result = i; 663 result = i;
657 break; /* should only match once... */ 664 break; /* should only match once... */
658 } 665 }
659 } 666 }
660 g_free(cap); 667 g_free(cap);
757 764
758 static const struct { 765 static const struct {
759 char *mood; 766 char *mood;
760 gint32 icon_num; 767 gint32 icon_num;
761 } icqmoods[ICQMOODS_COUNT] = { 768 } icqmoods[ICQMOODS_COUNT] = {
769 {"icqmood0", 3},
762 {"icqmood1", 12}, 770 {"icqmood1", 12},
763 {"icqmood2", 18}, 771 {"icqmood2", 18},
764 {"icqmood3", 24}, 772 {"icqmood3", 24},
765 {"icqmood4", 30}, 773 {"icqmood4", 30},
766 {"icqmood5", 1}, 774 {"icqmood5", 1},
1080 gint32 i; 1088 gint32 i;
1081 gint32 icon_num = -1; 1089 gint32 icon_num = -1;
1082 1090
1083 mood = byte_stream_getstr(bs, length2); 1091 mood = byte_stream_getstr(bs, length2);
1084 1092
1093 /* The official clients allow
1094 * you to set your custom icon
1095 * to the "default" icon, to
1096 * allow setting a status
1097 * message. We'll ignore it.
1098 */
1099 if (!*mood)
1100 break;
1101
1085 for (i = 0; i < ICQMOODS_COUNT; i++) 1102 for (i = 0; i < ICQMOODS_COUNT; i++)
1086 if (!strcmp(mood, icqmoods[i].mood)) { 1103 if (!strcmp(mood, icqmoods[i].mood)) {
1087 icon_num = icqmoods[i].icon_num; 1104 icon_num = icqmoods[i].icon_num;
1088 break; /* should only match once... */ 1105 break; /* should only match once... */
1089 } 1106 }
1090 1107
1091 if (icon_num >= 0) 1108 if (icon_num >= 0)
1092 outinfo->customicon = icon_num; 1109 outinfo->customicon = icon_num;
1093 else 1110 else
1094 purple_debug_warning("oscar", "Unknown icqmood: %s", mood); 1111 purple_debug_warning("oscar", "Unknown icqmood: %s\n", mood);
1095 1112
1096 g_free(mood); 1113 g_free(mood);
1097 } break; 1114 } break;
1098 } 1115 }
1099 1116