len = snprintf(buf, sizeof(buf), "%s/%s", tfp->name, name);
(void)snprintf(buf, sizeof(buf), "%s/%s", tfp->name, name);
ctag_file(sp, tfp, name, dirp, dlenp)	SCR *sp;	TAGF *tfp;	char *name, **dirp;	size_t *dlenp;{	struct stat sb;	size_t len;	char *p, buf[MAXPATHLEN];	/*	 * !!!	 * If the tag file path is a relative path, see if it exists.  If it	 * doesn't, look relative to the tags file path.  It's okay for a tag	 * file to not exist, and historically, vi simply displayed a "new"	 * file.  However, if the path exists relative to the tag file, it's	 * pretty clear what's happening, so we may as well get it right.	 */	*dlenp = 0;	if (name[0] != '/' &&	    stat(name, &sb) && (p = strrchr(tfp->name, '/')) != NULL) {		*p = '\0';		len = snprintf(buf, sizeof(buf), "%s/%s", tfp->name, name);		if (stat(buf, &sb) == 0) {			*dirp = tfp->name;			*dlenp = strlen(*dirp);		}		*p = '/';	}}