=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/format.c,v retrieving revision 1.156 retrieving revision 1.157 diff -u -r1.156 -r1.157 --- src/usr.bin/tmux/format.c 2018/05/29 09:10:30 1.156 +++ src/usr.bin/tmux/format.c 2018/06/27 17:36:10 1.157 @@ -1,4 +1,4 @@ -/* $OpenBSD: format.c,v 1.156 2018/05/29 09:10:30 nicm Exp $ */ +/* $OpenBSD: format.c,v 1.157 2018/06/27 17:36:10 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -891,7 +892,7 @@ char **buf, size_t *len, size_t *off) { struct window_pane *wp = ft->wp; - char *copy, *copy0, *endptr, *ptr, *found, *new; + char *copy, *copy0, *endptr, *ptr, *found, *new, sep; char *value, *from = NULL, *to = NULL, *left, *right; size_t valuelen, newlen, fromlen, tolen, used; long limit = 0; @@ -975,20 +976,21 @@ copy += 2; break; case 's': - if (copy[1] != '/') + sep = copy[1]; + if (sep == ':' || !ispunct((u_char)sep)) break; from = copy + 2; - for (copy = from; *copy != '\0' && *copy != '/'; copy++) + for (copy = from; *copy != '\0' && *copy != sep; copy++) /* nothing */; - if (copy[0] != '/' || copy == from) { + if (copy[0] != sep || copy == from) { copy = copy0; break; } copy[0] = '\0'; to = copy + 1; - for (copy = to; *copy != '\0' && *copy != '/'; copy++) + for (copy = to; *copy != '\0' && *copy != sep; copy++) /* nothing */; - if (copy[0] != '/' || copy[1] != ':') { + if (copy[0] != sep || copy[1] != ':') { copy = copy0; break; }