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 14 it under the terms of the GNU General Public License as published by 15 the Free Software Foundation, either version 3 of the License, or 16 (at your option) any later version. 17 18 Bash is distributed in the hope that it will be useful, 19 but WITHOUT ANY WARRANTY; without even the implied warranty of 20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 GNU General Public License for more details. 22 23 You should have received a copy of the GNU General Public License 24 along with Bash. If not, see <http://www.gnu.org/licenses/>. 25*/ 26 27#if defined (HAVE_CONFIG_H) 28# include <config.h> 29#endif 30 31#include "bashansi.h" 32#include <stdio.h> 33 34void strprint(); 35 36int 37main(argc, argv) 38int argc; 39char **argv; 40{ 41 register int i; 42 43 for (i = 1; i < argc; i++) { 44 printf("argv[%d] = <", i); 45 strprint(argv[i]); 46 printf(">\n"); 47 } 48 exit(0); 49} 50 51void 52strprint(str) 53char *str; 54{ 55 register unsigned char *s; 56 57 for (s = (unsigned char *)str; s && *s; s++) { 58 if (*s < ' ') { 59 putchar('^'); 60 putchar(*s+64); 61 } else if (*s == 127) { 62 putchar('^'); 63 putchar('?'); 64 } else 65 putchar(*s); 66 } 67} 68