1/* 2 recho -- really echo args, bracketed with <> and with invisible chars 3 made visible. 4 5 Chet Ramey 6 chet@po.cwru.edu 7*/ 8 9/* Copyright (C) 2002-2005 Free Software Foundation, Inc. 10 11 This file is part of GNU Bash, the Bourne Again SHell. 12 13 Bash is free software; you can redistribute it and/or modify it under 14 the terms of the GNU General Public License as published by the Free 15 Software Foundation; either version 2, or (at your option) any later 16 version. 17 18 Bash is distributed in the hope that it will be useful, but WITHOUT ANY 19 WARRANTY; without even the implied warranty of MERCHANTABILITY or 20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 21 for more details. 22 23 You should have received a copy of the GNU General Public License along 24 with Bash; see the file COPYING. If not, write to the Free Software 25 Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ 26 27#include <stdio.h> 28#include <stdlib.h> 29 30void strprint(); 31 32int 33main(argc, argv) 34int argc; 35char **argv; 36{ 37 register int i; 38 39 for (i = 1; i < argc; i++) { 40 printf("argv[%d] = <", i); 41 strprint(argv[i]); 42 printf(">\n"); 43 } 44 exit(0); 45} 46 47void 48strprint(str) 49char *str; 50{ 51 register unsigned char *s; 52 53 for (s = (unsigned char *)str; s && *s; s++) { 54 if (*s < ' ') { 55 putchar('^'); 56 putchar(*s+64); 57 } else if (*s == 127) { 58 putchar('^'); 59 putchar('?'); 60 } else 61 putchar(*s); 62 } 63} 64