1/*---------------------------------------------------------------------------*
2 |              PDFlib - A library for generating PDF on the fly             |
3 +---------------------------------------------------------------------------+
4 | Copyright (c) 1997-2004 Thomas Merz and PDFlib GmbH. All rights reserved. |
5 +---------------------------------------------------------------------------+
6 |                                                                           |
7 |    This software is subject to the PDFlib license. It is NOT in the       |
8 |    public domain. Extended versions and commercial licenses are           |
9 |    available, please check http://www.pdflib.com.                         |
10 |                                                                           |
11 *---------------------------------------------------------------------------*/
12
13/* $Id: pc_file.h 14574 2005-10-29 16:27:43Z bonefish $
14 *
15 * Definitions for file routines
16 *
17 */
18
19#ifndef PC_FILE_H
20#define PC_FILE_H
21
22#if (defined(MAC) || defined(MACOSX))
23
24#include <Files.h>
25
26#ifdef PDF_TARGET_API_MAC_CARBON
27
28OSStatus FSPathMakeFSSpec(const UInt8 *path, FSSpec *spec);
29
30#else
31
32#include <Aliases.h>
33
34OSErr FSpLocationFromFullPath(short fullPathLength,
35		const void *fullPath, FSSpec *spec);
36
37#endif /* !PDF_TARGET_API_MAC_CARBON */
38#endif /* (defined(MAC) || defined(MACOSX)) */
39
40#define PDC_FILENAMELEN  1024    /* maximum file name length */
41
42#define PDC_FILE_BINARY (1L<<0)  /* open as binary file,
43                                    otherwise as text file */
44
45#define PDC_OK_FREAD(file, buffer, len) \
46    (pdc_fread(buffer, 1, len, file) == len)
47
48typedef struct pdc_file_s pdc_file;
49
50int     pdc_get_fopen_errnum(pdc_core *pdc, int errnum);
51void    *pdc_read_file(pdc_core *pdc, FILE *fp, size_t *o_filelen, int incore);
52int     pdc_read_textfile(pdc_core *pdc, pdc_file *sfp, char ***linelist);
53void    pdc_tempname(char *outbuf, int outlen, const char *inbuf, int inlen);
54
55pdc_file *pdc_fopen(pdc_core *pdc, const char *filename, const char *qualifier,
56                    const pdc_byte *data, size_t size, int flags);
57pdc_core *pdc_file_getpdc(pdc_file *sfp);
58char   *pdc_file_name(pdc_file *sfp);
59size_t  pdc_file_size(pdc_file *sfp);
60pdc_bool pdc_file_isvirtual(pdc_file *sfp);
61char   *pdc_fgets_comp(char *s, int size, pdc_file *sfp);
62long    pdc_ftell(pdc_file *sfp);
63int     pdc_fseek(pdc_file *sfp, long offset, int whence);
64size_t  pdc_fread(void *ptr, size_t size, size_t nmemb, pdc_file *sfp);
65const void *pdc_freadall(pdc_file *sfp, size_t *filelen, pdc_bool *ismem);
66int     pdc_ungetc(int c, pdc_file *sfp);
67int     pdc_fgetc(pdc_file *sfp);
68char   *pdc_fgets(char *s, int size, pdc_file *sfp);
69int     pdc_feof(pdc_file *sfp);
70void    pdc_fclose(pdc_file *sfp);
71void    pdc_file_fullname(const char *dirname, const char *basename,
72                          char *fullname);
73
74
75
76#endif  /* PC_FILE_H */
77