errx(1, strerror(EPERM));
errx(1, "%s", strerror(EPERM));
main(argc, argv)	int argc;	char *argv[];{	int ch, i;	char *caldir;	(void)setlocale(LC_ALL, "");	while ((ch = getopt(argc, argv, "-af:t:A:B:")) != -1)		switch (ch) {		case '-':		/* backward contemptible */		case 'a':			if (getuid())				errx(1, strerror(EPERM));			doall = 1;			break;		case 'f': /* other calendar file */		        calendarFile = optarg;			break;		case 't': /* other date, undocumented, for tests */			if ((f_time = Mktime(optarg)) <= 0)				errx(1, "specified date is outside allowed range");			break;		case 'A': /* days after current date */			f_dayAfter = atoi(optarg);			break;		case 'B': /* days before current date */			f_dayBefore = atoi(optarg);			break;		default:			usage();		}	argc -= optind;	argv += optind;	if (argc)		usage();	/* use current time */	if (f_time <= 0)	    (void)time(&f_time);	if (f_dayBefore) {		/* Move back in time and only look forwards */		f_dayAfter += f_dayBefore;		f_time -= SECSPERDAY * f_dayBefore;		f_dayBefore = 0;	}	settime(&f_time);	if (doall) {		while ((pw = getpwent()) != NULL) {			(void)setlocale(LC_ALL, "");			(void)setegid(pw->pw_gid);			(void)initgroups(pw->pw_name, pw->pw_gid);			(void)seteuid(pw->pw_uid);			if (!chdir(pw->pw_dir)) {				cal();				/* Keep user settings from propogating */				for (i = 0; i < NUMEV; i++)					if (spev[i].uname != NULL)						free(spev[i].uname);			}			(void)seteuid(0);		}	}	else if ((caldir = getenv("CALENDAR_DIR")) != NULL) {		if(!chdir(caldir))			cal();	} else		cal();	exit(0);}