Mercurial > octave-libtiff
annotate oct-conf-post-public.in.h @ 31158:f2ae7763739a
Tiff: added writeEncodedTile method to read tiles from image
* __tiff__.cc(F__tiff_read_encoded_tile__): added internal function to process
readEncodedTile arguments.
* __tiff__.cc(read_tile): implemented logic for reading tile from image file.
* __tiff__.cc(handle_read_strip_or_tile): refactores common logic between
read_strip and read_tile into a function.
* Tiff.m: added readEncodedTile method to the Tiff class and added the
necessary unit tests.
author | magedrifaat <magedrifaat@gmail.com> |
---|---|
date | Sat, 06 Aug 2022 21:59:26 +0200 |
parents | 3e395f6fc03a |
children |
rev | line source |
---|---|
30580
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
2 // |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
3 // Copyright (C) 1993-2022 The Octave Project Developers |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
4 // |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
7 // |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
8 // This file is part of Octave. |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
9 // |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
13 // (at your option) any later version. |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
14 // |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
18 // GNU General Public License for more details. |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
19 // |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
23 // |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
25 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
26 #if defined (__cplusplus) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
27 # include <cinttypes> |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
28 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
29 # include <inttypes.h> |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
30 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
31 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
32 # define OCTAVE_NAMESPACE_BEGIN namespace octave { |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
33 # define OCTAVE_NAMESPACE_END } |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
34 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
35 /* The C++ standard is evolving to allow attribute hints in a |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
36 compiler-independent manner. In C++ 2011 support for noreturn was |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
37 added. In C++ 2014 support for deprecated was added. The Octave |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
38 code base has been future-proofed by using macros of the form |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
39 OCTAVE_ATTRIBUTE_NAME in place of vendor specific attribute |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
40 mechanisms. As compilers evolve, the underlying implementation can |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
41 be changed with the macro definitions below. FIXME: Update macros |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
42 to use C++ standard attribute syntax when Octave moves to C++ 2011 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
43 standard. */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
44 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
45 #if defined (__GNUC__) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
46 /* The following attributes are used with gcc and clang compilers. */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
47 # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
48 # define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__ ("[" #ver "]: " msg))) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
49 # else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
50 # define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__)) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
51 # endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
52 # define HAVE_OCTAVE_DEPRECATED_ATTR 1 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
53 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
54 # define OCTAVE_NORETURN __attribute__ ((__noreturn__)) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
55 # define HAVE_OCTAVE_NORETURN_ATTR 1 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
56 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
57 # define OCTAVE_UNUSED __attribute__ ((__unused__)) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
58 # define HAVE_OCTAVE_UNUSED_ATTR 1 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
59 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
60 # define OCTAVE_DEPRECATED(ver, msg) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
61 # define OCTAVE_NORETURN |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
62 # define OCTAVE_UNUSED |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
63 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
64 /* # undef HAVE_OCTAVE_DEPRECATED_ATTR */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
65 /* # undef HAVE_OCTAVE_NORETURN_ATTR */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
66 /* # undef HAVE_OCTAVE_UNUSED_ATTR */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
67 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
68 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
69 #if defined (__MINGW32__) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
70 /* MinGW requires special handling due to different format specifiers |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
71 * on different platforms. The macro __MINGW_PRINTF_FORMAT maps to |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
72 * either gnu_printf or ms_printf depending on where we are compiling |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
73 * to avoid warnings on format specifiers that are legal. |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
74 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331349 */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
75 # if defined (__cplusplus) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
76 # include <cstdio> |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
77 # else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
78 # include <stdio.h> |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
79 # endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
80 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
81 # define OCTAVE_FORMAT_PRINTF(stringIndex, firstToCheck) \ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
82 __attribute__ ((format (__MINGW_PRINTF_FORMAT, stringIndex, firstToCheck))) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
83 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
84 # define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
85 #elif defined (__GNUC__) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
86 /* The following attributes are used with gcc and clang compilers. */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
87 # define OCTAVE_FORMAT_PRINTF(index, first) \ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
88 __attribute__ ((__format__(printf, index, first))) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
89 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
90 # define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
91 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
92 # define OCTAVE_FORMAT_PRINTF(index, first) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
93 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
94 /* # undef HAVE_OCTAVE_FORMAT_PRINTF_ATTR */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
95 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
96 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
97 #if ! defined (OCTAVE_FALLTHROUGH) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
98 # if defined (__cplusplus) && __cplusplus > 201402L |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
99 # define OCTAVE_FALLTHROUGH [[fallthrough]] |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
100 # elif defined (__GNUC__) && __GNUC__ < 7 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
101 # define OCTAVE_FALLTHROUGH ((void) 0) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
102 # else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
103 # define OCTAVE_FALLTHROUGH __attribute__ ((__fallthrough__)) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
104 # endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
105 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
106 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
107 #if defined (__cplusplus) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
108 template <typename T> |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
109 static inline void |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
110 octave_unused_parameter (const T&) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
111 { } |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
112 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
113 # define octave_unused_parameter(param) (void) param; |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
114 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
115 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
116 #if defined (OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
117 # if defined (_WIN32) || defined (__CYGWIN__) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
118 # if defined (__GNUC__) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
119 /* GCC */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
120 # define OCTAVE_EXPORT __attribute__ ((dllexport)) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
121 # define OCTAVE_IMPORT __attribute__ ((dllimport)) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
122 # else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
123 /* MSVC */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
124 # define OCTAVE_EXPORT __declspec(dllexport) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
125 # define OCTAVE_IMPORT __declspec(dllimport) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
126 # endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
127 # else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
128 /* All other platforms. */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
129 # define OCTAVE_EXPORT __attribute__ ((visibility ("default"))) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
130 # define OCTAVE_IMPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
131 # endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
132 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
133 # define OCTAVE_EXPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
134 # define OCTAVE_IMPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
135 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
136 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
137 /* API macro for liboctave */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
138 #if defined (OCTAVE_DLL) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
139 # define OCTAVE_API OCTAVE_EXPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
140 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
141 # define OCTAVE_API OCTAVE_IMPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
142 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
143 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
144 /* API macro for liboctinterp */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
145 #if defined (OCTINTERP_DLL) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
146 # define OCTINTERP_API OCTAVE_EXPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
147 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
148 # define OCTINTERP_API OCTAVE_IMPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
149 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
150 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
151 /* API macro for the Array class in liboctave and liboctinterp */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
152 #if (defined (OCTAVE_DLL) || defined (OCTINTERP_DLL)) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
153 # define OCTARRAY_API OCTAVE_EXPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
154 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
155 # define OCTARRAY_API OCTAVE_IMPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
156 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
157 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
158 /* API macro for libinterp/graphics */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
159 #if defined (OCTGRAPHICS_DLL) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
160 # define OCTGRAPHICS_API OCTAVE_EXPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
161 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
162 # define OCTGRAPHICS_API OCTAVE_IMPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
163 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
164 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
165 /* API macro for libgui */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
166 #if defined (OCTGUI_DLL) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
167 # define OCTGUI_API OCTAVE_EXPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
168 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
169 # define OCTGUI_API OCTAVE_IMPORT |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
170 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
171 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
172 #if defined (OCTAVE_ENABLE_64) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
173 # define OCTAVE_IDX_TYPE_FORMAT PRId64 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
174 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
175 # define OCTAVE_IDX_TYPE_FORMAT PRId32 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
176 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
177 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
178 #if OCTAVE_SIZEOF_F77_INT_TYPE == 8 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
179 # define OCTAVE_F77_INT_TYPE_FORMAT PRId64 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
180 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
181 # define OCTAVE_F77_INT_TYPE_FORMAT PRId32 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
182 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
183 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
184 #define OCTAVE_HAVE_F77_INT_TYPE 1 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
185 |
30827
3e395f6fc03a
maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents:
30580
diff
changeset
|
186 /* time type in API is always 64 bits wide */ |
3e395f6fc03a
maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents:
30580
diff
changeset
|
187 #define OCTAVE_TIME_T int64_t |
3e395f6fc03a
maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents:
30580
diff
changeset
|
188 |
30580
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
189 #if defined (__cplusplus) && ! defined (OCTAVE_THREAD_LOCAL) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
190 # define OCTAVE_THREAD_LOCAL |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
191 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
192 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
193 typedef OCTAVE_IDX_TYPE octave_idx_type; |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
194 typedef OCTAVE_F77_INT_TYPE octave_f77_int_type; |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
195 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
196 /* Backward compatibility */ |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
197 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
198 #if defined (OCTAVE_ENABLE_64) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
199 # define USE_64_BIT_IDX_T 1 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
200 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
201 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
202 #if defined (OCTAVE_ENABLE_OPENMP) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
203 # define HAVE_OPENMP 1 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
204 #endif |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
205 |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
206 #if defined (OCTAVE_ENABLE_FLOAT_TRUNCATE) |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
207 # define OCTAVE_FLOAT_TRUNCATE volatile |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
208 #else |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
209 # define OCTAVE_FLOAT_TRUNCATE |
fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
210 #endif |