Index: openacs-4/packages/acs-mail-lite/tcl/utils-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/tcl/utils-procs.tcl,v diff -u -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/acs-mail-lite/tcl/utils-procs.tcl 31 Jan 2008 13:28:49 -0000 1.2.2.1 +++ openacs-4/packages/acs-mail-lite/tcl/utils-procs.tcl 18 May 2008 17:07:17 -0000 1.2.2.2 @@ -31,42 +31,41 @@ set charset [string toupper $charset] set charset_code [ns_encodingforcharset $charset] - if { [catch {package require mime 1.5.2}] } { - - # maxlen for each line - # 69 = 76 - 7 where 7 is for "=?"+"?Q?+"?=" - set maxlen [expr {69 - [string length $charset]}] + # maxlen for each line + # 69 = 76 - 7 where 7 is for "=?"+"?Q?+"?=" + set maxlen [expr {69 - [string length $charset]}] - set result "" - set line "" - set i 0 + set result "" + set line "" + set i 0 - set subject_length [string length $subject] - while { $i < $subject_length } { - set chunk [string index $subject $i] + set subject_length [string length $subject] + while { $i < $subject_length } { + set chunk [string index $subject $i] - # encode that chunk - set chunk [encoding convertto $charset_code "$chunk"] - set chunk [mime::qp_encode "$chunk\n" 1 1] + # encode that chunk + set chunk [encoding convertto $charset_code "$chunk"] + if { $chunk eq "\x3F" } { + # ER: workaround (kludge!) for tcllib error + set chunk "=3F" + } else { + set chunk [mime::qp_encode "$chunk" 1 0] + } - set newline $line - append newline $chunk + set newline $line + append newline $chunk - if { [string length $newline] <= $maxlen } { - append line $chunk - } else { - append result "=?$charset?Q?$line?=\n " - set line $chunk - } - incr i + if { [string length $newline] <= $maxlen } { + append line $chunk + } else { + append result "=?$charset?Q?$line?=\n " + set line $chunk } - if { $line ne "" } { - append result "=?$charset?Q?$line?=" - } - } else { - set subject [encoding convertto $charset_code "$subject"] - set result [mime::word_encode $charset_code "quoted-printable" $subject] + incr i } + if { $line ne "" } { + append result "=?$charset?Q?$line?=" + } return $result }