ash: fix still-broken new mail detection
padvance() exit condition is return value < 0, not == 0. After MAIL changing twice, the logic erroneously concluded that "you have new mail". Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
07bc5de67b
commit
90f5f2a190
@ -11264,8 +11264,8 @@ static smallint mail_var_path_changed;
|
|||||||
/*
|
/*
|
||||||
* Print appropriate message(s) if mail has arrived.
|
* Print appropriate message(s) if mail has arrived.
|
||||||
* If mail_var_path_changed is set,
|
* If mail_var_path_changed is set,
|
||||||
* then the value of MAIL has mail_var_path_changed,
|
* then the value of MAIL has changed,
|
||||||
* so we just update the values.
|
* so we just update the hash value.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
chkmail(void)
|
chkmail(void)
|
||||||
@ -11284,7 +11284,7 @@ chkmail(void)
|
|||||||
int len;
|
int len;
|
||||||
|
|
||||||
len = padvance_magic(&mpath, nullstr, 2);
|
len = padvance_magic(&mpath, nullstr, 2);
|
||||||
if (!len)
|
if (len < 0)
|
||||||
break;
|
break;
|
||||||
p = stackblock();
|
p = stackblock();
|
||||||
if (*p == '\0')
|
if (*p == '\0')
|
||||||
@ -11305,8 +11305,8 @@ chkmail(void)
|
|||||||
if (!mail_var_path_changed && mailtime_hash != new_hash) {
|
if (!mail_var_path_changed && mailtime_hash != new_hash) {
|
||||||
if (mailtime_hash != 0)
|
if (mailtime_hash != 0)
|
||||||
out2str("you have mail\n");
|
out2str("you have mail\n");
|
||||||
mailtime_hash = new_hash;
|
|
||||||
}
|
}
|
||||||
|
mailtime_hash = new_hash;
|
||||||
mail_var_path_changed = 0;
|
mail_var_path_changed = 0;
|
||||||
popstackmark(&smark);
|
popstackmark(&smark);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user