125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann/* 225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * Public file definitions for CUPS. 325aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * 425aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * Since stdio files max out at 256 files on many systems, we have to 525aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * write similar functions without this limit. At the same time, using 625aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * our own file functions allows us to provide transparent support of 725aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * gzip'd print files, PPD files, etc. 825aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * 925aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * Copyright 2007-2014 by Apple Inc. 1025aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * Copyright 1997-2007 by Easy Software Products, all rights reserved. 1125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * 1225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * These coded instructions, statements, and computer programs are the 1325aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * property of Apple Inc. and are protected by Federal copyright 1425aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * law. Distribution and use rights are outlined in the file "LICENSE.txt" 1525aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * which should have been included with this file. If this file is 162447373f182dbfeb47fb86c0f5a6ac5773c65ac2Philip P. Moltmann * missing or damaged, see the license at "http://www.cups.org/". 1725aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * 1825aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * This file is subject to the Apple OS-Developed Software exception. 1925aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann */ 2025aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 2125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann#ifndef _CUPS_FILE_H_ 2225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# define _CUPS_FILE_H_ 2325aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 2425aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 2525aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann/* 2625aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * Include necessary headers... 2725aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann */ 2825aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 2925aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# include "versioning.h" 3025aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# include <stddef.h> 3125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# include <sys/types.h> 3225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# if defined(WIN32) && !defined(__CUPS_SSIZE_T_DEFINED) 3325aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# define __CUPS_SSIZE_T_DEFINED 3425aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann/* Windows does not support the ssize_t type, so map it to off_t... */ 3525aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmanntypedef off_t ssize_t; /* @private@ */ 3625aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# endif /* WIN32 && !__CUPS_SSIZE_T_DEFINED */ 3725aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 3825aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 3925aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann/* 4025aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * C++ magic... 4125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann */ 4225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 4325aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# ifdef __cplusplus 4425aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern "C" { 4525aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# endif /* __cplusplus */ 4625aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 4725aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 4825aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann/* 4925aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * CUPS file definitions... 5025aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann */ 5125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 5225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# define CUPS_FILE_NONE 0 /* No compression */ 5325aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# define CUPS_FILE_GZIP 1 /* GZIP compression */ 5425aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 5525aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 5625aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann/* 5725aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * Types and structures... 5825aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann */ 5925aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 6025aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmanntypedef struct _cups_file_s cups_file_t;/**** CUPS file type ****/ 6125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 6225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 6325aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann/* 6425aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann * Prototypes... 6525aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann */ 6625aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 6725aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFileClose(cups_file_t *fp) _CUPS_API_1_2; 6825aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFileCompression(cups_file_t *fp) _CUPS_API_1_2; 6925aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFileEOF(cups_file_t *fp) _CUPS_API_1_2; 7025aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern const char *cupsFileFind(const char *filename, const char *path, 7125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann int executable, char *buffer, 7225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann int bufsize) _CUPS_API_1_2; 7325aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFileFlush(cups_file_t *fp) _CUPS_API_1_2; 7425aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFileGetChar(cups_file_t *fp) _CUPS_API_1_2; 7525aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern char *cupsFileGetConf(cups_file_t *fp, char *buf, 7625aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann size_t buflen, char **value, 7725aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann int *linenum) _CUPS_API_1_2; 7825aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern size_t cupsFileGetLine(cups_file_t *fp, char *buf, 7925aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann size_t buflen) _CUPS_API_1_2; 8025aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern char *cupsFileGets(cups_file_t *fp, char *buf, size_t buflen) 8125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann _CUPS_API_1_2; 8225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFileLock(cups_file_t *fp, int block) _CUPS_API_1_2; 8325aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFileNumber(cups_file_t *fp) _CUPS_API_1_2; 8425aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern cups_file_t *cupsFileOpen(const char *filename, const char *mode) 8525aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann _CUPS_API_1_2; 8625aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern cups_file_t *cupsFileOpenFd(int fd, const char *mode) _CUPS_API_1_2; 8725aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFilePeekChar(cups_file_t *fp) _CUPS_API_1_2; 8825aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFilePrintf(cups_file_t *fp, const char *format, ...) 8925aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann __attribute__((__format__ (__printf__, 2, 3))) 9025aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann _CUPS_API_1_2; 9125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFilePutChar(cups_file_t *fp, int c) _CUPS_API_1_2; 9225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern ssize_t cupsFilePutConf(cups_file_t *fp, const char *directive, 9325aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann const char *value) _CUPS_API_1_4; 9425aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFilePuts(cups_file_t *fp, const char *s) 9525aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann _CUPS_API_1_2; 9625aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern ssize_t cupsFileRead(cups_file_t *fp, char *buf, size_t bytes) 9725aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann _CUPS_API_1_2; 9825aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern off_t cupsFileRewind(cups_file_t *fp) _CUPS_API_1_2; 9925aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern off_t cupsFileSeek(cups_file_t *fp, off_t pos) _CUPS_API_1_2; 10025aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern cups_file_t *cupsFileStderr(void) _CUPS_API_1_2; 10125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern cups_file_t *cupsFileStdin(void) _CUPS_API_1_2; 10225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern cups_file_t *cupsFileStdout(void) _CUPS_API_1_2; 10325aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern off_t cupsFileTell(cups_file_t *fp) _CUPS_API_1_2; 10425aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern int cupsFileUnlock(cups_file_t *fp) _CUPS_API_1_2; 10525aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmannextern ssize_t cupsFileWrite(cups_file_t *fp, const char *buf, 10625aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann size_t bytes) _CUPS_API_1_2; 10725aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 10825aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann 10925aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# ifdef __cplusplus 11025aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann} 11125aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann# endif /* __cplusplus */ 11225aee82d491492e1fa3b005e5880e684dc081ffbPhilip P. Moltmann#endif /* !_CUPS_FILE_H_ */ 113