Annotation of 43BSD/contrib/mkmf/src/pathcat.c, revision 1.1.1.1

1.1       root        1: /* $Header: pathcat.c,v 1.2 85/03/17 15:23:03 nicklin Exp $ */
                      2: 
                      3: /*
                      4:  * Author: Peter J. Nicklin
                      5:  */
                      6: 
                      7: /*
                      8:  * pathcat() concatenates path components p1 and p2 into character buffer
                      9:  * p1_p2. Returns p1_p2.
                     10:  */
                     11: #include <stdio.h>
                     12: #include "path.h"
                     13: 
                     14: extern char *PGN;                      /* program name */
                     15: 
                     16: char *
                     17: pathcat(p1_p2, p1, p2)
                     18:        register char *p1;
                     19:        register char *p2;
                     20:        register char *p1_p2;
                     21: {
                     22:        register int plen;              /* maximum pathname length */
                     23:        char *sp1_p2;                   /* start of p1_p2 */
                     24: 
                     25:        sp1_p2 = p1_p2;
                     26:        for (plen = PATHSIZE; plen > 0; plen--, p1_p2++, p1++)
                     27:                if ((*p1_p2 = *p1) == '\0')
                     28:                        break;
                     29:        if (*p2 != '\0' && plen > 0)
                     30:                {
                     31:                if (p1_p2 != sp1_p2 && p1_p2[-1] != _PSC)
                     32:                        {
                     33:                        *p1_p2++ = _PSC;
                     34:                        plen--;
                     35:                        }
                     36:                for (; plen > 0; plen--, p1_p2++, p2++)
                     37:                        if ((*p1_p2 = *p2) == '\0')
                     38:                                break;
                     39:                }
                     40:        if (plen == 0)
                     41:                {
                     42:                *--p1_p2 = '\0';
                     43:                if (*PGN != '\0')
                     44:                        fprintf(stderr, "%s: ", PGN);
                     45:                fprintf(stderr, "pathname too long\n");
                     46:                }
                     47:        return(sp1_p2);
                     48: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.