aboutsummaryrefslogtreecommitdiffstats
path: root/rcfile_y.y
diff options
context:
space:
mode:
Diffstat (limited to 'rcfile_y.y')
-rw-r--r--rcfile_y.y11
1 files changed, 8 insertions, 3 deletions
diff --git a/rcfile_y.y b/rcfile_y.y
index 029b84de..199e57aa 100644
--- a/rcfile_y.y
+++ b/rcfile_y.y
@@ -176,6 +176,10 @@ mapping : STRING
{save_str_pair(&current.localnames, $1, $3);}
;
+smtphunt : STRING {save_str(&current.smtphunt, -1, $1);}
+ | smtphunt STRING {save_str(&current.smtphunt, -1, $2);}
+ ;
+
user_option : TO localnames HERE
| TO localnames
| IS localnames HERE
@@ -184,7 +188,7 @@ user_option : TO localnames HERE
| IS STRING THERE {current.remotename = xstrdup($2);}
| PASSWORD STRING {current.password = xstrdup($2);}
| FOLDER STRING {current.mailbox = xstrdup($2);}
- | SMTPHOST STRING {current.smtphost = xstrdup($2);}
+ | SMTPHOST smtphunt
| MDA STRING {current.mda = xstrdup($2);}
| PRECONNECT STRING {current.preconnect = xstrdup($2);}
@@ -350,7 +354,8 @@ static void record_current(void)
FLAG_FORCE(remotename);
FLAG_FORCE(password);
FLAG_FORCE(mailbox);
- FLAG_FORCE(smtphost);
+ if (cmd_opts.smtphunt)
+ save_str(&current.smtphunt, -1, cmd_opts.smtphunt->id);
FLAG_FORCE(mda);
FLAG_FORCE(preconnect);
@@ -373,6 +378,7 @@ void optmerge(struct query *h2, struct query *h1)
{
append_str_list(&h2->server.localdomains, &h1->server.localdomains);
append_str_list(&h2->localnames, &h1->localnames);
+ append_str_list(&h2->smtphunt, &h1->smtphunt);
#define FLAG_MERGE(fld) if (!h2->fld) h2->fld = h1->fld
FLAG_MERGE(server.protocol);
@@ -392,7 +398,6 @@ void optmerge(struct query *h2, struct query *h1)
FLAG_MERGE(remotename);
FLAG_MERGE(password);
FLAG_MERGE(mailbox);
- FLAG_MERGE(smtphost);
FLAG_MERGE(mda);
FLAG_MERGE(preconnect);