|
Packit |
2fc92b |
/*
|
|
Packit |
2fc92b |
* Test program for PPD data encoding example code.
|
|
Packit |
2fc92b |
*
|
|
Packit |
2fc92b |
* Compile with:
|
|
Packit |
2fc92b |
*
|
|
Packit |
2fc92b |
* gcc -o testppdx -D_PPD_DEPRECATED="" -g testppdx.c ppdx.c -lcups -lz
|
|
Packit |
2fc92b |
*
|
|
Packit |
2fc92b |
* Copyright 2012 by Apple Inc.
|
|
Packit |
2fc92b |
*
|
|
Packit |
2fc92b |
* These coded instructions, statements, and computer programs are the
|
|
Packit |
2fc92b |
* property of Apple Inc. and are protected by Federal copyright
|
|
Packit |
2fc92b |
* law. Distribution and use rights are outlined in the file "LICENSE.txt"
|
|
Packit |
2fc92b |
* which should have been included with this file. If this file is
|
|
Packit |
2fc92b |
* missing or damaged, see the license at "http://www.cups.org/".
|
|
Packit |
2fc92b |
*
|
|
Packit |
2fc92b |
* This file is subject to the Apple OS-Developed Software exception.
|
|
Packit |
2fc92b |
*/
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
/*
|
|
Packit |
2fc92b |
* Include necessary headers...
|
|
Packit |
2fc92b |
*/
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
#include <stdio.h>
|
|
Packit |
2fc92b |
#include <string.h>
|
|
Packit |
2fc92b |
#include "ppdx.h"
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
/*
|
|
Packit |
2fc92b |
* 'main()' - Read data from a test PPD file and write out new chunks.
|
|
Packit |
2fc92b |
*/
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
int /* O - Exit status */
|
|
Packit |
2fc92b |
main(void)
|
|
Packit |
2fc92b |
{
|
|
Packit |
2fc92b |
int status = 0; /* Exit status */
|
|
Packit |
2fc92b |
FILE *fp; /* File to read */
|
|
Packit |
2fc92b |
char contents[8193], /* Contents of file */
|
|
Packit |
2fc92b |
*data; /* Data from PPD */
|
|
Packit |
2fc92b |
size_t contsize, /* File size */
|
|
Packit |
2fc92b |
datasize; /* Data size */
|
|
Packit |
2fc92b |
ppd_file_t *ppd; /* Test PPD */
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
/*
|
|
Packit |
2fc92b |
* Open the PPD and get the data from it...
|
|
Packit |
2fc92b |
*/
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
ppd = ppdOpenFile("testppdx.ppd");
|
|
Packit |
2fc92b |
data = ppdxReadData(ppd, "EXData", &datasize);
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
/*
|
|
Packit |
2fc92b |
* Open this source file and read it...
|
|
Packit |
2fc92b |
*/
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
fp = fopen("testppdx.c", "r");
|
|
Packit |
2fc92b |
if (fp)
|
|
Packit |
2fc92b |
{
|
|
Packit |
2fc92b |
contsize = fread(contents, 1, sizeof(contents) - 1, fp);
|
|
Packit |
2fc92b |
fclose(fp);
|
|
Packit |
2fc92b |
contents[contsize] = '\0';
|
|
Packit |
2fc92b |
}
|
|
Packit |
2fc92b |
else
|
|
Packit |
2fc92b |
{
|
|
Packit |
2fc92b |
contents[0] = '\0';
|
|
Packit |
2fc92b |
contsize = 0;
|
|
Packit |
2fc92b |
}
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
/*
|
|
Packit |
2fc92b |
* Compare data...
|
|
Packit |
2fc92b |
*/
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
if (data)
|
|
Packit |
2fc92b |
{
|
|
Packit |
2fc92b |
if (contsize != datasize)
|
|
Packit |
2fc92b |
{
|
|
Packit |
2fc92b |
fprintf(stderr, "ERROR: PPD has %ld bytes, test file is %ld bytes.\n",
|
|
Packit |
2fc92b |
(long)datasize, (long)contsize);
|
|
Packit |
2fc92b |
status = 1;
|
|
Packit |
2fc92b |
}
|
|
Packit |
2fc92b |
else if (strcmp(contents, data))
|
|
Packit |
2fc92b |
{
|
|
Packit |
2fc92b |
fputs("ERROR: PPD and test file are not the same.\n", stderr);
|
|
Packit |
2fc92b |
status = 1;
|
|
Packit |
2fc92b |
}
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
if (status)
|
|
Packit |
2fc92b |
{
|
|
Packit |
2fc92b |
if ((fp = fopen("testppdx.dat", "wb")) != NULL)
|
|
Packit |
2fc92b |
{
|
|
Packit |
2fc92b |
fwrite(data, 1, datasize, fp);
|
|
Packit |
2fc92b |
fclose(fp);
|
|
Packit |
2fc92b |
fputs("ERROR: See testppdx.dat for data from PPD.\n", stderr);
|
|
Packit |
2fc92b |
}
|
|
Packit |
2fc92b |
else
|
|
Packit |
2fc92b |
perror("Unable to open 'testppdx.dat'");
|
|
Packit |
2fc92b |
}
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
free(data);
|
|
Packit |
2fc92b |
}
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
printf("Encoding %ld bytes for PPD...\n", (long)contsize);
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
ppdxWriteData("EXData", contents, contsize);
|
|
Packit |
2fc92b |
|
|
Packit |
2fc92b |
return (1);
|
|
Packit |
2fc92b |
}
|