=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-parse.y,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- src/usr.bin/tmux/cmd-parse.y 2019/05/30 10:04:33 1.10 +++ src/usr.bin/tmux/cmd-parse.y 2019/05/31 11:34:09 1.11 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-parse.y,v 1.10 2019/05/30 10:04:33 nicm Exp $ */ +/* $OpenBSD: cmd-parse.y,v 1.11 2019/05/31 11:34:09 nicm Exp $ */ /* * Copyright (c) 2019 Nicholas Marriott @@ -998,11 +998,15 @@ if (ch == '%') { /* - * % is a condition unless it is alone, then it is a - * token. + * % is a condition unless it is all % or all numbers, + * then it is a token. */ yylval.token = yylex_get_word('%'); - if (strcmp(yylval.token, "%") == 0) + for (cp = yylval.token; *cp != '\0'; cp++) { + if (*cp != '%' && !isdigit((u_char)*cp)) + break; + } + if (*cp == '\0') return (TOKEN); if (strcmp(yylval.token, "%if") == 0) { free(yylval.token);