Date: Tue, 01 May 2001 00:57:46 -0400 (EDT) From: Mike Heffner <mheffner@vt.edu> To: Warner Losh <imp@harmony.village.org> Cc: FreeBSD-audit <FreeBSD-audit@FreeBSD.ORG> Subject: Re: Small patch to allow mail to read Eudora mailboxes Message-ID: <XFMail.20010501005746.mheffner@vt.edu> In-Reply-To: <200105010419.f414JlR56227@harmony.village.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On 01-May-2001 Warner Losh wrote:
| In message <XFMail.20010501000013.mheffner@vt.edu> Mike Heffner writes:
|: Because I was syncing with OpenBSD, but yes it can be done this way instead.
|
| I think that OpenBSD might have a bug lurking because I don't think
| the order of operations is well defined enough.
You're right, while it does work, it's relying on undefined behavior. Here's the
updated patch.
Index: fio.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/mail/fio.c,v
retrieving revision 1.4
diff -u -r1.4 fio.c
--- fio.c 2001/03/25 04:57:04 1.4
+++ fio.c 2001/05/01 04:53:50
@@ -94,6 +94,16 @@
return;
}
count = strlen(linebuf);
+ /*
+ * Transforms lines ending in <CR><LF> to just <LF>.
+ * This allows mail to be able to read Eudora mailboxes.
+ */
+ if (count >= 2 && linebuf[count - 1] == '\n' &&
+ linebuf[count - 2] == '\r') {
+ count--;
+ linebuf[count - 1] = '\n';
+ }
+
(void) fwrite(linebuf, sizeof *linebuf, count, otf);
if (ferror(otf))
errx(1, "/tmp");
@@ -160,7 +170,7 @@
/*
* Read up a line from the specified input into the line
* buffer. Return the number of characters read. Do not
- * include the newline at the end.
+ * include the newline (or carriage return) at the end.
*/
int
readline(ibuf, linebuf, linesize)
@@ -175,6 +185,8 @@
return -1;
n = strlen(linebuf);
if (n > 0 && linebuf[n - 1] == '\n')
+ linebuf[--n] = '\0';
+ if (n > 0 && linebuf[n - 1] == '\r')
linebuf[--n] = '\0';
return n;
}
Mike
--
Mike Heffner <mheffner@vt.edu>
Blacksburg, VA <mikeh@FreeBSD.org>
http://filebox.vt.edu/users/mheffner
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (FreeBSD)
Comment: For info see http://www.gnupg.org
iD8DBQE67kJKFokZQs3sv5kRAq+KAKCKR86aFfsToDkO36O2oJyBWdPvFgCfUpxK
jBwhBxA92qbdHLslpZAYwBg=
=LyBD
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20010501005746.mheffner>
