fprintf(fp, "%s xterm patch #%d\n", XFREE86_VERSION, XTERM_PATCH);
Trace(char *fmt,...){    static FILE *fp;    static char *trace_out;    va_list ap;    if (fp != 0	&& trace_who != trace_out) {	fclose(fp);	fp = 0;    }    trace_out = trace_who;    if (!fp) {	char name[BUFSIZ];	sprintf(name, "Trace-%s.out", trace_who);	fp = fopen(name, "w");	if (fp != 0) {	    time_t now = time((time_t *) 0);#ifdef HAVE_UNISTD_H	    fprintf(fp, "process %d real (%d/%d) effective (%d/%d) -- %s",		    getpid(),		    getuid(), getgid(),		    geteuid(), getegid(),		    ctime(&now));#else	    fprintf(fp, "process %d -- %s",		    getpid(),		    ctime(&now));#endif	}    }    if (!fp)	abort();    va_start(ap, fmt);    if (fmt != 0) {	vfprintf(fp, fmt, ap);	(void) fflush(fp);    } else {	(void) fclose(fp);	(void) fflush(stdout);	(void) fflush(stderr);    }    va_end(ap);}