Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/hooks.c @ 1444:3bf11085c6a5
New external "UNREAD" event (suggested by Viacheslav Chumushuk)
Thanks to Viacheslav for the suggestion and sample patch.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sun, 02 Mar 2008 11:14:42 +0100 |
parents | a64778f5f26b |
children | ba706e97d6ec |
comparison
equal
deleted
inserted
replaced
1443:0623d694a77f | 1444:3bf11085c6a5 |
---|---|
403 char *arg_type = NULL; | 403 char *arg_type = NULL; |
404 char *arg_info = NULL; | 404 char *arg_info = NULL; |
405 char *arg_data = NULL; | 405 char *arg_data = NULL; |
406 char status_str[2]; | 406 char status_str[2]; |
407 char *datafname = NULL; | 407 char *datafname = NULL; |
408 char unread_str[16]; | |
408 | 409 |
409 if (!extcmd) return; | 410 if (!extcmd) return; |
410 | 411 |
411 // Prepare arg_* (external command parameters) | 412 // Prepare arg_* (external command parameters) |
412 switch (type) { | 413 switch (type) { |
413 case 'M': | 414 case 'M': /* Normal message */ |
414 arg_type = "MSG"; | 415 arg_type = "MSG"; |
415 if (info == 'R') | 416 if (info == 'R') |
416 arg_info = "IN"; | 417 arg_info = "IN"; |
417 else if (info == 'S') | 418 else if (info == 'S') |
418 arg_info = "OUT"; | 419 arg_info = "OUT"; |
419 break; | 420 break; |
420 case 'G': | 421 case 'G': /* Groupchat message */ |
421 arg_type = "MSG"; | 422 arg_type = "MSG"; |
422 arg_info = "MUC"; | 423 arg_info = "MUC"; |
423 break; | 424 break; |
424 case 'S': | 425 case 'S': /* Status change */ |
425 arg_type = "STATUS"; | 426 arg_type = "STATUS"; |
426 if (strchr(imstatus2char, tolower(info))) { | 427 if (strchr(imstatus2char, tolower(info))) { |
427 status_str[0] = toupper(info); | 428 status_str[0] = toupper(info); |
428 status_str[1] = 0; | 429 status_str[1] = 0; |
429 arg_info = status_str; | 430 arg_info = status_str; |
430 } | 431 } |
432 break; | |
433 case 'U': /* Unread buffer count */ | |
434 arg_type = "UNREAD"; | |
435 g_snprintf(unread_str, sizeof unread_str, "%d", info); | |
436 arg_info = unread_str; /* number of remaining unread bjids */ | |
431 break; | 437 break; |
432 default: | 438 default: |
433 return; | 439 return; |
434 } | 440 } |
435 | 441 |