4.3BSD/usr/contrib/spms/src/lib/libspms/src/ppathcat.c

Compare this file to the similar file:
Show the results in this format:

/* $Header$ */

/*
 * Author: Peter J. Nicklin
 */

/*
 * ppathcat() concatenates project pathname components pp1 and pp2 into
 * character buffer pp1_pp2. Returns pp1_pp2.
 */
#include "path.h"

char *
ppathcat(pp1_pp2, pp1, pp2)
	register char *pp1;
	register char *pp2;
	register char *pp1_pp2;
{
	register int pplen;		/* maximum pathname length */
	char *spp1_pp2;			/* start of pp1_pp2 */

	spp1_pp2 = pp1_pp2;
	for (pplen = PPATHSIZE; pplen > 0; pplen--, pp1_pp2++, pp1++)
		if ((*pp1_pp2 = *pp1) == '\0')
			break;
	if (*pp2 != '\0' && pplen > 0)
		{
		if (pp1_pp2 != spp1_pp2 && pp1_pp2[-1] != _PPSC)
			{
			*pp1_pp2++ = _PPSC;
			pplen--;
			}
		for (; pplen > 0; pplen--, pp1_pp2++, pp2++)
			if ((*pp1_pp2 = *pp2) == '\0')
				break;
		}
	if (pplen == 0)
		{
		*--pp1_pp2 = '\0';
		warn("project pathname too long");
		}
	return(spp1_pp2);
}