Patch-ID: bash32-032
[bash.git] / support / recho.c
blob287fffb71c7a43062acb9098cb1a129f8cfb65a1
1 /*
2 recho -- really echo args, bracketed with <> and with invisible chars
3 made visible.
5 Chet Ramey
6 chet@po.cwru.edu
7 */
9 /* Copyright (C) 2002-2005 Free Software Foundation, Inc.
11 This file is part of GNU Bash, the Bourne Again SHell.
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.
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.
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
30 #include "bashansi.h"
31 #include <stdio.h>
33 void strprint();
35 int
36 main(argc, argv)
37 int argc;
38 char **argv;
40 register int i;
42 for (i = 1; i < argc; i++) {
43 printf("argv[%d] = <", i);
44 strprint(argv[i]);
45 printf(">\n");
47 exit(0);
50 void
51 strprint(str)
52 char *str;
54 register unsigned char *s;
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);