summaryrefslogtreecommitdiffstats
path: root/usr.bin/mail
diff options
context:
space:
mode:
authormikeh <mikeh@FreeBSD.org>2002-06-25 05:24:30 +0000
committermikeh <mikeh@FreeBSD.org>2002-06-25 05:24:30 +0000
commit92912abb162c809019c1c1d0f16c01be2d8be533 (patch)
tree76289f153dfcb2eb05e3f30c1d94ef10a83ac66b /usr.bin/mail
parent289920516bea8f688c57e02b9dd1895fddc9dd72 (diff)
downloadFreeBSD-src-92912abb162c809019c1c1d0f16c01be2d8be533.zip
FreeBSD-src-92912abb162c809019c1c1d0f16c01be2d8be533.tar.gz
Make the 'searchheaders' option behave how it was supposed to. If
enabled, the string '/to:y' will match strings in the To, Cc, and Bcc header fields. Whereas, '/To:y' will match only the To field. Edit the manpage and a code comment to indicate the correct behavior.
Diffstat (limited to 'usr.bin/mail')
-rw-r--r--usr.bin/mail/extern.h2
-rw-r--r--usr.bin/mail/list.c23
-rw-r--r--usr.bin/mail/mail.12
3 files changed, 16 insertions, 11 deletions
diff --git a/usr.bin/mail/extern.h b/usr.bin/mail/extern.h
index 7385abc..9c3c7ad 100644
--- a/usr.bin/mail/extern.h
+++ b/usr.bin/mail/extern.h
@@ -169,7 +169,7 @@ void makemessage(FILE *, int);
void mark(int);
int markall(char [], int);
int matchsender(char *, int);
-int matchsubj(char *, int);
+int matchfield(char *, int);
int mboxit(int []);
int member(char *, struct ignoretab *);
void mesedit(FILE *, int);
diff --git a/usr.bin/mail/list.c b/usr.bin/mail/list.c
index be5df83..cfe493e 100644
--- a/usr.bin/mail/list.c
+++ b/usr.bin/mail/list.c
@@ -273,7 +273,7 @@ number:
for (i = 1; i <= msgCount; i++) {
for (mc = 0, np = &namelist[0]; *np != NULL; np++)
if (**np == '/') {
- if (matchsubj(*np, i)) {
+ if (matchfield(*np, i)) {
mc++;
break;
}
@@ -730,16 +730,21 @@ matchto(str, mesg)
}
/*
- * See if the given string matches inside the subject field of the
- * given message. For the purpose of the scan, we ignore case differences.
- * If it does, return true. The string search argument is assumed to
- * have the form "/search-string." If it is of the form "/," we use the
- * previous search string.
+ * See if the given substring is contained within the specified field. If
+ * 'searchheaders' is set, then the form '/x:y' will be accepted and matches
+ * any message with the substring 'y' in field 'x'. If 'x' is omitted or
+ * 'searchheaders' is not set, then the search matches any messages
+ * with the substring 'y' in the 'Subject'. The search is case insensitive.
+ *
+ * The form '/to:y' is a special case, and will match all messages
+ * containing the substring 'y' in the 'To', 'Cc', or 'Bcc' header
+ * fields. The search for 'to' is case sensitive, so that '/To:y' can
+ * be used to limit the search to just the 'To' field.
*/
char lastscan[STRINGLEN];
int
-matchsubj(str, mesg)
+matchfield(str, mesg)
char *str;
int mesg;
{
@@ -758,8 +763,8 @@ matchsubj(str, mesg)
*/
if (value("searchheaders") && (cp = strchr(str, ':')) != NULL) {
- /* Check for special case "/To:" */
- if (strncasecmp(str, "To:", 3) == 0)
+ /* Check for special case "/to:" */
+ if (strncmp(str, "to:", 3) == 0)
return (matchto(cp, mesg));
*cp++ = '\0';
cp2 = hfield(*str != '\0' ? str : "subject", mp);
diff --git a/usr.bin/mail/mail.1 b/usr.bin/mail/mail.1
index 3457ee1..bc865b3 100644
--- a/usr.bin/mail/mail.1
+++ b/usr.bin/mail/mail.1
@@ -1076,7 +1076,7 @@ header fields.
The check for
.Qq Li "to"
is case sensitive, so that
-.Dq Li /to: Ns Ar y
+.Dq Li /To: Ns Ar y
can be used to limit the search for
.Ar y
to just the
OpenPOWER on IntegriCloud