]> git.ipfire.org Git - thirdparty/bash.git/blame - support/recho.c
Bash-4.3 patch 15
[thirdparty/bash.git] / support / recho.c
CommitLineData
7117c2d2
JA
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
95732b49 9/* Copyright (C) 2002-2005 Free Software Foundation, Inc.
7117c2d2
JA
10
11 This file is part of GNU Bash, the Bourne Again SHell.
12
3185942a
JA
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.
7117c2d2 17
3185942a
JA
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*/
7117c2d2 26
95732b49
JA
27#if defined (HAVE_CONFIG_H)
28# include <config.h>
29#endif
7117c2d2 30
95732b49 31#include "bashansi.h"
726f6388
JA
32#include <stdio.h>
33
d166f048
JA
34void strprint();
35
36int
726f6388
JA
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 }
d166f048 48 exit(0);
726f6388
JA
49}
50
d166f048 51void
726f6388
JA
52strprint(str)
53char *str;
54{
7117c2d2 55 register unsigned char *s;
726f6388 56
7117c2d2 57 for (s = (unsigned char *)str; s && *s; s++) {
726f6388
JA
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}