.\" Copyright (c) 2023–2024 DTB .\" Copyright (c) 2023–2024 Emma Tebibyte .\" .\" This work is licensed under CC BY-SA 4.0. To see a copy of this license, .\" visit . .\" .TH NPC 1 .SH NAME npc \(en show non-printing characters .\" .SH SYNOPSIS npc .RB ( -et ) .\" .SH DESCRIPTION Print normally non-printing characters. The program reads from standard input and writes to standard output, replacing non-printing characters with printable equivalents. Control characters print as a carat ('^') followed by the character '@' through '_' corresponding to the character replaced (e.g. control-X becomes '^X'). The delete character (0x7F) becomes '^?'. Characters with the high bit set (>127) are printed as 'M-' followed by the graphical representation for the same character without the high bit set. .\" .SH USAGE .IP -e Prints a currency sign ('$') before each line ending. .IP -t Prints tab characters as '^I' rather than a literal horizontal tab. .\" .SH DIAGNOSTICS In the event of an error, a debug message will be printed and the program will exit with the appropriate .BR sysexits.h (3) error code. .\" .SH BUGS The program operates in single-byte chunks regardless of intended encoding. .\" .SH RATIONALE POSIX currently lacks a way to display non-printing characters in the terminal using a standard tool. A popular extension to .BR cat (1p), the .B -v option, is the bandage solution GNU and other software suites use. This functionality is a separate tool because its usefulness extends beyond that of .BR cat (1p). .\" .SH AUTHOR Written by DTB .MT trinity@trinity.moe .ME . .\" .SH COPYRIGHT Copyright © 2023 DTB. License AGPLv3+: GNU AGPL version 3 or later . .\" .SH SEE ALSO .BR cat (1p), .BR cat-v (1) .I UNIX Style, or cat -v Considered Harmful by Rob Pike