diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-10-30 10:40:49 +0000 |
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-10-30 10:40:49 +0000 |
| commit | 347fb1d46e6d1b92d273bd41be1294704a7132ad (patch) | |
| tree | b475e5fcaa9bc6f1821bb3284b36570c3410a4fd /lib | |
| parent | 7645e885968a51382d8743b551e224dba81bfdc1 (diff) | |
Notes
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libc/gen/vis.3 | 3 | ||||
| -rw-r--r-- | lib/libc/gen/vis.c | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/libc/gen/vis.3 b/lib/libc/gen/vis.3 index 6f685a90e7fb..25f1365a1b10 100644 --- a/lib/libc/gen/vis.3 +++ b/lib/libc/gen/vis.3 @@ -137,6 +137,9 @@ except space, tab, and newline are encoded. The following flags alter this: .Bl -tag -width VIS_WHITEX +.It Dv VIS_GLOB +Also encode magic characters ('*', '?', '[') recognized by +.Xr glob 3 .It Dv VIS_SP Also encode space. .It Dv VIS_TAB diff --git a/lib/libc/gen/vis.c b/lib/libc/gen/vis.c index 8868a706e462..4f594ebe3f59 100644 --- a/lib/libc/gen/vis.c +++ b/lib/libc/gen/vis.c @@ -71,7 +71,9 @@ vis(dst, c, flag, nextc) } } - if (isgraph(c) || + if ((flag & VIS_GLOB) && (c == '*' || c == '?' || c == '[')) + ; + else if (isgraph(c) || ((flag & VIS_SP) == 0 && c == ' ') || ((flag & VIS_TAB) == 0 && c == '\t') || ((flag & VIS_NL) == 0 && c == '\n') || @@ -127,7 +129,7 @@ vis(dst, c, flag, nextc) goto done; } } - if (((c & 0177) == ' ') || (flag & VIS_OCTAL)) { + if (((c & 0177) == ' ') || isgraph(c) || (flag & VIS_OCTAL)) { *dst++ = '\\'; *dst++ = ((u_char)c >> 6 & 07) + '0'; *dst++ = ((u_char)c >> 3 & 07) + '0'; |
