239 |
} |
} |
240 |
|
|
241 |
int |
int |
242 |
mh_getyn (const char *fmt, ...) |
mh_interactive_mode_p () |
243 |
|
{ |
244 |
|
static int interactive = -1; |
245 |
|
|
246 |
|
if (interactive < 0) |
247 |
|
interactive = isatty (fileno (stdin)) ? 1 : 0; |
248 |
|
return interactive; |
249 |
|
} |
250 |
|
|
251 |
|
int |
252 |
|
mh_vgetyn (const char *fmt, va_list ap) |
253 |
{ |
{ |
|
va_list ap; |
|
254 |
char repl[64]; |
char repl[64]; |
255 |
|
|
|
va_start (ap, fmt); |
|
256 |
while (1) |
while (1) |
257 |
{ |
{ |
258 |
char *p; |
char *p; |
285 |
return 0; /* to pacify gcc */ |
return 0; /* to pacify gcc */ |
286 |
} |
} |
287 |
|
|
288 |
|
int |
289 |
|
mh_getyn (const char *fmt, ...) |
290 |
|
{ |
291 |
|
va_list ap; |
292 |
|
char repl[64]; |
293 |
|
int rc; |
294 |
|
|
295 |
|
if (mh_interactive_mode_p ()) |
296 |
|
return 1; |
297 |
|
va_start (ap, fmt); |
298 |
|
rc = mh_vgetyn (fmt, ap); |
299 |
|
va_end (ap); |
300 |
|
return rc; |
301 |
|
} |
302 |
|
|
303 |
|
int |
304 |
|
mh_getyn_interactive (const char *fmt, ...) |
305 |
|
{ |
306 |
|
va_list ap; |
307 |
|
char repl[64]; |
308 |
|
int rc; |
309 |
|
|
310 |
|
va_start (ap, fmt); |
311 |
|
rc = mh_vgetyn (fmt, ap); |
312 |
|
va_end (ap); |
313 |
|
return rc; |
314 |
|
} |
315 |
|
|
316 |
FILE * |
FILE * |
317 |
mh_audit_open (char *name, mailbox_t mbox) |
mh_audit_open (char *name, mailbox_t mbox) |
318 |
{ |
{ |