POSIX says awk supports \v and \a escapes but ours does not. I used \007 for BEL since that is what awk's lex.c uses, though we could safely use '\a' there instead.
See http://mm.icann.org/pipermail/tz/2018-January/025932.html for context. - todd Index: usr.bin/awk/b.c =================================================================== RCS file: /cvs/src/usr.bin/awk/b.c,v retrieving revision 1.19 diff -u -p -r1.19 b.c --- usr.bin/awk/b.c 9 Oct 2017 14:51:31 -0000 1.19 +++ usr.bin/awk/b.c 23 Jan 2018 23:47:49 -0000 @@ -260,6 +260,8 @@ int quoted(uschar **pp) /* pick up next if ((c = *p++) == 't') c = '\t'; + else if (c == 'v') + c = '\v'; else if (c == 'n') c = '\n'; else if (c == 'f') @@ -268,6 +270,8 @@ int quoted(uschar **pp) /* pick up next c = '\r'; else if (c == 'b') c = '\b'; + else if (c == 'a') + c = '\007'; else if (c == '\\') c = '\\'; else if (c == 'x') { /* hexadecimal goo follows */ Index: usr.bin/awk/tran.c =================================================================== RCS file: /cvs/src/usr.bin/awk/tran.c,v retrieving revision 1.16 diff -u -p -r1.16 tran.c --- usr.bin/awk/tran.c 9 Oct 2017 14:51:31 -0000 1.16 +++ usr.bin/awk/tran.c 23 Jan 2018 23:47:02 -0000 @@ -434,9 +434,11 @@ char *qstring(const char *is, int delim) case '\\': *bp++ = '\\'; break; case 'n': *bp++ = '\n'; break; case 't': *bp++ = '\t'; break; + case 'v': *bp++ = '\v'; break; case 'b': *bp++ = '\b'; break; case 'f': *bp++ = '\f'; break; case 'r': *bp++ = '\r'; break; + case 'a': *bp++ = '\007'; break; default: if (!isdigit(c)) { *bp++ = c;
