Mercurial > embed
annotate libzip/lib/compat.h @ 37:0a1a3239eea5
tests: add json test
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 04 Jan 2017 14:00:35 +0100 |
parents | 3b18afe43c9d |
children | 056ee6b5913e |
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 */ |