| | 666 | | void statusbar_item_default_handler(SBAR_ITEM_REC *item, int get_size_only, | | | 667 | | const char *str, const char *data, | | | 668 | | int escape_vars) | | | 669 | | { | | | 670 | | SERVER_REC *server; | | | 671 | | WI_ITEM_REC *wiitem; | | | 672 | | char *tmpstr, *tmpstr2; | | | 673 | | int len; | | | 674 | | | | | 675 | | if (str == NULL)
| | | 676 | | str = statusbar_item_get_value(item); | | | 677 | | if (str == NULL || *str == '\0') {
| | | 678 | | item->min_size = item->max_size = 0; | | | 679 | | return; | | | 680 | | } | | | 681 | | | | | 682 | | if (active_win == NULL) {
| | | 683 | | server = NULL;
| | | 684 | | wiitem = NULL;
| | | 685 | | } else { | | | 686 | | server = active_win->active_server != NULL ?
| | | 687 | | active_win->active_server : active_win->connect_server; | | | 688 | | wiitem = active_win->active; | | | 689 | | } | | | 690 | | | | | 691 | | | | | 692 | | tmpstr = theme_format_expand_data(current_theme, &str, | | | 693 | | 'n', 'n', | | | 694 | | NULL, NULL,
| | | 695 | | EXPAND_FLAG_ROOT |
| | | 696 | | EXPAND_FLAG_IGNORE_REPLACES |
| | | 697 | | EXPAND_FLAG_IGNORE_EMPTY);
| | | 698 | | | | | 699 | | tmpstr2 = parse_special_string(tmpstr, server, wiitem, data, NULL,
|
| | 482 | | | | char *parse_special_string(const char *cmd, SERVER_REC *server, void *item, | | | 483 | | | | const char *data, int *arg_used, int flags) | | | 484 | | | | { | | | 485 | | | | char code, **arglist, *ret; | | | 486 | | | | GString *str; | | | 487 | | | | int need_free, chr; | | | 488 | | | | | | true | 489 | | | | g_return_val_if_fail(cmd != NULL, NULL);
| | | 490 | | | | g_return_val_if_fail(data != NULL, NULL);
| | | 491 | | | | | | | 492 | | | | | | | 493 | | | | arglist = g_strsplit(data, " ", -1); | | | 494 | | | | | | | 495 | | | | if (arg_used != NULL) *arg_used = FALSE;
| | | 496 | | | | code = 0; | | | 497 | | | | str = g_string_new(NULL);
| | | 498 | | | | while (*cmd != '\0') { | | | 499 | | | | if (code == '\\') { | | | | | | | ... | | | 522 | | | | g_string_append_c(str, *cmd);
| | | 523 | | | | } | | | 524 | | | | | | | 525 | | | | cmd++; | | | 526 | | | | } | | | 527 | | | | g_strfreev(arglist); | | | 528 | | | | | | | 529 | | | | ret = str->str; | | | 530 | | | | g_string_free(str, FALSE);
| | | 531 | | | | return ret; | | parse_special_string$return <= 4095 | 532 | | | | } | Problem | | parse_special_string$return <= 4095 |
|
|