Date: Sat, 12 Dec 1998 20:03:52 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: freebsd-current@FreeBSD.ORG Subject: PR bin/8665 proposed fix (very minor) Message-ID: <199812130403.UAA15675@apollo.backplane.com>
next in thread | raw e-mail | index | archive | help
This is a very minor bug report, but I think worth fixing. However,
it does slightly change the operation of /bin/mail in the case where
the $MAIL environment exists and the 'u' option is also used. I weighed
the operation before and after and I think the after operation is more
correct.
Before $MAIL would always override the mailbox filename even if -u was
given to /bin/mail. This is counter to the manual page which basically
says that -u basically sets the mailbox file according to the specified
user. Afterwords, the -u option overrides $MAIL. The -f option, of
course, overrides both.
If anybody is rabid about not making the below change, speak up.
-Matt
Matthew Dillon Engineering, HiWay Technologies, Inc. & BEST Internet
Communications & God knows what else.
<dillon@backplane.com> (Please include original email in any response)
Index: main.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/mail/main.c,v
retrieving revision 1.5
diff -c -r1.5 main.c
*** main.c 1998/01/02 16:43:50 1.5
--- main.c 1998/12/13 03:56:57
***************
*** 63,69 ****
--- 63,71 ----
struct name *to, *cc, *bcc, *smopts;
char *subject, *replyto;
char *ef, *cp;
+ int have_fopt = 0;
char nosrc = 0;
+ char xname[PATHSIZE];
void hdrstop();
sig_t prevint;
void sigchild();
***************
*** 107,115 ****
break;
case 'u':
/*
! * Next argument is person to pretend to be.
*/
myname = optarg;
break;
case 'i':
/*
--- 109,131 ----
break;
case 'u':
/*
! * Next argument is person to pretend to be.
! * Unfortunately, this seriously confuses the $MAIL
! * environment variable. Since $MAIL is probably
! * wrong, we override it here. If the user really
! * cares he can use -f to specify the actual path.
*/
myname = optarg;
+ if (have_fopt == 0) {
+ snprintf(
+ xname,
+ sizeof(xname),
+ "%s/%s",
+ _PATH_MAILDIR,
+ myname
+ );
+ ef = xname;
+ }
break;
case 'i':
/*
***************
*** 142,147 ****
--- 158,164 ----
ef = argv[optind++];
else
ef = "&";
+ have_fopt = 1;
break;
case 'n':
/*
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812130403.UAA15675>
