Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | extern time_t shell_start_time; | - |
12 | | - |
13 | extern int mailstat (const char *, struct stat *); | - |
14 | | - |
15 | typedef struct _fileinfo { | - |
16 | char *name; | - |
17 | char *msg; | - |
18 | time_t access_time; | - |
19 | time_t mod_time; | - |
20 | off_t file_size; | - |
21 | int flags; | - |
22 | } FILEINFO; | - |
23 | | - |
24 | | - |
25 | static FILEINFO **mailfiles = (FILEINFO **) | - |
26 | ((void *)0) | - |
27 | ; | - |
28 | | - |
29 | | - |
30 | static int mailfiles_count; | - |
31 | | - |
32 | | - |
33 | static time_t last_time_mail_checked = 0; | - |
34 | | - |
35 | | - |
36 | int mail_warning; | - |
37 | | - |
38 | static int find_mail_file (char *); | - |
39 | static void init_mail_file (int); | - |
40 | static void update_mail_file (int); | - |
41 | static int add_mail_file (char *, char *); | - |
42 | | - |
43 | static FILEINFO *alloc_mail_file (char *, char *); | - |
44 | static void dispose_mail_file (FILEINFO *); | - |
45 | | - |
46 | static int file_mod_date_changed (int); | - |
47 | static int file_access_date_changed (int); | - |
48 | static int file_has_grown (int); | - |
49 | | - |
50 | static char *parse_mailpath_spec (char *); | - |
51 | | - |
52 | | - |
53 | int | - |
54 | time_to_check_mail () | - |
55 | { | - |
56 | char *temp; | - |
57 | time_t now; | - |
58 | intmax_t seconds; | - |
59 | | - |
60 | temp = get_string_value ("MAILCHECK"); | - |
61 | | - |
62 | | - |
63 | | - |
64 | if (temp == 0TRUE | never evaluated | FALSE | never evaluated |
|| legal_number (temp, &seconds) == 0TRUE | never evaluated | FALSE | never evaluated |
|| seconds < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
65 | return never executed: return (0); (0);never executed: return (0); | 0 |
66 | | - |
67 | now = ((time_t) time ((time_t *) 0)); | - |
68 | | - |
69 | | - |
70 | return never executed: return (seconds == 0 || ((now - last_time_mail_checked) >= seconds)); (seconds == 0 || ((now - last_time_mail_checked) >= seconds));never executed: return (seconds == 0 || ((now - last_time_mail_checked) >= seconds)); | 0 |
71 | } | - |
72 | | - |
73 | | - |
74 | | - |
75 | void | - |
76 | reset_mail_timer () | - |
77 | { | - |
78 | last_time_mail_checked = ((time_t) time ((time_t *) 0)); | - |
79 | }executed 1 time by 1 test: end of block | 1 |
80 | | - |
81 | | - |
82 | | - |
83 | static int | - |
84 | find_mail_file (file) | - |
85 | char *file; | - |
86 | { | - |
87 | register int i; | - |
88 | | - |
89 | for (i = 0; i < mailfiles_countTRUE | never evaluated | FALSE | evaluated 1 time by 1 test |
; i++) | 0-1 |
90 | if (((TRUE | never evaluated | FALSE | never evaluated |
mailfiles[i]->name)[0] == (file)[0]TRUE | never evaluated | FALSE | never evaluated |
&& | 0 |
91 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
92 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
93 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
94 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
95 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
96 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
97 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
98 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
99 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
100 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
101 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
102 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
103 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
104 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
105 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
106 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
107 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
108 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
109 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
110 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
111 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
112 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
113 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
114 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
115 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
116 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
117 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
118 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
119 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
120 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
121 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
122 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
123 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
124 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
125 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
126 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
127 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
128 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
129 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
130 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
131 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
132 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
133 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
134 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
135 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
136 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
137 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( mailfiles[i]->name ))[3] - __s2[3]); | 0 |
138 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( mailfiles[i]->name ))[3] - __s2[3]); | 0 |
139 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
140 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
141 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
142 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
143 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
144 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
145 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
146 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
147 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
148 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
149 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
150 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
151 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
152 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
153 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
154 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
155 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
156 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
157 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
158 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
159 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
160 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
161 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
162 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
163 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
164 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
165 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( file ))[3] - __s2[3]); | 0 |
166 | fileTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( file ))[3] - __s2[3]); | 0 |
167 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
168 | mailfiles[i]->nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
169 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
170 | fileTRUE | never evaluated | FALSE | never evaluated |
| 0 |
171 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
172 | == 0TRUE | never evaluated | FALSE | never evaluated |
)) | 0 |
173 | return never executed: return i; i;never executed: return i; | 0 |
174 | | - |
175 | returnexecuted 1 time by 1 test: return -1; -1;executed 1 time by 1 test: return -1; | 1 |
176 | } | - |
177 | static void | - |
178 | init_mail_file (i) | - |
179 | int i; | - |
180 | { | - |
181 | mailfiles[i]->access_time = mailfiles[i]->mod_time = last_time_mail_checkedTRUE | evaluated 1 time by 1 test | FALSE | never evaluated |
? last_time_mail_checked : shell_start_time; | 0-1 |
182 | mailfiles[i]->file_size = 0; | - |
183 | mailfiles[i]->flags = 0; | - |
184 | }executed 1 time by 1 test: end of block | 1 |
185 | | - |
186 | static void | - |
187 | update_mail_file (i) | - |
188 | int i; | - |
189 | { | - |
190 | char *file; | - |
191 | struct stat finfo; | - |
192 | | - |
193 | file = mailfiles[i]->name; | - |
194 | if (mailstat (file, &finfo) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
195 | do { mailfiles[i]->access_time = finfo. | - |
196 | st_atim.tv_sec | - |
197 | ; mailfiles[i]->mod_time = finfo. | - |
198 | st_mtim.tv_sec | - |
199 | ; mailfiles[i]->file_size = finfo.st_size; mailfiles[i]->flags |= 0x01; } never executed: end of block while (0); | 0 |
200 | else | - |
201 | do { mailfiles[i]->access_time = mailfiles[i]->mod_time = 0; mailfiles[i]->file_size = 0; mailfiles[i]->flags = 0; } never executed: end of block while (0); | 0 |
202 | } | - |
203 | | - |
204 | | - |
205 | | - |
206 | static int | - |
207 | add_mail_file (file, msg) | - |
208 | char *file, *msg; | - |
209 | { | - |
210 | struct stat finfo; | - |
211 | char *filename; | - |
212 | int i; | - |
213 | | - |
214 | filename = full_pathname (file); | - |
215 | i = find_mail_file (filename); | - |
216 | if (i >= 0TRUE | never evaluated | FALSE | evaluated 1 time by 1 test |
) | 0-1 |
217 | { | - |
218 | if (mailstat (filename, &finfo) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
219 | do { mailfiles[i]->access_time = finfo. | - |
220 | st_atim.tv_sec | - |
221 | ; mailfiles[i]->mod_time = finfo. | - |
222 | st_mtim.tv_sec | - |
223 | ; mailfiles[i]->file_size = finfo.st_size; mailfiles[i]->flags |= 0x01; } never executed: end of block while (0); | 0 |
224 | | - |
225 | sh_xfree((filename), "mailcheck.c", 186); | - |
226 | return never executed: return i; i;never executed: return i; | 0 |
227 | } | - |
228 | | - |
229 | i = mailfiles_count++; | - |
230 | mailfiles = (FILEINFO **)sh_xrealloc((mailfiles), (mailfiles_count * sizeof (FILEINFO *)), | - |
231 | "mailcheck.c" | - |
232 | , | - |
233 | 192 | - |
234 | ) | - |
235 | ; | - |
236 | | - |
237 | mailfiles[i] = alloc_mail_file (filename, msg); | - |
238 | init_mail_file (i); | - |
239 | | - |
240 | returnexecuted 1 time by 1 test: return i; i;executed 1 time by 1 test: return i; | 1 |
241 | } | - |
242 | | - |
243 | | - |
244 | void | - |
245 | reset_mail_files () | - |
246 | { | - |
247 | register int i; | - |
248 | | - |
249 | for (i = 0; i < mailfiles_countTRUE | never evaluated | FALSE | never evaluated |
; i++) | 0 |
250 | do { mailfiles[i]->access_time = mailfiles[i]->mod_time = 0; mailfiles[i]->file_size = 0; mailfiles[i]->flags = 0; } never executed: end of block while (0); | 0 |
251 | } never executed: end of block | 0 |
252 | | - |
253 | static FILEINFO * | - |
254 | alloc_mail_file (filename, msg) | - |
255 | char *filename, *msg; | - |
256 | { | - |
257 | FILEINFO *mf; | - |
258 | | - |
259 | mf = (FILEINFO *)sh_xmalloc((sizeof (FILEINFO)), "mailcheck.c", 216); | - |
260 | mf->name = filename; | - |
261 | mf->msg = msgTRUE | never evaluated | FALSE | evaluated 1 time by 1 test |
? (char *)strcpy (sh_xmalloc((1 + strlen (msg)), "mailcheck.c", 218), (msg)) : (char *) | 0-1 |
262 | ((void *)0) | - |
263 | ; | - |
264 | mf->flags = 0; | - |
265 | | - |
266 | returnexecuted 1 time by 1 test: return mf; mf;executed 1 time by 1 test: return mf; | 1 |
267 | } | - |
268 | | - |
269 | static void | - |
270 | dispose_mail_file (mf) | - |
271 | FILEINFO *mf; | - |
272 | { | - |
273 | sh_xfree((mf->name), "mailcheck.c", 228); | - |
274 | do { if (mf->msgTRUE | never evaluated | FALSE | never evaluated |
) sh_xfree((mf->msg), "mailcheck.c", 229);never executed: sh_xfree((mf->msg), "mailcheck.c", 229); } while (0); | 0 |
275 | sh_xfree((mf), "mailcheck.c", 230); | - |
276 | } never executed: end of block | 0 |
277 | | - |
278 | | - |
279 | void | - |
280 | free_mail_files () | - |
281 | { | - |
282 | register int i; | - |
283 | | - |
284 | for (i = 0; i < mailfiles_countTRUE | never evaluated | FALSE | never evaluated |
; i++) | 0 |
285 | dispose_mail_file (mailfiles[i]); never executed: dispose_mail_file (mailfiles[i]); | 0 |
286 | | - |
287 | if (mailfilesTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
288 | sh_xfree((mailfiles), "mailcheck.c", 243); never executed: sh_xfree((mailfiles), "mailcheck.c", 243); | 0 |
289 | | - |
290 | mailfiles_count = 0; | - |
291 | mailfiles = (FILEINFO **) | - |
292 | ((void *)0) | - |
293 | ; | - |
294 | } never executed: end of block | 0 |
295 | | - |
296 | void | - |
297 | init_mail_dates () | - |
298 | { | - |
299 | if (mailfiles == 0TRUE | evaluated 1 time by 1 test | FALSE | never evaluated |
) | 0-1 |
300 | remember_mail_dates ();executed 1 time by 1 test: remember_mail_dates (); | 1 |
301 | }executed 1 time by 1 test: end of block | 1 |
302 | | - |
303 | | - |
304 | | - |
305 | | - |
306 | static int | - |
307 | file_mod_date_changed (i) | - |
308 | int i; | - |
309 | { | - |
310 | time_t mtime; | - |
311 | struct stat finfo; | - |
312 | char *file; | - |
313 | | - |
314 | file = mailfiles[i]->name; | - |
315 | mtime = mailfiles[i]->mod_time; | - |
316 | | - |
317 | if (mailstat (file, &finfo) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
318 | return never executed: return (0); (0);never executed: return (0); | 0 |
319 | | - |
320 | if (finfo.st_size > 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
321 | return never executed: return (mtime < finfo. st_mtim.tv_sec ); (mtime < finfo.never executed: return (mtime < finfo. st_mtim.tv_sec ); | 0 |
322 | st_mtim.tv_sec never executed: return (mtime < finfo. st_mtim.tv_sec ); | 0 |
323 | ); never executed: return (mtime < finfo. st_mtim.tv_sec ); | 0 |
324 | | - |
325 | if (finfo.st_size == 0TRUE | never evaluated | FALSE | never evaluated |
&& mailfiles[i]->file_size > 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
326 | do { mailfiles[i]->access_time = finfo. | - |
327 | st_atim.tv_sec | - |
328 | ; mailfiles[i]->mod_time = finfo. | - |
329 | st_mtim.tv_sec | - |
330 | ; mailfiles[i]->file_size = finfo.st_size; mailfiles[i]->flags |= 0x01; } never executed: end of block while (0); | 0 |
331 | | - |
332 | return never executed: return (0); (0);never executed: return (0); | 0 |
333 | } | - |
334 | | - |
335 | | - |
336 | static int | - |
337 | file_access_date_changed (i) | - |
338 | int i; | - |
339 | { | - |
340 | time_t atime; | - |
341 | struct stat finfo; | - |
342 | char *file; | - |
343 | | - |
344 | file = mailfiles[i]->name; | - |
345 | atime = mailfiles[i]->access_time; | - |
346 | | - |
347 | if (mailstat (file, &finfo) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
348 | return never executed: return (0); (0);never executed: return (0); | 0 |
349 | | - |
350 | if (finfo.st_size > 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
351 | return never executed: return (atime < finfo. st_atim.tv_sec ); (atime < finfo.never executed: return (atime < finfo. st_atim.tv_sec ); | 0 |
352 | st_atim.tv_sec never executed: return (atime < finfo. st_atim.tv_sec ); | 0 |
353 | ); never executed: return (atime < finfo. st_atim.tv_sec ); | 0 |
354 | | - |
355 | return never executed: return (0); (0);never executed: return (0); | 0 |
356 | } | - |
357 | | - |
358 | | - |
359 | static int | - |
360 | file_has_grown (i) | - |
361 | int i; | - |
362 | { | - |
363 | off_t size; | - |
364 | struct stat finfo; | - |
365 | char *file; | - |
366 | | - |
367 | file = mailfiles[i]->name; | - |
368 | size = mailfiles[i]->file_size; | - |
369 | | - |
370 | return never executed: return ((mailstat (file, &finfo) == 0) && (finfo.st_size > size)); ((mailstat (file, &finfo) == 0) && (finfo.st_size > size));never executed: return ((mailstat (file, &finfo) == 0) && (finfo.st_size > size)); | 0 |
371 | } | - |
372 | | - |
373 | | - |
374 | | - |
375 | | - |
376 | static char * | - |
377 | parse_mailpath_spec (str) | - |
378 | char *str; | - |
379 | { | - |
380 | char *s; | - |
381 | int pass_next; | - |
382 | | - |
383 | for (s = str, pass_next = 0; sTRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
sTRUE | never evaluated | FALSE | never evaluated |
; s++) | 0 |
384 | { | - |
385 | if (pass_nextTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
386 | { | - |
387 | pass_next = 0; | - |
388 | continue; never executed: continue; | 0 |
389 | } | - |
390 | if (*TRUE | never evaluated | FALSE | never evaluated |
s == '\\'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
391 | { | - |
392 | pass_next++; | - |
393 | continue; never executed: continue; | 0 |
394 | } | - |
395 | if (*TRUE | never evaluated | FALSE | never evaluated |
s == '?'TRUE | never evaluated | FALSE | never evaluated |
|| *TRUE | never evaluated | FALSE | never evaluated |
s == '%'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
396 | return never executed: return s; s;never executed: return s; | 0 |
397 | } never executed: end of block | 0 |
398 | return never executed: return ((char *) ((void *)0) ); ((char *)never executed: return ((char *) ((void *)0) ); | 0 |
399 | ((void *)0) never executed: return ((char *) ((void *)0) ); | 0 |
400 | ); never executed: return ((char *) ((void *)0) ); | 0 |
401 | } | - |
402 | | - |
403 | char * | - |
404 | make_default_mailpath () | - |
405 | { | - |
406 | | - |
407 | char *mp; | - |
408 | | - |
409 | get_current_user_info (); | - |
410 | mp = (char *)sh_xmalloc((2 + sizeof ("/var/mail") + strlen (current_user.user_name)), "mailcheck.c", 353); | - |
411 | strcpy (mp, "/var/mail"); | - |
412 | mp[sizeof("/var/mail") - 1] = '/'; | - |
413 | strcpy (mp + sizeof ("/var/mail"), current_user.user_name); | - |
414 | return never executed: return (mp); (mp);never executed: return (mp); | 0 |
415 | | - |
416 | | - |
417 | | - |
418 | } | - |
419 | | - |
420 | | - |
421 | | - |
422 | | - |
423 | | - |
424 | void | - |
425 | remember_mail_dates () | - |
426 | { | - |
427 | char *mailpaths; | - |
428 | char *mailfile, *mp; | - |
429 | int i = 0; | - |
430 | | - |
431 | mailpaths = get_string_value ("MAILPATH"); | - |
432 | | - |
433 | | - |
434 | if (mailpaths == 0TRUE | evaluated 1 time by 1 test | FALSE | never evaluated |
&& (TRUE | evaluated 1 time by 1 test | FALSE | never evaluated |
mailpaths = get_string_value ("MAIL"))TRUE | evaluated 1 time by 1 test | FALSE | never evaluated |
) | 0-1 |
435 | { | - |
436 | add_mail_file (mailpaths, (char *) | - |
437 | ((void *)0) | - |
438 | ); | - |
439 | return;executed 1 time by 1 test: return; | 1 |
440 | } | - |
441 | | - |
442 | if (mailpaths == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
443 | { | - |
444 | mailpaths = make_default_mailpath (); | - |
445 | if (mailpathsTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
446 | { | - |
447 | add_mail_file (mailpaths, (char *) | - |
448 | ((void *)0) | - |
449 | ); | - |
450 | sh_xfree((mailpaths), "mailcheck.c", 389); | - |
451 | } never executed: end of block | 0 |
452 | return; never executed: return; | 0 |
453 | } | - |
454 | | - |
455 | while (mailfile = extract_colon_unit (mailpaths, &i)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
456 | { | - |
457 | mp = parse_mailpath_spec (mailfile); | - |
458 | if (mpTRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
mpTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
459 | * never executed: *mp++ = '\0'; mp++ = '\0';never executed: *mp++ = '\0'; | 0 |
460 | add_mail_file (mailfile, mp); | - |
461 | sh_xfree((mailfile), "mailcheck.c", 400); | - |
462 | } never executed: end of block | 0 |
463 | } never executed: end of block | 0 |
464 | void | - |
465 | check_mail () | - |
466 | { | - |
467 | char *current_mail_file, *message; | - |
468 | int i, use_user_notification; | - |
469 | char *dollar_underscore, *temp; | - |
470 | | - |
471 | dollar_underscore = get_string_value ("_"); | - |
472 | if (dollar_underscoreTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
473 | dollar_underscore = (char *)strcpy (sh_xmalloc((1 + strlen (dollar_underscore)), "mailcheck.c", 425), (dollar_underscore)); never executed: dollar_underscore = (char *)strcpy (sh_xmalloc((1 + strlen (dollar_underscore)), "mailcheck.c", 425), (dollar_underscore)); | 0 |
474 | | - |
475 | for (i = 0; i < mailfiles_countTRUE | never evaluated | FALSE | never evaluated |
; i++) | 0 |
476 | { | - |
477 | current_mail_file = mailfiles[i]->name; | - |
478 | | - |
479 | if (*TRUE | never evaluated | FALSE | never evaluated |
current_mail_file == '\0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
480 | continue; never executed: continue; | 0 |
481 | | - |
482 | if (file_mod_date_changed (i)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
483 | { | - |
484 | int file_is_bigger; | - |
485 | | - |
486 | use_user_notification = mailfiles[i]->msg != (char *) | - |
487 | ((void *)0) | - |
488 | ; | - |
489 | message = mailfiles[i]->msgTRUE | never evaluated | FALSE | never evaluated |
? mailfiles[i]->msg : | 0 |
490 | dcgettext (((void *)0), | - |
491 | "You have mail in $_" | - |
492 | , 5) | - |
493 | ; | - |
494 | | - |
495 | bind_variable ("_", current_mail_file, 0); | - |
496 | | - |
497 | | - |
498 | | - |
499 | | - |
500 | | - |
501 | | - |
502 | file_is_bigger = file_has_grown (i); | - |
503 | | - |
504 | update_mail_file (i); | - |
505 | | - |
506 | | - |
507 | | - |
508 | | - |
509 | | - |
510 | | - |
511 | | - |
512 | if ((TRUE | never evaluated | FALSE | never evaluated |
mailfiles[i]->access_time >= mailfiles[i]->mod_time)TRUE | never evaluated | FALSE | never evaluated |
&& !file_is_biggerTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
513 | continue; never executed: continue; | 0 |
514 | | - |
515 | | - |
516 | | - |
517 | if (use_user_notification == 0TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
mailfiles[i]->access_time < mailfiles[i]->mod_time)TRUE | never evaluated | FALSE | never evaluated |
&& file_is_biggerTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
518 | message = never executed: message = dcgettext (((void *)0), "You have new mail in $_" , 5) ; | 0 |
519 | dcgettext (((void *)0), never executed: message = dcgettext (((void *)0), "You have new mail in $_" , 5) ; | 0 |
520 | "You have new mail in $_" never executed: message = dcgettext (((void *)0), "You have new mail in $_" , 5) ; | 0 |
521 | , 5) never executed: message = dcgettext (((void *)0), "You have new mail in $_" , 5) ; | 0 |
522 | ; never executed: message = dcgettext (((void *)0), "You have new mail in $_" , 5) ; | 0 |
523 | | - |
524 | | - |
525 | | - |
526 | if (temp = expand_string_to_string (message, 0x001)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
527 | { | - |
528 | puts (temp); | - |
529 | sh_xfree((temp), "mailcheck.c", 471); | - |
530 | } never executed: end of block | 0 |
531 | else | - |
532 | putchar ('\n'); never executed: putchar ('\n'); | 0 |
533 | } | - |
534 | | - |
535 | if (mail_warningTRUE | never evaluated | FALSE | never evaluated |
&& file_access_date_changed (i)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
536 | { | - |
537 | update_mail_file (i); | - |
538 | printf ( | - |
539 | dcgettext (((void *)0), | - |
540 | "The mail in %s has been read\n" | - |
541 | , 5) | - |
542 | , current_mail_file); | - |
543 | } never executed: end of block | 0 |
544 | } never executed: end of block | 0 |
545 | | - |
546 | if (dollar_underscoreTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
547 | { | - |
548 | bind_variable ("_", dollar_underscore, 0); | - |
549 | sh_xfree((dollar_underscore), "mailcheck.c", 487); | - |
550 | } never executed: end of block | 0 |
551 | else | - |
552 | unbind_variable ("_"); never executed: unbind_variable ("_"); | 0 |
553 | } | - |
| | |