=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/format-draw.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- src/usr.bin/tmux/format-draw.c 2023/08/07 10:04:29 1.27 +++ src/usr.bin/tmux/format-draw.c 2023/08/17 14:10:28 1.28 @@ -1,4 +1,4 @@ -/* $OpenBSD: format-draw.c,v 1.27 2023/08/07 10:04:29 nicm Exp $ */ +/* $OpenBSD: format-draw.c,v 1.28 2023/08/17 14:10:28 nicm Exp $ */ /* * Copyright (c) 2019 Nicholas Marriott @@ -33,6 +33,7 @@ enum style_range_type type; u_int argument; + char string[16]; TAILQ_ENTRY(format_range) entry; }; @@ -44,9 +45,18 @@ { if (fr->type != sy->range_type) return (0); - if (fr->type == STYLE_RANGE_WINDOW && - fr->argument != sy->range_argument) - return (0); + switch (fr->type) { + case STYLE_RANGE_NONE: + case STYLE_RANGE_LEFT: + case STYLE_RANGE_RIGHT: + return (1); + case STYLE_RANGE_PANE: + case STYLE_RANGE_WINDOW: + case STYLE_RANGE_SESSION: + return (fr->argument == sy->range_argument); + case STYLE_RANGE_USER: + return (strcmp(fr->string, sy->range_string) == 0); + } return (1); } @@ -942,6 +952,8 @@ fr->type = sy.range_type; fr->argument = sy.range_argument; + strlcpy(fr->string, sy.range_string, + sizeof fr->string); } } @@ -1013,13 +1025,39 @@ sr = xcalloc(1, sizeof *sr); sr->type = fr->type; sr->argument = fr->argument; + strlcpy(sr->string, fr->string, sizeof sr->string); sr->start = fr->start; sr->end = fr->end; TAILQ_INSERT_TAIL(srs, sr, entry); - log_debug("%s: range %d|%u at %u-%u", __func__, sr->type, - sr->argument, sr->start, sr->end); - + switch (sr->type) { + case STYLE_RANGE_NONE: + break; + case STYLE_RANGE_LEFT: + log_debug("%s: range left at %u-%u", __func__, + sr->start, sr->end); + break; + case STYLE_RANGE_RIGHT: + log_debug("%s: range right at %u-%u", __func__, + sr->start, sr->end); + break; + case STYLE_RANGE_PANE: + log_debug("%s: range pane|%%%u at %u-%u", __func__, + sr->argument, sr->start, sr->end); + break; + case STYLE_RANGE_WINDOW: + log_debug("%s: range window|%u at %u-%u", __func__, + sr->argument, sr->start, sr->end); + break; + case STYLE_RANGE_SESSION: + log_debug("%s: range session|$%u at %u-%u", __func__, + sr->argument, sr->start, sr->end); + break; + case STYLE_RANGE_USER: + log_debug("%s: range user|%u at %u-%u", __func__, + sr->argument, sr->start, sr->end); + break; + } format_free_range(&frs, fr); }