This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlapi: SvPVbyte_force() and kin: clarify.
[perl5.git] / INTERN.h
1 /*    INTERN.h
2  *
3  *    Copyright (C) 1991, 1992, 1993, 1995, 1996, 1998, 2000, 2001,
4  *    by Larry Wall and others
5  *
6  *    You may distribute under the terms of either the GNU General Public
7  *    License or the Artistic License, as specified in the README file.
8  *
9  */
10
11 /*
12  * EXT  designates a global var which is defined in perl.h
13  * dEXT designates a global var which is defined in another
14  *      file, so we can't count on finding it in perl.h
15  *      (this practice should be avoided).
16  */
17 #undef EXT
18 #undef dEXT
19 #undef EXTCONST
20 #undef dEXTCONST
21
22 #  if (defined(WIN32) && defined(__MINGW32__) && ! defined(PERL_IS_MINIPERL))
23 #    ifdef __cplusplus
24 #      define EXT       __declspec(dllexport)
25 #      define dEXT
26 #      define EXTCONST  __declspec(dllexport) extern const
27 #      define dEXTCONST const
28 #    else
29 #      define EXT       __declspec(dllexport)
30 #      define dEXT
31 #      define EXTCONST  __declspec(dllexport) const
32 #      define dEXTCONST const
33 #    endif
34 #  else
35 #    ifdef __cplusplus
36 #      define EXT
37 #      define dEXT
38 #      define EXTCONST EXTERN_C const
39 #      define dEXTCONST const
40 #    else
41 #      define EXT
42 #      define dEXT
43 #      define EXTCONST const
44 #      define dEXTCONST const
45 #    endif
46 #  endif
47
48 #undef INIT
49 #define INIT(x) = x
50
51 #define DOINIT