=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/calendar/io.c,v retrieving revision 1.19 retrieving revision 1.20 diff -c -r1.19 -r1.20 *** src/usr.bin/calendar/io.c 2001/11/19 19:02:13 1.19 --- src/usr.bin/calendar/io.c 2002/10/16 00:30:58 1.20 *************** *** 1,4 **** ! /* $OpenBSD: io.c,v 1.19 2001/11/19 19:02:13 mpech Exp $ */ /* * Copyright (c) 1989, 1993, 1994 --- 1,4 ---- ! /* $OpenBSD: io.c,v 1.20 2002/10/16 00:30:58 vincent Exp $ */ /* * Copyright (c) 1989, 1993, 1994 *************** *** 43,49 **** #if 0 static const char sccsid[] = "@(#)calendar.c 8.3 (Berkeley) 3/25/94"; #else ! static char rcsid[] = "$OpenBSD: io.c,v 1.19 2001/11/19 19:02:13 mpech Exp $"; #endif #endif /* not lint */ --- 43,49 ---- #if 0 static const char sccsid[] = "@(#)calendar.c 8.3 (Berkeley) 3/25/94"; #else ! static char rcsid[] = "$OpenBSD: io.c,v 1.20 2002/10/16 00:30:58 vincent Exp $"; #endif #endif /* not lint */ *************** *** 82,88 **** void ! cal() { int printing; char *p; --- 82,88 ---- void ! cal(void) { int printing; char *p; *************** *** 315,327 **** FILE * ! opencal() { ! int pdes[2]; ! int fdin; /* open up calendar file as stdin */ ! if ((fdin = open(calendarFile, O_RDONLY)) == -1) { if (!doall) { char *home = getenv("HOME"); if (home == NULL || *home == '\0') --- 315,328 ---- FILE * ! opencal(void) { ! int pdes[2], fdin; ! struct stat st; /* open up calendar file as stdin */ ! if ((fdin = open(calendarFile, O_RDONLY)) == -1 || ! fstat(fdin, &st) == -1 || !S_ISREG(st.st_mode)) { if (!doall) { char *home = getenv("HOME"); if (home == NULL || *home == '\0') *************** *** 333,338 **** --- 334,340 ---- calendarFile, calendarHome, calendarFile); } } + if (pipe(pdes) < 0) return (NULL); switch (vfork()) { *************** *** 348,354 **** (void)close(pdes[1]); } (void)close(pdes[0]); ! /* Set stderr to /dev/null. Necessary so that cron does not * wait for cpp to finish if it's running calendar -a. */ if (doall) { --- 350,357 ---- (void)close(pdes[1]); } (void)close(pdes[0]); ! /* ! * Set stderr to /dev/null. Necessary so that cron does not * wait for cpp to finish if it's running calendar -a. */ if (doall) {