=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/diff/diffreg.c,v retrieving revision 1.80 retrieving revision 1.81 diff -c -r1.80 -r1.81 *** src/usr.bin/diff/diffreg.c 2011/04/01 17:25:26 1.80 --- src/usr.bin/diff/diffreg.c 2012/05/22 12:30:24 1.81 *************** *** 1,4 **** ! /* $OpenBSD: diffreg.c,v 1.80 2011/04/01 17:25:26 nicm Exp $ */ /* * Copyright (C) Caldera International Inc. 2001-2002. --- 1,4 ---- ! /* $OpenBSD: diffreg.c,v 1.81 2012/05/22 12:30:24 millert Exp $ */ /* * Copyright (C) Caldera International Inc. 2001-2002. *************** *** 536,547 **** splice(char *dir, char *file) { char *tail, *buf; if ((tail = strrchr(file, '/')) == NULL) tail = file; else tail++; ! xasprintf(&buf, "%s/%s", dir, tail); return (buf); } --- 536,551 ---- splice(char *dir, char *file) { char *tail, *buf; + size_t dirlen; + dirlen = strlen(dir); + while (dirlen != 0 && dir[dirlen - 1] == '/') + dirlen--; if ((tail = strrchr(file, '/')) == NULL) tail = file; else tail++; ! xasprintf(&buf, "%.*s/%s", (int)dirlen, dir, tail); return (buf); }