=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/format.c,v retrieving revision 1.206 retrieving revision 1.207 diff -c -r1.206 -r1.207 *** src/usr.bin/tmux/format.c 2019/06/20 11:59:59 1.206 --- src/usr.bin/tmux/format.c 2019/06/24 10:04:29 1.207 *************** *** 1,4 **** ! /* $OpenBSD: format.c,v 1.206 2019/06/20 11:59:59 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: format.c,v 1.207 2019/06/24 10:04:29 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott *************** *** 1644,1656 **** goto fail; } else if (search != NULL) { /* Search in pane. */ if (wp == NULL) { ! format_log(ft, "search '%s' but no pane", copy); value = xstrdup("0"); } else { ! format_log(ft, "search '%s' pane %%%u", copy, wp->id); ! value = format_search(fm, wp, copy); } } else if (cmp != NULL) { /* Comparison of left and right. */ if (format_choose(ft, copy, &left, &right, 1) != 0) { --- 1644,1658 ---- goto fail; } else if (search != NULL) { /* Search in pane. */ + new = format_expand(ft, copy); if (wp == NULL) { ! format_log(ft, "search '%s' but no pane", new); value = xstrdup("0"); } else { ! format_log(ft, "search '%s' pane %%%u", new, wp->id); ! value = format_search(fm, wp, new); } + free(new); } else if (cmp != NULL) { /* Comparison of left and right. */ if (format_choose(ft, copy, &left, &right, 1) != 0) { *************** *** 1780,1790 **** /* Perform substitution if any. */ if (sub != NULL) { ! new = format_sub(sub, value, sub->argv[0], sub->argv[1]); ! format_log(ft, "substituted '%s' to '%s': %s", sub->argv[0], ! sub->argv[1], new); free(value); value = new; } /* Truncate the value if needed. */ --- 1782,1795 ---- /* Perform substitution if any. */ if (sub != NULL) { ! left = format_expand(ft, sub->argv[0]); ! right = format_expand(ft, sub->argv[1]); ! new = format_sub(sub, value, left, right); ! format_log(ft, "substitute '%s' to '%s': %s", left, right, new); free(value); value = new; + free(right); + free(left); } /* Truncate the value if needed. */