File Coverage

ext/I18N-Langinfo/const-c.inc
Criterion Covered Total %
statement 10 12 83.3
branch n/a
condition n/a
subroutine n/a
total 10 12 83.3


line stmt bran cond sub time code
1           #define PERL_constant_NOTFOUND 1
2           #define PERL_constant_NOTDEF 2
3           #define PERL_constant_ISIV 3
4           #define PERL_constant_ISNO 4
5           #define PERL_constant_ISNV 5
6           #define PERL_constant_ISPV 6
7           #define PERL_constant_ISPVN 7
8           #define PERL_constant_ISSV 8
9           #define PERL_constant_ISUNDEF 9
10           #define PERL_constant_ISUV 10
11           #define PERL_constant_ISYES 11
12            
13           #ifndef NVTYPE
14           typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */
15           #endif
16           #ifndef aTHX_
17           #define aTHX_ /* 5.6 or later define this for threading support. */
18           #endif
19           #ifndef pTHX_
20           #define pTHX_ /* 5.6 or later define this for threading support. */
21           #endif
22            
23           /* This allows slightly more efficient code on !USE_ITHREADS: */
24           #ifdef USE_ITHREADS
25           # define COP_FILE(c) CopFILE(c)
26           # define COP_FILE_F "s"
27           #else
28           # define COP_FILE(c) CopFILESV(c)
29           # define COP_FILE_F SVf
30           #endif
31            
32           static void
33 228         constant_add_symbol(pTHX_ HV *hash, const char *name, I32 namelen, SV *value) {
34 228         HE *he = (HE*) hv_common_key_len(hash, name, namelen, HV_FETCH_LVALUE, NULL,
35           0);
36           SV *sv;
37            
38 228         if (!he) {
39 0         Perl_croak(aTHX_ "Couldn't add key '%s' to %%I18N::Langinfo::",
40           name);
41           }
42 228         sv = HeVAL(he);
43 456         if (SvOK(sv) || SvTYPE(sv) == SVt_PVGV) {
44           /* Someone has been here before us - have to make a real sub. */
45 0         newCONSTSUB(hash, name, value);
46           } else {
47 456         SvUPGRADE(sv, SVt_RV);
48 228         SvRV_set(sv, value);
49 228         SvROK_on(sv);
50 228         SvREADONLY_on(value);
51           }
52 228         }
53            
54            
55            
56           #ifndef SYMBIAN
57            
58           /* Store a hash of all symbols missing from the package. To avoid trampling on
59           the package namespace (uninvited) put each package's hash in our namespace.
60           To avoid creating lots of typeblogs and symbol tables for sub-packages, put
61           each package's hash into one hash in our namespace. */
62            
63           static HV *
64           get_missing_hash(pTHX) {
65           HV *const parent
66           = get_hv("ExtUtils::Constant::ProxySubs::Missing", GVf_MULTI);
67           /* We could make a hash of hashes directly, but this would confuse anything
68           at Perl space that looks at us, and as we're visible in Perl space,
69           best to play nice. */
70           SV *const *const ref
71           = hv_fetch(parent, "I18N::Langinfo", 14, TRUE);
72           HV *new_hv;
73            
74           if (!ref)
75           return NULL;
76            
77           if (SvROK(*ref))
78           return (HV*) SvRV(*ref);
79            
80           new_hv = newHV();
81           SvUPGRADE(*ref, SVt_RV);
82           SvRV_set(*ref, (SV *)new_hv);
83           SvROK_on(*ref);
84           return new_hv;
85           }
86            
87           #endif
88            
89           struct notfound_s {const char *name; I32 namelen;} ;
90            
91           static const struct notfound_s values_for_notfound[] =
92           {
93           #ifndef CODESET
94           { "CODESET", 7 },
95           #endif
96           #if defined(ABDAY_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
97           #else
98           { "ABDAY_1", 7 },
99           #endif
100           #if defined(ABDAY_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
101           #else
102           { "ABDAY_2", 7 },
103           #endif
104           #if defined(ABDAY_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
105           #else
106           { "ABDAY_3", 7 },
107           #endif
108           #if defined(ABDAY_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
109           #else
110           { "ABDAY_4", 7 },
111           #endif
112           #if defined(ABDAY_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
113           #else
114           { "ABDAY_5", 7 },
115           #endif
116           #if defined(ABDAY_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
117           #else
118           { "ABDAY_6", 7 },
119           #endif
120           #if defined(ABDAY_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
121           #else
122           { "ABDAY_7", 7 },
123           #endif
124           #if defined(ABMON_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
125           #else
126           { "ABMON_1", 7 },
127           #endif
128           #if defined(ABMON_10) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
129           #else
130           { "ABMON_10", 8 },
131           #endif
132           #if defined(ABMON_11) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
133           #else
134           { "ABMON_11", 8 },
135           #endif
136           #if defined(ABMON_12) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
137           #else
138           { "ABMON_12", 8 },
139           #endif
140           #if defined(ABMON_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
141           #else
142           { "ABMON_2", 7 },
143           #endif
144           #if defined(ABMON_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
145           #else
146           { "ABMON_3", 7 },
147           #endif
148           #if defined(ABMON_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
149           #else
150           { "ABMON_4", 7 },
151           #endif
152           #if defined(ABMON_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
153           #else
154           { "ABMON_5", 7 },
155           #endif
156           #if defined(ABMON_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
157           #else
158           { "ABMON_6", 7 },
159           #endif
160           #if defined(ABMON_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
161           #else
162           { "ABMON_7", 7 },
163           #endif
164           #if defined(ABMON_8) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
165           #else
166           { "ABMON_8", 7 },
167           #endif
168           #if defined(ABMON_9) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
169           #else
170           { "ABMON_9", 7 },
171           #endif
172           #if defined(ALT_DIGITS) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
173           #else
174           { "ALT_DIGITS", 10 },
175           #endif
176           #if defined(AM_STR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
177           #else
178           { "AM_STR", 6 },
179           #endif
180           #if defined(DAY_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
181           #else
182           { "DAY_1", 5 },
183           #endif
184           #if defined(DAY_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
185           #else
186           { "DAY_2", 5 },
187           #endif
188           #if defined(DAY_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
189           #else
190           { "DAY_3", 5 },
191           #endif
192           #if defined(DAY_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
193           #else
194           { "DAY_4", 5 },
195           #endif
196           #if defined(DAY_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
197           #else
198           { "DAY_5", 5 },
199           #endif
200           #if defined(DAY_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
201           #else
202           { "DAY_6", 5 },
203           #endif
204           #if defined(DAY_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
205           #else
206           { "DAY_7", 5 },
207           #endif
208           #if defined(D_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
209           #else
210           { "D_FMT", 5 },
211           #endif
212           #if defined(D_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
213           #else
214           { "D_T_FMT", 7 },
215           #endif
216           #if defined(ERA) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
217           #else
218           { "ERA", 3 },
219           #endif
220           #if defined(ERA_D_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
221           #else
222           { "ERA_D_FMT", 9 },
223           #endif
224           #if defined(ERA_D_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
225           #else
226           { "ERA_D_T_FMT", 11 },
227           #endif
228           #if defined(ERA_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
229           #else
230           { "ERA_T_FMT", 9 },
231           #endif
232           #if defined(MON_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
233           #else
234           { "MON_1", 5 },
235           #endif
236           #if defined(MON_10) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
237           #else
238           { "MON_10", 6 },
239           #endif
240           #if defined(MON_11) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
241           #else
242           { "MON_11", 6 },
243           #endif
244           #if defined(MON_12) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
245           #else
246           { "MON_12", 6 },
247           #endif
248           #if defined(MON_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
249           #else
250           { "MON_2", 5 },
251           #endif
252           #if defined(MON_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
253           #else
254           { "MON_3", 5 },
255           #endif
256           #if defined(MON_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
257           #else
258           { "MON_4", 5 },
259           #endif
260           #if defined(MON_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
261           #else
262           { "MON_5", 5 },
263           #endif
264           #if defined(MON_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
265           #else
266           { "MON_6", 5 },
267           #endif
268           #if defined(MON_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
269           #else
270           { "MON_7", 5 },
271           #endif
272           #if defined(MON_8) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
273           #else
274           { "MON_8", 5 },
275           #endif
276           #if defined(MON_9) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
277           #else
278           { "MON_9", 5 },
279           #endif
280           #if defined(NOEXPR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
281           #else
282           { "NOEXPR", 6 },
283           #endif
284           #if defined(NOSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
285           #else
286           { "NOSTR", 5 },
287           #endif
288           #if defined(PM_STR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
289           #else
290           { "PM_STR", 6 },
291           #endif
292           #if defined(T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
293           #else
294           { "T_FMT", 5 },
295           #endif
296           #if defined(T_FMT_AMPM) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
297           #else
298           { "T_FMT_AMPM", 10 },
299           #endif
300           #if defined(YESEXPR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
301           #else
302           { "YESEXPR", 7 },
303           #endif
304           #if defined(YESSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
305           #else
306           { "YESSTR", 6 },
307           #endif
308           #if defined(CRNCYSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))
309           #else
310           { "CRNCYSTR", 8 },
311           #endif
312           #if defined(THOUSEP) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))
313           #else
314           { "THOUSEP", 7 },
315           #endif
316           #if defined(RADIXCHAR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))
317           #else
318           { "RADIXCHAR", 9 },
319           #endif
320           { NULL, 0 } };
321           struct iv_s {const char *name; I32 namelen; IV value;};