** static prototypes
*/
static char *getcpy(char *);
-static int isat(char *);
static int parse_address(void);
static int phrase(char *);
static int route_addr(char *);
}
-#define CHKADR 0 /* undertermined address style */
-#define UNIXDR 1 /* UNIX-style address */
-#define ARPADR 2 /* ARPAnet-style address */
-
-
-static int
-isat(char *p)
-{
- return (strncmp(p, " AT ", 4)!=0 && strncmp(p, " At ", 4)!=0 &&
- strncmp(p, " aT ", 4)!=0 && strncmp(p, " at ", 4)!=0 ?
- FALSE : TRUE);
-}
-
-
/*
**
** getadrx() implements a partial 822-style address parser. The parser
** is neither complete nor correct. It does however recognize nearly all
-** of the 822 address syntax. In addition it handles the majority of the
+** of the 822 address syntax.
+** Historically, it handled the majority (and still handles parts) of the
** 733 syntax as well. Most problems arise from trying to accomodate both.
**
** In terms of 822, the route-specification in
** via source-routing. Recursive groups are not allowed as per the
** standard.
**
-** In terms of 733, " at " is recognized as equivalent to "@".
-**
** In terms of both the parser will not complain about missing hosts.
**
** -----
my_lex(char *buffer)
{
/* buffer should be at least BUFSIZ bytes long */
- int i, gotat = 0;
+ int i;
register unsigned char c;
register char *bp;
if (!cp)
return (last_lex = LX_END);
- gotat = isat(cp);
c = *cp++;
while (isspace(c))
c = *cp++;
else
cp--;
*bp = 0;
- last_lex = !gotat || cp == NULL || strchr(cp, '<') != NULL
- ? LX_ATOM : LX_AT;
- return last_lex;
+ return LX_ATOM;
my_lex_buffull:
/* Out of buffer space. *bp is the last byte in the buffer */