| /* | |
| * CGI template test program for CUPS. | |
| * | |
| * Copyright 2007-2011 by Apple Inc. | |
| * Copyright 2006 by Easy Software Products. | |
| * | |
| * Licensed under Apache License v2.0. See the file "LICENSE" for more information. | |
| */ | |
| /* | |
| * Include necessary headers... | |
| */ | |
| #include "cgi.h" | |
| /* | |
| * 'main()' - Test the template code. | |
| */ | |
| int /* O - Exit status */ | |
| main(int argc, /* I - Number of command-line arguments */ | |
| char *argv[]) /* I - Command-line arguments */ | |
| { | |
| int i; /* Looping var */ | |
| char *value; /* Value in name=value */ | |
| FILE *out; /* Where to send output */ | |
| /* | |
| * Don't buffer stdout or stderr so that the mixed output is sane... | |
| */ | |
| setbuf(stdout, NULL); | |
| setbuf(stderr, NULL); | |
| /* | |
| * Loop through the command-line, assigning variables for any args with | |
| * "name=value"... | |
| */ | |
| out = stdout; | |
| for (i = 1; i < argc; i ++) | |
| { | |
| if (!strcmp(argv[i], "-o")) | |
| { | |
| i ++; | |
| if (i < argc) | |
| { | |
| out = fopen(argv[i], "w"); | |
| if (!out) | |
| { | |
| perror(argv[i]); | |
| return (1); | |
| } | |
| } | |
| } | |
| else if (!strcmp(argv[i], "-e")) | |
| { | |
| i ++; | |
| if (i < argc) | |
| { | |
| if (!freopen(argv[i], "w", stderr)) | |
| { | |
| perror(argv[i]); | |
| return (1); | |
| } | |
| } | |
| } | |
| else if (!strcmp(argv[i], "-q")) | |
| freopen("/dev/null", "w", stderr); | |
| else if ((value = strchr(argv[i], '=')) != NULL) | |
| { | |
| *value++ = '\0'; | |
| cgiSetVariable(argv[i], value); | |
| } | |
| else | |
| cgiCopyTemplateFile(out, argv[i]); | |
| } | |
| /* | |
| * Return with no errors... | |
| */ | |
| return (0); | |
| } |