Annotation of 43BSD/contrib/notes/src/nfalias.c, revision 1.1

1.1     ! root        1: #include "parms.h"
        !             2: #include "structs.h"
        !             3: 
        !             4: #ifdef RCSIDENT
        !             5: static char rcsid[] = "$Header: nfalias.c,v 1.7 85/01/18 15:24:36 notes Rel $";
        !             6: #endif RCSIDENT
        !             7: 
        !             8: #include "net.h"
        !             9: /*
        !            10:  *     nfalias(local, remote, remotesys)
        !            11:  *     char *local, *remote, *remotesys;
        !            12:  *
        !            13:  *     nfalias looks in the alias file for the remote system and
        !            14:  *     tries to find a match for the local notesfile.
        !            15:  *     If a match is found, it is copied to *remote, otherwise 
        !            16:  *     the original name is copied over.
        !            17:  *
        !            18:  *     The routine returns -1 if there is no file.
        !            19:  *     A zero is returned if no match is found.
        !            20:  *     A 1 is returned if a match is found.
        !            21:  *
        !            22:  *     Original Coding:        Ray Essick      April 25, 1982
        !            23:  */
        !            24: 
        !            25: nfalias (local, remote, remotesys)
        !            26: char   *local;
        !            27: char   *remote;
        !            28: char   *remotesys;
        !            29: {
        !            30: 
        !            31:     FILE * aliases;
        !            32:     char    linebuf[100];                              /* hold lines from file */
        !            33:     char   *p,
        !            34:            *q;
        !            35:     int     c;
        !            36: 
        !            37:     strcpy (remote, local);                            /* pessimism - ready to fail */
        !            38: 
        !            39:     sprintf (linebuf, "%s/%s/%s/%s", Mstdir, UTILITY, ALIASES, remotesys);
        !            40:     if ((aliases = fopen (linebuf, "r")) == NULL)
        !            41:        return (-1);                                    /* no file, too bad */
        !            42: 
        !            43:     while (1)
        !            44:     {
        !            45:        p = linebuf;                                    /* start line */
        !            46:        while ((c = getc (aliases)) != EOF && c != '\n')
        !            47:            *p++ = c;
        !            48:        if (c == EOF)
        !            49:        {
        !            50:            fclose (aliases);
        !            51:            return 0;                                   /* no match */
        !            52:        }
        !            53:        *p = '\0';                                      /* terminate string */
        !            54:        if (linebuf[0] == '#' || linebuf[0] == '\0')
        !            55:            continue;                                   /* comment or empty line */
        !            56: 
        !            57:        q = linebuf;                                    /* find colon */
        !            58:        while (*q != ':' && *q)
        !            59:            q++;                                        /* try next */
        !            60:        if (*q != ':')                                  /* properly formatted? */
        !            61:        {
        !            62:            fprintf (stderr, "Bad line in alias file for system %s: %s\n",
        !            63:                    remotesys, linebuf);
        !            64:            continue;                                   /* skip the line */
        !            65:        }
        !            66:        *q++ = '\0';                                    /* break into two parts */
        !            67:        if (strcmp (linebuf, local) == 0)               /* match ? */
        !            68:        {
        !            69:            strcpy (remote, q);                         /* copy the name over */
        !            70:            fclose (aliases);
        !            71:            return 1;                                   /* success */
        !            72:        }
        !            73:     }
        !            74: /*     yes, we know that this statement is unreachable! */
        !            75:     return (-1);                                       /* to satisfy lint */
        !            76: }

unix.superglobalmegacorp.com

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