fprintf (fp, "E%s\t%s GMT\t%s\t%s\t", file,
fprintf (fp, "E%s\t%s GMT\t%s\t%s\t", finfo->file,
edit_fileproc (file, update_dir, repository, entries, srcfiles)    char *file;    char *update_dir;    char *repository;    List *entries;    List *srcfiles;{    FILE *fp;    time_t now;    char *ascnow;    char *basefilename;    if (noexec)	return 0;    fp = open_file (CVSADM_NOTIFY, "a");    (void) time (&now);    ascnow = asctime (gmtime (&now));    ascnow[24] = '\0';    fprintf (fp, "E%s\t%s GMT\t%s\t%s\t", file,	     ascnow, hostname, CurDir);    if (setting_tedit)	fprintf (fp, "E");    if (setting_tunedit)	fprintf (fp, "U");    if (setting_tcommit)	fprintf (fp, "C");    fprintf (fp, "\n");    if (fclose (fp) < 0)    {	if (update_dir[0] == '\0')	    error (0, errno, "cannot close %s", file);	else	    error (0, errno, "cannot close %s/%s", update_dir, file);    }    xchmod (file, 1);    /* Now stash the file away in CVSADM so that unedit can revert even if       it can't communicate with the server.  We stash away a writable       copy so that if the user removes the working file, then restores it       with "cvs update" (which clears _editors but does not update       CVSADM_BASE), then a future "cvs edit" can still win.  */    /* Could save a system call by only calling mkdir if trying to create       the output file fails.  But copy_file isn't set up to facilitate       that.  */    if (CVS_MKDIR (CVSADM_BASE, 0777) < 0)    {		if (errno != EEXIST#ifdef EACCESS		    /* OS/2; see longer comment in client.c.  */		    && errno != EACCESS#endif		    )	    error (1, errno, "cannot mkdir %s", CVSADM_BASE);    }    basefilename = xmalloc (10 + sizeof CVSADM_BASE + strlen (file));    strcpy (basefilename, CVSADM_BASE);    strcat (basefilename, "/");    strcat (basefilename, file);    copy_file (file, basefilename);    free (basefilename);    return 0;}