1: /* $Header$ */ 2: 3: /* 4: * Author: Peter J. Nicklin 5: */ 6: 7: /* 8: * ppathcat() concatenates project pathname components pp1 and pp2 into 9: * character buffer pp1_pp2. Returns pp1_pp2. 10: */ 11: #include "path.h" 12: 13: char * 14: ppathcat(pp1_pp2, pp1, pp2) 15: register char *pp1; 16: register char *pp2; 17: register char *pp1_pp2; 18: { 19: register int pplen; /* maximum pathname length */ 20: char *spp1_pp2; /* start of pp1_pp2 */ 21: 22: spp1_pp2 = pp1_pp2; 23: for (pplen = PPATHSIZE; pplen > 0; pplen--, pp1_pp2++, pp1++) 24: if ((*pp1_pp2 = *pp1) == '\0') 25: break; 26: if (*pp2 != '\0' && pplen > 0) 27: { 28: if (pp1_pp2 != spp1_pp2 && pp1_pp2[-1] != _PPSC) 29: { 30: *pp1_pp2++ = _PPSC; 31: pplen--; 32: } 33: for (; pplen > 0; pplen--, pp1_pp2++, pp2++) 34: if ((*pp1_pp2 = *pp2) == '\0') 35: break; 36: } 37: if (pplen == 0) 38: { 39: *--pp1_pp2 = '\0'; 40: warn("project pathname too long"); 41: } 42: return(spp1_pp2); 43: }