updated for version 7.0012
diff --git a/src/memline.c b/src/memline.c
index 1767053..67d233b 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -4338,8 +4338,17 @@
 	curline = buf->b_ml.ml_locked_high + 1;
     }
 
-    if (ffdos)
-	size += line - 1;
+    if (line != 0)
+    {
+	/* Count extra CR characters. */
+	if (ffdos)
+	    size += line - 1;
+
+	/* Don't count the last line break if 'bin' and 'noeol'. */
+	if (buf->b_p_bin && !buf->b_p_eol)
+	    size -= ffdos + 1;
+    }
+
     return size;
 }