File Coverage

const-c.inc
Criterion Covered Total %
statement 11 24 45.8
branch 7 18 38.8
condition n/a
subroutine n/a
pod n/a
total 18 42 42.8


line stmt bran cond sub pod 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             static void
24 528           constant_add_symbol(pTHX_ HV *hash, const char *name, I32 namelen, SV *value) {
25 528           HE *he = (HE*) hv_common_key_len(hash, name, namelen, HV_FETCH_LVALUE, NULL,
26             0);
27             SV *sv;
28              
29 528 50         if (!he) {
30 0           Perl_croak(aTHX_ "Couldn't add key '%s' to %%Sys::Syslog::",
31             name);
32             }
33 528           sv = HeVAL(he);
34 528 100         if (SvOK(sv) || SvTYPE(sv) == SVt_PVGV) {
    50          
    50          
    50          
35             /* Someone has been here before us - have to make a real sub. */
36 44           newCONSTSUB(hash, name, value);
37             } else {
38 484 50         SvUPGRADE(sv, SVt_RV);
39 484           SvRV_set(sv, value);
40 484           SvROK_on(sv);
41 484           SvREADONLY_on(value);
42             }
43 528           }
44              
45              
46              
47             #ifndef SYMBIAN
48              
49             /* Store a hash of all symbols missing from the package. To avoid trampling on
50             the package namespace (uninvited) put each package's hash in our namespace.
51             To avoid creating lots of typeblogs and symbol tables for sub-packages, put
52             each package's hash into one hash in our namespace. */
53              
54             static HV *
55 0           get_missing_hash(pTHX) {
56 0           HV *const parent
57             = get_hv("ExtUtils::Constant::ProxySubs::Missing", GVf_MULTI);
58             /* We could make a hash of hashes directly, but this would confuse anything
59             at Perl space that looks at us, and as we're visible in Perl space,
60             best to play nice. */
61 0           SV *const *const ref
62             = hv_fetch(parent, "Sys::Syslog", 11, TRUE);
63             HV *new_hv;
64              
65 0 0         if (!ref)
66 0           return NULL;
67              
68 0 0         if (SvROK(*ref))
69 0           return (HV*) SvRV(*ref);
70              
71 0           new_hv = newHV();
72 0 0         SvUPGRADE(*ref, SVt_RV);
73 0           SvRV_set(*ref, (SV *)new_hv);
74 0           SvROK_on(*ref);
75 0           return new_hv;
76             }
77              
78             #endif
79              
80             struct notfound_s {const char *name; I32 namelen;} ;
81              
82             static const struct notfound_s values_for_notfound[] =
83             {
84             #ifndef LOG_ALERT
85             { "LOG_ALERT", 9 },
86             #endif
87             #ifndef LOG_CRIT
88             { "LOG_CRIT", 8 },
89             #endif
90             #ifndef LOG_DEBUG
91             { "LOG_DEBUG", 9 },
92             #endif
93             #ifndef LOG_EMERG
94             { "LOG_EMERG", 9 },
95             #endif
96             #ifndef LOG_ERR
97             { "LOG_ERR", 7 },
98             #endif
99             #ifndef LOG_INFO
100             { "LOG_INFO", 8 },
101             #endif
102             #ifndef LOG_NOTICE
103             { "LOG_NOTICE", 10 },
104             #endif
105             #ifndef LOG_WARNING
106             { "LOG_WARNING", 11 },
107             #endif
108             #ifndef LOG_AUTH
109             { "LOG_AUTH", 8 },
110             #endif
111             #ifndef LOG_AUTHPRIV
112             { "LOG_AUTHPRIV", 12 },
113             #endif
114             #ifndef LOG_CRON
115             { "LOG_CRON", 8 },
116             #endif
117             #ifndef LOG_DAEMON
118             { "LOG_DAEMON", 10 },
119             #endif
120             #ifndef LOG_FTP
121             { "LOG_FTP", 7 },
122             #endif
123             #ifndef LOG_KERN
124             { "LOG_KERN", 8 },
125             #endif
126             #ifndef LOG_LOCAL0
127             { "LOG_LOCAL0", 10 },
128             #endif
129             #ifndef LOG_LOCAL1
130             { "LOG_LOCAL1", 10 },
131             #endif
132             #ifndef LOG_LOCAL2
133             { "LOG_LOCAL2", 10 },
134             #endif
135             #ifndef LOG_LOCAL3
136             { "LOG_LOCAL3", 10 },
137             #endif
138             #ifndef LOG_LOCAL4
139             { "LOG_LOCAL4", 10 },
140             #endif
141             #ifndef LOG_LOCAL5
142             { "LOG_LOCAL5", 10 },
143             #endif
144             #ifndef LOG_LOCAL6
145             { "LOG_LOCAL6", 10 },
146             #endif
147             #ifndef LOG_LOCAL7
148             { "LOG_LOCAL7", 10 },
149             #endif
150             #ifndef LOG_LPR
151             { "LOG_LPR", 7 },
152             #endif
153             #ifndef LOG_MAIL
154             { "LOG_MAIL", 8 },
155             #endif
156             #ifndef LOG_NEWS
157             { "LOG_NEWS", 8 },
158             #endif
159             #ifndef LOG_SYSLOG
160             { "LOG_SYSLOG", 10 },
161             #endif
162             #ifndef LOG_USER
163             { "LOG_USER", 8 },
164             #endif
165             #ifndef LOG_UUCP
166             { "LOG_UUCP", 8 },
167             #endif
168             #ifndef LOG_CONS
169             { "LOG_CONS", 8 },
170             #endif
171             #ifndef LOG_PID
172             { "LOG_PID", 7 },
173             #endif
174             #ifndef LOG_NDELAY
175             { "LOG_NDELAY", 10 },
176             #endif
177             #ifndef LOG_NOWAIT
178             { "LOG_NOWAIT", 10 },
179             #endif
180             #ifndef LOG_ODELAY
181             { "LOG_ODELAY", 10 },
182             #endif
183             #ifndef LOG_PERROR
184             { "LOG_PERROR", 10 },
185             #endif
186             #ifndef LOG_FACMASK
187             { "LOG_FACMASK", 11 },
188             #endif
189             { NULL, 0 } };
190             struct iv_s {const char *name; I32 namelen; IV value;};
191             struct pv_s {const char *name; I32 namelen; const char *value;};