annotate libzip/lib/compat.h @ 20:3b18afe43c9d

libzip: reimport version 1.1.3
author David Demelier <markand@malikania.fr>
date Wed, 29 Jun 2016 09:24:55 +0200
parents
children 056ee6b5913e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #ifndef _HAD_LIBZIP_COMPAT_H
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 #define _HAD_LIBZIP_COMPAT_H
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
3
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 /*
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 compat.h -- compatibility defines.
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
7
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 This file is part of libzip, a library to manipulate ZIP archives.
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 The authors can be contacted at <libzip@nih.at>
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
10
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 Redistribution and use in source and binary forms, with or without
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 modification, are permitted provided that the following conditions
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 are met:
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 1. Redistributions of source code must retain the above copyright
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 notice, this list of conditions and the following disclaimer.
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 2. Redistributions in binary form must reproduce the above copyright
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 notice, this list of conditions and the following disclaimer in
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 the documentation and/or other materials provided with the
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 distribution.
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 3. The names of the authors may not be used to endorse or promote
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 products derived from this software without specific prior
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 written permission.
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 */
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 #ifdef HAVE_CONFIG_H
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 #include "config.h"
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
40
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 /* to have *_MAX definitions for all types when compiling with g++ */
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 #define __STDC_LIMIT_MACROS
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
43
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 #ifdef _WIN32
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 #define ZIP_EXTERN __declspec(dllexport)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 /* for dup(), close(), etc. */
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 #include <io.h>
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
49
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 #ifdef HAVE_STDBOOL_H
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 #include <stdbool.h>
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 #else
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 typedef char bool;
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 #define true 1
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 #define false 0
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
57
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 #include <errno.h>
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
59
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 /* at least MinGW does not provide EOPNOTSUPP, see
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 * http://sourceforge.net/p/mingw/bugs/263/
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 */
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 #ifndef EOPNOTSUPP
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 #define EOPNOTSUPP EINVAL
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
66
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 /* at least MinGW does not provide EOVERFLOW, see
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 * http://sourceforge.net/p/mingw/bugs/242/
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 */
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 #ifndef EOVERFLOW
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 #define EOVERFLOW EFBIG
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
73
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 #ifdef _WIN32
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 #if defined(HAVE__CLOSE)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 #define close _close
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 #if defined(HAVE__DUP)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 #define dup _dup
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 /* crashes reported when using fdopen instead of _fdopen on Windows/Visual Studio 10/Win64 */
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 #if defined(HAVE__FDOPEN)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 #define fdopen _fdopen
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 #if !defined(HAVE_FILENO) && defined(HAVE__FILENO)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 #define fileno _fileno
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 /* Windows' open() doesn't understand Unix permissions */
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 #if defined(HAVE__OPEN)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 #define open(a, b, c) _open((a), (b))
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 #if defined(HAVE__SNPRINTF)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 #define snprintf _snprintf
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 #if defined(HAVE__STRDUP)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 #if !defined(HAVE_STRDUP) || defined(_WIN32)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 #undef strdup
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 #define strdup _strdup
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 #if !defined(HAVE__SETMODE) && defined(HAVE_SETMODE)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 #define _setmode setmode
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
105
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 #ifndef HAVE_FSEEKO
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 #define fseeko(s, o, w) (fseek((s), (long int)(o), (w)))
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
109
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 #ifndef HAVE_FTELLO
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 #define ftello(s) ((long)ftell((s)))
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
113
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 #ifndef HAVE_MKSTEMP
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 int _zip_mkstemp(char *);
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 #define mkstemp _zip_mkstemp
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
118
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 #if !defined(HAVE_STRCASECMP)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 #if defined(HAVE__STRICMP)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 #define strcasecmp _stricmp
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 #elif defined(HAVE_STRICMP)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 #define strcasecmp stricmp
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
126
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 #if SIZEOF_OFF_T == 8
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 #define ZIP_OFF_MAX ZIP_INT64_MAX
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 #define ZIP_OFF_MIN ZIP_INT64_MIN
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 #elif SIZEOF_OFF_T == 4
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 #define ZIP_OFF_MAX ZIP_INT32_MAX
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 #define ZIP_OFF_MIN ZIP_INT32_MIN
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 #elif SIZEOF_OFF_T == 2
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 #define ZIP_OFF_MAX ZIP_INT16_MAX
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 #define ZIP_OFF_MIN ZIP_INT16_MIN
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 #else
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 #error unsupported size of off_t
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
139
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 #if defined(HAVE_FTELLO) && defined(HAVE_FSEEKO)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 #define ZIP_FSEEK_MAX ZIP_OFF_MAX
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 #define ZIP_FSEEK_MIN ZIP_OFF_MIN
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 #else
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 #include <limits.h>
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 #define ZIP_FSEEK_MAX LONG_MAX
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 #define ZIP_FSEEK_MIN LONG_MIN
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
148
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 #ifndef SIZE_MAX
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 #if SIZEOF_SIZE_T == 8
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 #define SIZE_MAX ZIP_INT64_MAX
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 #elif SIZEOF_SIZE_T == 4
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 #define SIZE_MAX ZIP_INT32_MAX
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 #elif SIZEOF_SIZE_T == 2
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 #define SIZE_MAX ZIP_INT16_MAX
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 #else
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 #error unsupported size of size_t
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
160
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 #ifndef PRId64
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 #ifdef _MSC_VER
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 #define PRId64 "I64d"
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 #else
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 #define PRId64 "lld"
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
168
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 #ifndef PRIu64
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 #ifdef _MSC_VER
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 #define PRIu64 "I64u"
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 #else
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 #define PRIu64 "llu"
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
176
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 #ifndef S_ISDIR
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 #define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 #endif
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
180
3b18afe43c9d libzip: reimport version 1.1.3
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 #endif /* compat.h */