- To summarize, when we're all done, here's what MH knows about the address:
-
- DUMB - type: local, uucp, or network
- host: not locally defaulted, not explicitly expanded
- everything else
-
- other - type: local, uucp, network, unknown
- everything else
+/*
+ * High level parsing of addresses:
+ *
+ * The routines in sbr/mf.c parse the syntactic representations of
+ * addresses. The routines in sbr/addrsbr.c associate semantics with those
+ * addresses.
+ *
+ * If #ifdef DUMB is in effect, a full 822-style parser is called
+ * for syntax recongition. This breaks each address into its components.
+ * Note however that no semantics are assumed about the parts or their
+ * totality. This means that implicit hostnames aren't made explicit,
+ * and explicit hostnames aren't expanded to their "official" represenations.
+ *
+ * If DUMB is not in effect, then this module does some
+ * high-level thinking about what the addresses are.
+ *
+ * 1. for MMDF systems:
+ *
+ * string%<uucp>@<local> -> string
+ *
+ * 2. for non-MMDF systems:
+ *
+ * string@host.<uucp> -> host!string
+ *
+ * 3. for any system, an address interpreted relative to the local host:
+ *
+ * string@<uucp> -> string
+ *
+ * For cases (1) and (3) above, the leftmost host is extracted. If it's not
+ * present, the local host is used. If the tests above fail, the address is
+ * considered to be a real 822-style address.
+ *
+ * If an explicit host is not present, then MH checks for a bang to indicate
+ * an explicit UUCP-style address. If so, this is noted. If not, the host is
+ * defaulted, typically to the local host. The lack of an explict host is
+ * also noted.
+ *
+ * If an explicit 822-style host is present, then MH checks to see if it
+ * can expand this to the official name for the host. If the hostname is
+ * unknown, the address is so typed.
+ *
+ * To summarize, when we're all done, here's what MH knows about the address:
+ *
+ * DUMB - type: local, uucp, or network
+ * host: not locally defaulted, not explicitly expanded
+ * everything else
+ *
+ * other - type: local, uucp, network, unknown
+ * everything else