home *** CD-ROM | disk | FTP | other *** search
/ PC Extra Super CD 1998 January / PCPLUS131.iso / DJGPP / V2 / DJLSR201.ZIP / src / utils / echo.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-12  |  1.2 KB  |  65 lines

  1. /* Copyright (C) 1996 DJ Delorie, see COPYING.DJ for details */
  2. /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
  3. #include <stdio.h>
  4.  
  5. int
  6. main(int argc, char **argv)
  7. {
  8.   int i;
  9.   int nflag=0;
  10.   FILE *out = stdout;
  11.   char sep = ' ';
  12.  
  13.   while (argc > 1 && argv[1][0] == '-')
  14.   {
  15.     if ((argc > 2) && (strcmp(argv[1], "-o") == 0))
  16.     {
  17.       out = fopen(argv[2], "w");
  18.       if (!out)
  19.       {
  20.     perror(argv[2]);
  21.     out = stdout;
  22.       }
  23.       argc -= 2;
  24.       argv += 2;
  25.     }
  26.     else if ((argc > 2) && (strcmp(argv[1], "-a") == 0))
  27.     {
  28.       out = fopen(argv[2], "a");
  29.       if (!out)
  30.       {
  31.     perror(argv[2]);
  32.     out = stdout;
  33.       }
  34.       argc -= 2;
  35.       argv += 2;
  36.     }
  37.     else if ((argc > 1) && (strcmp(argv[1], "-n") == 0))
  38.     {
  39.       nflag = 1;
  40.       argc--;
  41.       argv++;
  42.     }
  43.     else if ((argc > 1) && (strcmp(argv[1], "-s") == 0))
  44.     {
  45.       sep = '\n';
  46.       argc--;
  47.       argv++;
  48.     }
  49.     else
  50.     {
  51.       fprintf(stderr, "Usage: echo [-o file] [-a file] [-n] [-s] args...\n");
  52.       return 1;
  53.     }
  54.   }
  55.   for (i=1; i<argc; i++)
  56.   {
  57.     if (i>1) fputc(sep, out);
  58.     fputs(argv[i], out);
  59.   }
  60.   if (!nflag)
  61.     fputc('\n', out);
  62.   fclose(out);
  63.   return 0;
  64. }
  65.