=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/file.c,v retrieving revision 1.76 retrieving revision 1.77 diff -u -r1.76 -r1.77 --- src/usr.bin/cvs/file.c 2005/05/22 17:47:53 1.76 +++ src/usr.bin/cvs/file.c 2005/05/24 04:12:25 1.77 @@ -1,4 +1,4 @@ -/* $OpenBSD: file.c,v 1.76 2005/05/22 17:47:53 joris Exp $ */ +/* $OpenBSD: file.c,v 1.77 2005/05/24 04:12:25 jfb Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. @@ -503,7 +503,7 @@ cvs_file_getpath(CVSFILE *file, char *buf, size_t len) { u_int i; - char *fp, *namevec[CVS_FILE_MAXDEPTH]; + const char *fp, *namevec[CVS_FILE_MAXDEPTH]; CVSFILE *top; buf[0] = '\0'; @@ -657,10 +657,6 @@ } while ((ent = readdir(dirp)) != NULL) { - if (!strcmp(ent->d_name, ".") || - !strcmp(ent->d_name, "..")) - continue; - if ((flags & CF_IGNORE) && cvs_file_chkign(ent->d_name)) continue; @@ -838,6 +834,8 @@ } else { if (cf->cf_tag != NULL) cvs_strfree(cf->cf_tag); + if (cf->cf_opts != NULL) + cvs_strfree(cf->cf_opts); } free(cf); @@ -1047,11 +1045,21 @@ cfp->cf_lrev = ent->ce_rev; ent->ce_rev = NULL; - if ((ent->ce_type == CVS_ENT_REG) && - (ent->ce_tag != NULL)) { - if ((cfp->cf_tag = cvs_strdup(ent->ce_tag)) == NULL) { - cvs_file_free(cfp); - return (NULL); + if (ent->ce_type == CVS_ENT_FILE) { + if (ent->ce_tag[0] != '\0') { + cfp->cf_tag = cvs_strdup(ent->ce_tag); + if (cfp->cf_tag == NULL) { + cvs_file_free(cfp); + return (NULL); + } + } + + if (ent->ce_opts[0] != '\0') { + cfp->cf_opts = cvs_strdup(ent->ce_opts); + if (cfp->cf_opts == NULL) { + cvs_file_free(cfp); + return (NULL); + } } } }