=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/file.c,v retrieving revision 1.50 retrieving revision 1.51 diff -c -r1.50 -r1.51 *** src/usr.bin/cvs/file.c 2005/01/11 00:01:14 1.50 --- src/usr.bin/cvs/file.c 2005/01/12 20:10:09 1.51 *************** *** 1,4 **** ! /* $OpenBSD: file.c,v 1.50 2005/01/11 00:01:14 jfb Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: file.c,v 1.51 2005/01/12 20:10:09 jfb Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. *************** *** 32,37 **** --- 32,38 ---- #include #include #include + #include #include #include #include *************** *** 826,834 **** CVSFILE* cvs_file_alloc(const char *path, u_int type) { - size_t len; - char pbuf[MAXPATHLEN]; - const char *fnp; CVSFILE *cfp; struct cvs_dir *ddat; --- 827,832 ---- *************** *** 839,857 **** } memset(cfp, 0, sizeof(*cfp)); ! /* ditch trailing slashes */ ! strlcpy(pbuf, path, sizeof(pbuf)); ! len = strlen(pbuf); ! while (pbuf[len - 1] == '/') ! pbuf[--len] = '\0'; ! ! fnp = strrchr(path, '/'); ! if (fnp == NULL) ! fnp = path; ! else ! fnp++; ! ! cfp->cf_name = cvs_file_getname(fnp); if (cfp->cf_name == NULL) { cvs_log(LP_ERR, "failed to get file name from table"); return (NULL); --- 837,843 ---- } memset(cfp, 0, sizeof(*cfp)); ! cfp->cf_name = cvs_file_getname(basename(path)); if (cfp->cf_name == NULL) { cvs_log(LP_ERR, "failed to get file name from table"); return (NULL);