Aaron Ucko <[EMAIL PROTECTED]> writes:

> TRAMP's internal uuencode implementation, which seems to be its
> default encoding method (at least on this system, which doesn't have
> mimencode, mmencode, or recode installed), has an annoying bug: if
> the content's length is just short of a multiple of 45 bytes, the
> last line of data starts with M rather than K or L, so the padding
> turns into one or two actual NULs.

Fixed in Tramp CVS. You can try the following patch:

--- tramp-uu.el.~2.4.~  2003-12-01 21:54:58.000000000 +0100
+++ tramp-uu.el 2004-05-16 22:56:49.000000000 +0200
@@ -63,10 +63,10 @@
        (setq c (char-after (point)))
        (delete-char 1)
        (if (equal c ?=)
-           ;; "=" means padding.  Insert "`" instead.
-           (insert "`")
-         (insert (tramp-uu-byte-to-uu-char (tramp-uu-b64-char-to-byte c))))
-       (setq i (1+ i))
+           ;; "=" means padding.  Insert "`" instead.  Not counted for length.
+           (progn (insert "`") (setq len (1- len)))
+         (insert (tramp-uu-byte-to-uu-char (tramp-uu-b64-char-to-byte c)))
+         (setq i (1+ i)))
        ;; Every 60 characters, add "M" at beginning of line (as
        ;; length byte) and insert a newline.
        (when (zerop (% i 60))

Thanx for reporting the bug. Best regards, Michael.


_______________________________________________
Tramp-devel mailing list
[EMAIL PROTECTED]
http://mail.nongnu.org/mailman/listinfo/tramp-devel

Reply via email to