=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/file.c,v retrieving revision 1.143 retrieving revision 1.144 diff -c -r1.143 -r1.144 *** src/usr.bin/cvs/file.c 2006/05/28 07:56:44 1.143 --- src/usr.bin/cvs/file.c 2006/05/28 08:49:01 1.144 *************** *** 1,4 **** ! /* $OpenBSD: file.c,v 1.143 2006/05/28 07:56:44 joris Exp $ */ /* * Copyright (c) 2006 Joris Vink * Copyright (c) 2004 Jean-Francois Brousseau --- 1,4 ---- ! /* $OpenBSD: file.c,v 1.144 2006/05/28 08:49:01 joris Exp $ */ /* * Copyright (c) 2006 Joris Vink * Copyright (c) 2004 Jean-Francois Brousseau *************** *** 569,579 **** --- 569,593 ---- cf->file_rpath = xstrdup(rcsfile); cf->file_ent = cvs_ent_get(entlist, cf->file_name); + if (cf->file_ent != NULL) { + if (cf->file_ent->ce_type == CVS_ENT_DIR && + cf->file_type != CVS_DIR) + fatal("%s is suppose to be a directory, but it is not", + cf->file_path); + if (cf->file_ent->ce_type == CVS_ENT_FILE && + cf->file_type != CVS_FILE) + fatal("%s is suppose to be a file, but it is not", + cf->file_path); + } + if (cf->file_type == CVS_DIR) { if (cf->fd == -1 && stat(rcsfile, &st) != -1) cf->file_status = DIR_CREATE; else if (cf->file_ent != NULL) cf->file_status = FILE_UPTODATE; + else + cf->file_status = FILE_UNKNOWN; + xfree(repo); xfree(rcsfile); cvs_ent_close(entlist, ENT_NOSYNC);