- case OK:
- switch (last_lex) {
- case LX_COMA:
- case LX_END:
- break;
-
- default: /* catch trailing comments */
- bp = cp;
- my_lex (adr);
- cp = bp;
- break;
- }
- break;
-
- default:
- break;
- }
-
- if (! eai) {
- /*
- * Reject the address if key fields contain 8bit characters
- */
-
- if (contains8bit(mbox, NULL) || contains8bit(host, NULL) ||
- contains8bit(routepath, NULL) || contains8bit(grp, NULL)) {
- strcpy(err, "Address contains 8-bit characters");
- }
+ parse = parse_address();
+ if (parse == DONE) {
+ free(dp);
+ dp = cp = NULL;
+ return NULL;
+ }
+ if (parse == OK && last_lex != LX_COMA && last_lex != LX_END) {
+ /* catch trailing comments */
+ bp = cp;
+ my_lex(adr);
+ cp = bp;