home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / prof_c / 07config / prtstr.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-08-11  |  1.2 KB  |  65 lines

  1. /*
  2.  *    prtstr -- send text string(s) to standard printer
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <local\std.h>
  8.  
  9. main(argc, argv)
  10. int argc;
  11. char **argv;
  12. {
  13.     int ch;
  14.     BOOLEAN errflag, lineflag;
  15.     static char pgm[MAXNAME + 1] = { "prtstr" };
  16.     FILE *fout;
  17.  
  18.     extern char *getpname(char *, char *);
  19.     extern int getopt(int, char **, char *);
  20.     extern int optind, opterr;
  21.     extern char *optarg;
  22.  
  23.     if (_osmajor >= 3)
  24.         getpname(*argv, pgm);
  25.  
  26.     /* process options, if any */
  27.     errflag = FALSE;
  28.     lineflag = TRUE;
  29.     fout = stdprn;
  30.     while ((ch = getopt(argc, argv, "np")) != EOF)
  31.         switch (ch) {
  32.         case 'n':
  33.             /* don't emit the trailing newline */
  34.             lineflag = FALSE;
  35.             break;
  36.         case 'p':
  37.             /* preview on stdout */
  38.             fout = stdout;
  39.             break;
  40.         case '?':
  41.             /* bad option */
  42.             errflag = TRUE;
  43.             break;
  44.         }
  45.     if (errflag == TRUE) {
  46.         fprintf(stderr, "Usage: %s [-np] [string...]\n");
  47.         exit(1);
  48.     }
  49.  
  50.     /* print the string(s) */
  51.     argc -= optind;
  52.     argv += optind;
  53.     while (argc-- > 1 ) {
  54.         fputs(*argv++, fout);
  55.         fputc(' ', fout);
  56.     }
  57.     fputs(*argv++, fout);
  58.     if (lineflag == TRUE)
  59.         fputc(' ', fout);
  60.     if (lineflag == TRUE)
  61.         fputc('\n', fout);
  62.     
  63.     exit(0);
  64. }
  65.