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;

Reply via email to