Annotation of 43BSDTahoe/new/notes/src/nfalias.c, revision 1.1.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.