/* pr.c: Skeleton of a file printer program */
      
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
      
static int
    Copies = 1,  /* Default to one copy */
    Number = 0;  /* Don't print with line numbers */
static char
    Queue = 'S'; /* Default to standard printer */
      
static void process(char *);

main(int argc, char *argv[])
{
    int i;
    char *s;
          
    /* Process each argument immediately */
    for (i = 1; i < argc; ++i)
    {
        if (argv[i][0] == '-')
            for (s = argv[i]+1; *s; ++s)
                switch(toupper(*s))
                {
                case 'C':   /* Build number for copies */
                    if (isdigit(s[1]))
                        for (Copies = 0; isdigit(s[1]); ++s)
                            Copies = Copies*10 + (s[1] - '0');
                    break;
                case 'N':   /* Toggle line numbering */
                    Number = !Number;
                    break;
                case 'Q':   /* Select print queue */
                    ++s;
                    Queue = toupper(*s);
                    break;
                default:
                    fprintf(stderr,"pr: Bad option: -%c\n",*s);
                    return EXIT_FAILURE;
                }
        else
            process(argv[i]);
    }
    return EXIT_SUCCESS;
}

static void process(char *s)
{
    printf("Processing %s...\n",s);
    printf("\tCopies: %d, Number: %d, Queue: %c\n", 
      Copies,Number,Queue);
}

/* The output after executing the command line above is

Processing file1.c...
	Copies: 10, Number: 1, Queue: S
Processing file2.c...
	Copies: 1, Number: 0, Queue: L
Processing file3.c...
	Copies: 1, Number: 0, Queue: L

*/

