err(4, argv[1]);
err(4, "%s", argv[1]);
main(argc, argv)	int	argc;	char	*argv[];{	char	*cp;	char	*ignorename = 0;	int	ed_argc;	char	**ed_argv;		/*return from touchfiles*/	boolean	show_errors = FALSE;	boolean	Show_Errors = FALSE;	boolean	pr_summary = FALSE;	boolean	edit_files = FALSE;	errorfile = stdin;	if (argc > 1) for(; (argc > 1) && (argv[1][0] == '-'); argc--, argv++){		for (cp = argv[1] + 1; *cp; cp++) switch(*cp){		default:			errx(1, "-%c: Unknown flag", *cp);			break;		case 'n':	notouch = TRUE;	break;		case 'q':	query = TRUE;	break;		case 'S':	Show_Errors = TRUE;	break;		case 's':	pr_summary = TRUE;	break;		case 'v':	edit_files = TRUE;	break;		case 'T':	terse = TRUE;	break;		case 't':			*cp-- = 0; argv++; argc--;			if (argc > 1){				suffixlist = argv[1];			}			break;		case 'I':	/*ignore file name*/			*cp-- = 0; argv++; argc--;			if (argc > 1)				ignorename = argv[1];			break;		}	}		if (notouch)		suffixlist = 0;	if (argc > 1){		if (argc > 3)			errx(3, "Only takes 0 or 1 arguments\n");		if ( (errorfile = fopen(argv[1], "r")) == NULL)			err(4, argv[1]);	}	if ( (queryfile = fopen(im_on, "r")) == NULL){		if (query){			errx(9, "Can't open \"%s\" to query the user.", im_on);			exit(9);		}	}	if (signal(SIGINT, onintr) == SIG_IGN)		signal(SIGINT, SIG_IGN);	if (signal(SIGTERM, onintr) == SIG_IGN)		signal(SIGTERM, SIG_IGN);	getignored(ignorename);	eaterrors(&nerrors, &errors);	if (Show_Errors)		printerrors(TRUE, nerrors, errors);	qsort(errors, nerrors, sizeof(Eptr), errorsort);	if (show_errors)		printerrors(FALSE, nerrors, errors);	findfiles(nerrors, errors, &nfiles, &files);#define P(msg, arg) fprintf(stdout, msg, arg)	if (pr_summary){	    if (nunknown)	      P("%d Errors are unclassifiable.\n", nunknown);	    if (nignore)	      P("%d Errors are classifiable, but totally discarded.\n",nignore);	    if (nsyncerrors)	      P("%d Errors are synchronization errors.\n", nsyncerrors);	    if (nignore)	      P("%d Errors are discarded because they refer to sacrosinct files.\n", ndiscard);	    if (nnulled)	      P("%d Errors are nulled because they refer to specific functions.\n", nnulled);	    if (nnonspec)	      P("%d Errors are not specific to any file.\n", nnonspec);	    if (nthisfile)	      P("%d Errors are specific to a given file, but not to a line.\n", nthisfile);	    if (ntrue)	      P("%d Errors are true errors, and can be inserted into the files.\n", ntrue);	}	filenames(nfiles, files);	fflush(stdout);	if (touchfiles(nfiles, files, &ed_argc, &ed_argv) && edit_files)		forkvi(ed_argc, ed_argv);}