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#if defined (HAVE_CONFIG_H) 27# include <config.h> 28#endif 29 30#include "bashansi.h" 31#include <stdio.h> 32 33void strprint(); 34 35int 36main(argc, argv) 37int argc; 38char **argv; 39{ 40 register int i; 41 42 for (i = 1; i < argc; i++) { 43 printf("argv[%d] = <", i); 44 strprint(argv[i]); 45 printf(">\n"); 46 } 47 exit(0); 48} 49 50void 51strprint(str) 52char *str; 53{ 54 register unsigned char *s; 55 56 for (s = (unsigned char *)str; s && *s; s++) { 57 if (*s < ' ') { 58 putchar('^'); 59 putchar(*s+64); 60 } else if (*s == 127) { 61 putchar('^'); 62 putchar('?'); 63 } else 64 putchar(*s); 65 } 66} 67