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 main(int argc, char **argv) 33{ 34 int i; 35 36 for (i = 1; i < argc; i++) { 37 printf("argv[%d] = <", i); 38 strprint(argv[i]); 39 printf(">\n"); 40 } 41 exit(EXIT_SUCCESS); 42} 43 44void strprint(char *str) 45{ 46 unsigned char *s; 47 48 for (s = (unsigned char *)str; s && *s; s++) { 49 if (*s < ' ') { 50 putchar('^'); 51 putchar(*s+64); 52 } else if (*s == 127) { 53 putchar('^'); 54 putchar('?'); 55 } else 56 putchar(*s); 57 } 58} 59