*** uuencode.tcl.orig	Fri Jan 25 07:36:08 2002
--- uuencode.tcl	Tue Apr 16 10:21:12 2002
***************
*** 8,13 ****
--- 8,15 ----
  # -------------------------------------------------------------------------
  # @(#)$Id: uuencode.tcl,v 1.3 2002/01/17 23:09:40 patthoyts Exp $
  
+ package require log;                    # tcllib 1.0
+ 
  namespace eval uuencode {
      namespace export encode decode uuencode uudecode
  }
***************
*** 33,43 ****
  
  proc uuencode::Decode {s} {
      set r {}
!     binary scan $s c* d
!     if {[expr {[llength $d] % 4}] != 0} {
!         return -code error "invalid uuencoded string: length must be a\
!               multiple of 4"
      }
          
      foreach {c0 c1 c2 c3} $d {
          append r [format %c [expr {((($c0-0x20)&0x3F) << 2) & 0xFF
--- 35,48 ----
  
  proc uuencode::Decode {s} {
      set r {}
!     # Check length and pad if necessary.
!     if {[set mod [expr {[string length $s] % 4}]] != 0} {
!         log::log notice "invalid uuencoded string: length must be a\
!               multiple of 4."
!         append s [string repeat "`" [expr {4 - $mod}]]
      }
+ 
+     binary scan $s c* d
          
      foreach {c0 c1 c2 c3} $d {
          append r [format %c [expr {((($c0-0x20)&0x3F) << 2) & 0xFF
***************
*** 62,67 ****
--- 67,78 ----
          return [::uuencode -mode encode $s]
      }
      proc uuencode::decode {s} {
+         # Check length and pad if necessary.
+         if {[set mod [expr {[string length $s] % 4}]] != 0} {
+             log::log notice "invalid uuencoded string: length must be a\
+               multiple of 4."
+             append s [string repeat "`" [expr {4 - $mod}]]
+         }
          return [::uuencode -mode decode $s]
      }
  }
***************
*** 156,162 ****
  
      if {$opts(filename) != {}} {
          set f [open $opts(filename) r]
-         fconfigure $f -translation binary
          set data [read $f]
          close $f
      } else {
--- 167,172 ----
