summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mh/mh_format.c17
-rw-r--r--mh/tests/fmtfunc.at14
2 files changed, 23 insertions, 8 deletions
diff --git a/mh/mh_format.c b/mh/mh_format.c
index 5b7607234..05d6d5511 100644
--- a/mh/mh_format.c
+++ b/mh/mh_format.c
@@ -1471,20 +1471,23 @@ builtin_host (struct mh_fvm *mach)
static void
builtin_nohost (struct mh_fvm *mach)
{
+ struct mu_address hint;
mu_address_t addr;
- const char *str;
+ const char *dom;
+ int rc;
- int rc = mu_address_create (&addr, mh_string_value (&mach->str[R_ARG]));
+ hint.domain = NULL;
+ rc = mu_address_create_hint (&addr, mh_string_value (&mach->str[R_ARG]),
+ &hint, MU_ADDR_HINT_DOMAIN);
mh_string_clear (&mach->str[R_REG]);
if (rc)
- return;
-
- if (mu_address_sget_email (addr, 1, &str) == 0 && str)
- mach->num[R_REG] = strchr (str, '@') != NULL;
+ mach->num[R_REG] = 1;
else
- mach->num[R_REG] = 0;
+ {
+ mach->num[R_REG] = !(mu_address_sget_domain (addr, 1, &dom) == 0 && dom);
mu_address_destroy (&addr);
}
+}
/* type addr integer host type* (0=local,1=network,
-1=uucp,2=unknown)*/
diff --git a/mh/tests/fmtfunc.at b/mh/tests/fmtfunc.at
index b8eb66a08..844a7779a 100644
--- a/mh/tests/fmtfunc.at
+++ b/mh/tests/fmtfunc.at
@@ -685,7 +685,19 @@ FMTFUNC([host],
[gnu.org
])
-# FIXME: nohost
+FMTFUNC([nohost],
+[%(nohost{From})
+%(nohost{To})
+%(nohost{Sender})
+],
+[From: gray
+To: mu@example.org
+
+],
+[1
+0
+1
+])
# FIXME: path

Return to:

Send suggestions and report system problems to the System administrator.