mirror of https://gitee.com/openkylin/cups.git
89 lines
1.5 KiB
C
89 lines
1.5 KiB
C
|
/*
|
||
|
* 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);
|
||
|
}
|