=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window-copy.c,v retrieving revision 1.237 retrieving revision 1.238 diff -c -r1.237 -r1.238 *** src/usr.bin/tmux/window-copy.c 2019/10/23 07:42:05 1.237 --- src/usr.bin/tmux/window-copy.c 2019/11/07 07:11:25 1.238 *************** *** 1,4 **** ! /* $OpenBSD: window-copy.c,v 1.237 2019/10/23 07:42:05 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: window-copy.c,v 1.238 2019/11/07 07:11:25 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 1673,1684 **** struct window_copy_mode_data *data = wme->data; u_int np = wme->prefix; const char *argument; if (cs->args->argc == 2) { argument = cs->args->argv[1]; if (*argument != '\0') { ! free(data->searchstr); ! data->searchstr = xstrdup(argument); } } if (data->searchstr != NULL) { --- 1673,1696 ---- struct window_copy_mode_data *data = wme->data; u_int np = wme->prefix; const char *argument; + char *expanded; if (cs->args->argc == 2) { argument = cs->args->argv[1]; if (*argument != '\0') { ! if (args_has(cs->args, 'F')) { ! expanded = format_single(NULL, argument, NULL, ! NULL, NULL, wme->wp); ! if (*expanded == '\0') { ! free(expanded); ! return (WINDOW_COPY_CMD_NOTHING); ! } ! free(data->searchstr); ! data->searchstr = expanded; ! } else { ! free(data->searchstr); ! data->searchstr = xstrdup(argument); ! } } } if (data->searchstr != NULL) { *************** *** 1696,1707 **** struct window_copy_mode_data *data = wme->data; u_int np = wme->prefix; const char *argument; if (cs->args->argc == 2) { argument = cs->args->argv[1]; if (*argument != '\0') { ! free(data->searchstr); ! data->searchstr = xstrdup(argument); } } if (data->searchstr != NULL) { --- 1708,1731 ---- struct window_copy_mode_data *data = wme->data; u_int np = wme->prefix; const char *argument; + char *expanded; if (cs->args->argc == 2) { argument = cs->args->argv[1]; if (*argument != '\0') { ! if (args_has(cs->args, 'F')) { ! expanded = format_single(NULL, argument, NULL, ! NULL, NULL, wme->wp); ! if (*expanded == '\0') { ! free(expanded); ! return (WINDOW_COPY_CMD_NOTHING); ! } ! free(data->searchstr); ! data->searchstr = expanded; ! } else { ! free(data->searchstr); ! data->searchstr = xstrdup(argument); ! } } } if (data->searchstr != NULL) {