summaryrefslogtreecommitdiff
path: root/atarist/echo.c
diff options
context:
space:
mode:
Diffstat (limited to 'atarist/echo.c')
-rw-r--r--atarist/echo.c98
1 files changed, 0 insertions, 98 deletions
diff --git a/atarist/echo.c b/atarist/echo.c
deleted file mode 100644
index 0853d62a4b..0000000000
--- a/atarist/echo.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * echo args, globbing is necessary.
- * usage:
- * echo [-n] [args ...]
- * \n \r \b \c \v \\ \f \t \NNN escapes supported
- * -n and \c mean dont echo the final newline.
- *
- * ++jrb bammi@cadence.com
- */
-
-#include <stdio.h>
-
-#if __STDC__
-# include <compiler.h>
-#else
-# define __PROTO(X) ()
-#endif
-
-char **glob __PROTO((char *patt, int decend_dir));
-int contains_wild __PROTO((char *patt));
-void free_all __PROTO((void));
-
-
-int final_newline = 1; /* turned off by -n or \c */
-
-int main(argc, argv)
-int argc;
-char **argv;
-{
- --argc; ++argv;
- if((*argv)[0] == '-')
- {
- if ((*argv)[1] == 'n')
- final_newline = 0;
- else
- {
- fputs("usage: echo [-n] [arguement ... ]\n", stderr);
- return 1;
- }
- --argc; ++argv;
- }
-
- while(argc--)
- {
- char *word = *argv;
- char **list;
-
- if(contains_wild(word) && (list = glob(word, 0)))
- {
- while(*list)
- {
- fputs(*list, stdout);
- if(*++list) putchar(' ');
- }
- free_all();
- }
- else
- {
- char c;
- for(c = *word; c; c = (*word)? *++word : 0)
- {
- if(c != '\\')
- putchar(c);
- else
- {
- switch(*++word)
- {
- case 'b': putchar('\b'); break;
- case 'f': putchar('\f'); break;
- case 'n': putchar('\n'); break;
- case 'r': putchar('\r'); break;
- case 't': putchar('\t'); break;
- case 'v': putchar('\v'); break;
- case '\\': putchar('\\'); break;
- case 'c': final_newline = 0; break;
- default: putchar(*word); /* ?? */
- case '0':
- {
- int n = 0;
- for(c = *++word; (c >= '0') && (c <= '7'); c = *++word)
- n = (n << 3) + (c - '0');
- putchar(n);
- }
- }
- }
- }
- }
- if(*++argv) putchar(' ');
- }
- if(final_newline) putchar('\n');
- return 0;
-}
-
-
-
-
-
-