From 7993f46e7682b7730fc461b6f10550ffea703b16 Mon Sep 17 00:00:00 2001 From: bg- Date: Fri, 5 Jan 2007 18:05:21 +0000 Subject: [PATCH] * More control chars that needs binary output. --- tools/scat.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/tools/scat.c b/tools/scat.c index 3534509e0..19be4e96b 100644 --- a/tools/scat.c +++ b/tools/scat.c @@ -26,7 +26,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: scat.c,v 1.2 2006/12/27 14:19:22 bg- Exp $ + * $Id: scat.c,v 1.3 2007/01/05 18:05:21 bg- Exp $ * */ @@ -101,10 +101,8 @@ int main(int argc, char **argv) { int slipfd; - int ret; FILE *inslip; const char *siodev; - int c; if (argc != 2) err(1, "usage: scat device-file"); @@ -128,10 +126,28 @@ main(int argc, char **argv) else if (c == SLIP_ESC_END) c = SLIP_END; } - if (isprint(c) || c == '\n' || c == '\t' || c == '\r') + switch (c) { + case EOF: + err(1, "getc(inslip)"); + break; + + case '\007': + case '\b': + case '\f': + case '\n': + case '\r': + case '\t': + case '\v': putchar(c); - else - printf("%02x ", c); + break; + + default: + if (isprint(c)) + putchar(c); + else + printf("%02x ", c); + break; + } c = getc(inslip); } while (c != SLIP_END); }