=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-parse.y,v retrieving revision 1.6 retrieving revision 1.7 diff -c -r1.6 -r1.7 *** src/usr.bin/tmux/cmd-parse.y 2019/05/27 12:16:27 1.6 --- src/usr.bin/tmux/cmd-parse.y 2019/05/29 10:08:36 1.7 *************** *** 1,4 **** ! /* $OpenBSD: cmd-parse.y,v 1.6 2019/05/27 12:16:27 nicm Exp $ */ /* * Copyright (c) 2019 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: cmd-parse.y,v 1.7 2019/05/29 10:08:36 nicm Exp $ */ /* * Copyright (c) 2019 Nicholas Marriott *************** *** 1083,1094 **** static int yylex_token_escape(char **buf, size_t *len) { ! int ch, type; u_int size, i, tmp; char s[9]; struct utf8_data ud; ! switch (ch = yylex_getc()) { case EOF: return (0); case 'e': --- 1083,1116 ---- static int yylex_token_escape(char **buf, size_t *len) { ! int ch, type, o2, o3; u_int size, i, tmp; char s[9]; struct utf8_data ud; ! ch = yylex_getc(); ! ! if (ch >= '4' && ch <= '7') { ! yyerror("invalid octal escape"); ! return (0); ! } ! if (ch >= '0' && ch <= '3') { ! o2 = yylex_getc(); ! if (o2 >= '0' && o2 <= '7') { ! o3 = yylex_getc(); ! if (o3 >= '0' && o3 <= '7') { ! ch = 64 * (ch - '0') + ! 8 * (o2 - '0') + ! (o3 - '0'); ! yylex_append1(buf, len, ch); ! return (1); ! } ! } ! yyerror("invalid octal escape"); ! return (0); ! } ! ! switch (ch) { case EOF: return (0); case 'e':