tmail 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +5 -0
- data/NOTES +84 -0
- data/README +6 -1
- data/ext/Makefile +20 -0
- data/ext/{tmail/base64 → mailscanner/tmail}/MANIFEST +1 -1
- data/ext/mailscanner/tmail/depend +1 -0
- data/ext/mailscanner/tmail/extconf.rb +24 -0
- data/ext/{tmail/scanner_c/scanner_c.c → mailscanner/tmail/mailscanner.c} +8 -7
- data/lib/tmail/base64.rb +29 -52
- data/lib/tmail/encode.rb +37 -38
- data/lib/tmail/interface.rb +632 -49
- data/lib/tmail/main.rb +4 -0
- data/lib/tmail/net.rb +0 -35
- data/lib/tmail/quoting.rb +8 -8
- data/lib/tmail/scanner.rb +10 -6
- data/lib/tmail/scanner_r.rb +3 -5
- data/lib/tmail/version.rb +2 -2
- data/log/ChangeLog.txt +1131 -0
- data/log/History.txt +40 -0
- data/log/Todo.txt +32 -0
- data/meta/MANIFEST +118 -0
- data/meta/ROLLRC +3 -0
- data/meta/icli.yaml +2 -2
- data/meta/{tmail-1.1.1.roll → project.yaml} +3 -7
- data/sample/bench_base64.rb +48 -0
- data/{bat → script}/changelog +0 -0
- data/script/clobber/distclean +8 -0
- data/{bat → script}/clobber/package +0 -0
- data/script/compile +32 -0
- data/{bat → script}/config.yaml +2 -2
- data/{bat → script}/prepare +4 -2
- data/{bat → script}/publish +0 -0
- data/{bat → script}/release +0 -0
- data/{bat → script}/setup +0 -0
- data/{bat → script}/stats +0 -0
- data/{bat → script}/tag +0 -0
- data/script/test +36 -0
- data/test/fixtures/raw_email_reply +32 -0
- data/test/fixtures/raw_email_with_bad_date +48 -0
- data/test/test_address.rb +1 -3
- data/test/test_attachments.rb +1 -2
- data/test/test_base64.rb +3 -2
- data/test/test_encode.rb +1 -0
- data/test/test_header.rb +2 -3
- data/test/test_helper.rb +8 -2
- data/test/test_mail.rb +45 -16
- data/test/test_mbox.rb +1 -1
- data/test/test_port.rb +1 -1
- data/test/test_scanner.rb +1 -1
- data/test/test_utils.rb +1 -2
- metadata +82 -76
- data/bat/compile +0 -42
- data/bat/rdoc +0 -42
- data/bat/test +0 -25
- data/ext/tmail/Makefile +0 -25
- data/ext/tmail/base64/base64.c +0 -264
- data/ext/tmail/base64/depend +0 -1
- data/ext/tmail/base64/extconf.rb +0 -38
- data/ext/tmail/scanner_c/MANIFEST +0 -4
- data/ext/tmail/scanner_c/depend +0 -1
- data/ext/tmail/scanner_c/extconf.rb +0 -38
- data/lib/tmail/tmail.rb +0 -1
data/CHANGES
ADDED
data/NOTES
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
[ANN] TMail 1.2.0
|
2
|
+
|
3
|
+
TMail is The Mail Handling Library for Ruby!
|
4
|
+
|
5
|
+
TMail is the Ruby Mail handler used in the
|
6
|
+
Ruby on Rails and Nitro web frame works as
|
7
|
+
well as many others (now including, the Ruby
|
8
|
+
Talk mail gateway!).
|
9
|
+
|
10
|
+
TMail is now a gem. You can install it on any
|
11
|
+
platform via:
|
12
|
+
|
13
|
+
# gem install tmail
|
14
|
+
|
15
|
+
Alternatively you can download the source code
|
16
|
+
or view extra documentation at the website:
|
17
|
+
|
18
|
+
http://tmail.rubyforge.org/
|
19
|
+
|
20
|
+
|
21
|
+
Release Summary:
|
22
|
+
------------------
|
23
|
+
New release handles two tickets in the TMail
|
24
|
+
tracker as well as a lot more documentation and
|
25
|
+
removes an unnecessary c-library.
|
26
|
+
|
27
|
+
|
28
|
+
Release Update Details:
|
29
|
+
-------------------------
|
30
|
+
|
31
|
+
Closed 15445 - TMail::Mail#create_forward now returns
|
32
|
+
a new Mail object that has the original mail as an
|
33
|
+
encoded 7 bit multipart attachment. Also moved
|
34
|
+
create_forward and create_reply from tmail/net
|
35
|
+
into tmail/interface as it makes more sense to have
|
36
|
+
it there.
|
37
|
+
|
38
|
+
Closed 15643 - TMail::Mail#reply_addresses was
|
39
|
+
returning an empty array if reply_to was set to nil
|
40
|
+
(ie, the header field existed but was empty) instead
|
41
|
+
of returning the from address or default.
|
42
|
+
|
43
|
+
Removed base64.c after doing profiling on several
|
44
|
+
platforms and finding out that the Ruby inbuilt
|
45
|
+
version is just as fast (varies per platform but
|
46
|
+
all in all about the same speed.)
|
47
|
+
|
48
|
+
Renamed the Scanner_C extension to MailScanner.
|
49
|
+
|
50
|
+
New release adds extensive new documentation to
|
51
|
+
mainly the TMail::Mail class, approximately 500
|
52
|
+
lines of examples have been included in the RDoc.
|
53
|
+
|
54
|
+
Added a default value to TMail::Mail#sender method
|
55
|
+
to allow arbitrary defaults to be passed into the
|
56
|
+
method in alignment with all the other mail interface
|
57
|
+
methods.
|
58
|
+
|
59
|
+
Made base64_decode and base64_encode into ! versions
|
60
|
+
as they are destructive on the mail body (encodes the
|
61
|
+
body to base64 or decodes it), made aliases for
|
62
|
+
base64_decode and base64_encode to point back to the
|
63
|
+
bang versions. Doing this with a view to change
|
64
|
+
base64_encode to a non destructive version
|
65
|
+
(returns the encoded body) in future versions.
|
66
|
+
|
67
|
+
See the changelog for previous changes.
|
68
|
+
|
69
|
+
|
70
|
+
Bug Reports / Fixes:
|
71
|
+
----------------------
|
72
|
+
|
73
|
+
As always, we really welcome any bug reports or code
|
74
|
+
for patches you have created. Please submit anything
|
75
|
+
you find through our RubyForge tracker project which
|
76
|
+
you can get to from our website:
|
77
|
+
|
78
|
+
http://tmail.rubyforge.org/
|
79
|
+
|
80
|
+
|
81
|
+
We hope you enjoy this release!
|
82
|
+
|
83
|
+
|
84
|
+
The TMail Team.
|
data/README
CHANGED
@@ -127,10 +127,14 @@ You can just call to_s on any email to have it serialized out as a single string
|
|
127
127
|
* C compiler if you want the Ruby extensions for Scanner and Base64
|
128
128
|
* Ruby 1.8 or later
|
129
129
|
|
130
|
-
==
|
130
|
+
== INSTALLATION:
|
131
131
|
|
132
132
|
* sudo gem install tmail
|
133
133
|
|
134
|
+
Or manually,
|
135
|
+
|
136
|
+
* sudo script/setup
|
137
|
+
|
134
138
|
== LICENSE:
|
135
139
|
|
136
140
|
(The MIT License)
|
@@ -155,3 +159,4 @@ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
155
159
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
156
160
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
157
161
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
162
|
+
|
data/ext/Makefile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
#
|
2
|
+
# ext/tmail/Makefile
|
3
|
+
#
|
4
|
+
|
5
|
+
.PHONY: mailscanner clean distclean
|
6
|
+
|
7
|
+
all: mailscanner
|
8
|
+
|
9
|
+
mailscanner: mailscanner/tmail/Makefile
|
10
|
+
cd mailscanner/tmail; $(MAKE)
|
11
|
+
|
12
|
+
mailscanner/tmail/Makefile: mailscanner/tmail/extconf.rb
|
13
|
+
cd mailscanner/tmail; ruby extconf.rb
|
14
|
+
|
15
|
+
clean:
|
16
|
+
cd mailscanner/tmail; $(MAKE) clean
|
17
|
+
|
18
|
+
distclean:
|
19
|
+
cd mailscanner/tmail; $(MAKE) distclean
|
20
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
mailscanner.o: mailscanner.c $(hdrdir)/ruby.h $(topdir)/config.h $(hdrdir)/defines.h Makefile
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'mkmf'
|
2
|
+
require 'rbconfig'
|
3
|
+
|
4
|
+
extension_name = 'mailscanner'
|
5
|
+
|
6
|
+
arch = Config::CONFIG['sitearch']
|
7
|
+
|
8
|
+
windows = (/djgpp|(cyg|ms|bcc)win|mingw/ =~ arch)
|
9
|
+
|
10
|
+
if (ENV['NORUBYEXT'] == 'true')
|
11
|
+
File.open('Makefile', 'w') do |f|
|
12
|
+
f << "all:\n"
|
13
|
+
f << "install:\n"
|
14
|
+
end
|
15
|
+
else
|
16
|
+
#dir_config(extension_name)
|
17
|
+
if windows && ENV['make'].nil?
|
18
|
+
$LIBS += " msvcprt.lib"
|
19
|
+
else
|
20
|
+
$CFLAGS += " -D_FILE_OFFSET_BITS=64" #???
|
21
|
+
end
|
22
|
+
create_makefile(extension_name)
|
23
|
+
end
|
24
|
+
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
|
3
|
-
|
3
|
+
mailscanner.c
|
4
4
|
|
5
5
|
Copyright (c) 1998-2007 Minero Aoki
|
6
6
|
|
@@ -19,7 +19,7 @@
|
|
19
19
|
#include "re.h"
|
20
20
|
|
21
21
|
|
22
|
-
#define TMAIL_VERSION "0.
|
22
|
+
#define TMAIL_VERSION "0.11.0"
|
23
23
|
|
24
24
|
static VALUE MailScanner;
|
25
25
|
static VALUE ScanError;
|
@@ -58,7 +58,7 @@ mails_free(sc)
|
|
58
58
|
|
59
59
|
/*
|
60
60
|
* Document-method: mails_s_new
|
61
|
-
*
|
61
|
+
*
|
62
62
|
* Creates a new mail
|
63
63
|
*
|
64
64
|
*/
|
@@ -100,7 +100,7 @@ mails_s_new(klass, str, ident, cmt)
|
|
100
100
|
|
101
101
|
/*
|
102
102
|
* Document-method: mails_debug_get
|
103
|
-
*
|
103
|
+
*
|
104
104
|
* TODO: Documentation needed
|
105
105
|
*
|
106
106
|
*/
|
@@ -119,7 +119,7 @@ mails_debug_get(self)
|
|
119
119
|
|
120
120
|
/*
|
121
121
|
* Document-method: mails_debug_set
|
122
|
-
*
|
122
|
+
*
|
123
123
|
* TODO: Documentation needed
|
124
124
|
*
|
125
125
|
*/
|
@@ -538,7 +538,7 @@ cstr2symbol(str)
|
|
538
538
|
}
|
539
539
|
|
540
540
|
void
|
541
|
-
|
541
|
+
Init_mailscanner()
|
542
542
|
{
|
543
543
|
VALUE TMail;
|
544
544
|
VALUE tmp;
|
@@ -549,7 +549,7 @@ Init_scanner_c()
|
|
549
549
|
else {
|
550
550
|
TMail = rb_define_module("TMail");
|
551
551
|
}
|
552
|
-
MailScanner = rb_define_class_under(TMail, "
|
552
|
+
MailScanner = rb_define_class_under(TMail, "MailScanner", rb_cObject);
|
553
553
|
|
554
554
|
tmp = rb_str_new2(TMAIL_VERSION);
|
555
555
|
rb_obj_freeze(tmp);
|
@@ -580,3 +580,4 @@ Init_scanner_c()
|
|
580
580
|
tok_id = cstr2symbol("ID");
|
581
581
|
tok_for = cstr2symbol("FOR");
|
582
582
|
}
|
583
|
+
|
data/lib/tmail/base64.rb
CHANGED
@@ -1,75 +1,52 @@
|
|
1
|
-
=
|
2
|
-
|
3
|
-
= Base64 handling class
|
4
|
-
|
5
|
-
=end
|
6
|
-
#--
|
7
|
-
# Copyright (c) 1998-2003 Minero Aoki <aamine@loveruby.net>
|
1
|
+
# = TITLE:
|
8
2
|
#
|
9
|
-
#
|
10
|
-
# a copy of this software and associated documentation files (the
|
11
|
-
# "Software"), to deal in the Software without restriction, including
|
12
|
-
# without limitation the rights to use, copy, modify, merge, publish,
|
13
|
-
# distribute, sublicense, and/or sell copies of the Software, and to
|
14
|
-
# permit persons to whom the Software is furnished to do so, subject to
|
15
|
-
# the following conditions:
|
3
|
+
# Base64
|
16
4
|
#
|
17
|
-
#
|
18
|
-
# included in all copies or substantial portions of the Software.
|
5
|
+
# = COPYRIGHT:
|
19
6
|
#
|
20
|
-
#
|
21
|
-
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
23
|
-
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
24
|
-
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
25
|
-
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
26
|
-
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
7
|
+
# Copyright (c) 1998-2003 Minero Aoki <aamine@loveruby.net>
|
27
8
|
#
|
28
|
-
#
|
29
|
-
#
|
30
|
-
|
31
|
-
|
32
|
-
|
9
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
10
|
+
# a copy of this software and associated documentation files (the
|
11
|
+
# "Software"), to deal in the Software without restriction, including
|
12
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
13
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
14
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
15
|
+
# the following conditions:
|
16
|
+
#
|
17
|
+
# The above copyright notice and this permission notice shall be
|
18
|
+
# included in all copies or substantial portions of the Software.
|
19
|
+
#
|
20
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
21
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
23
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
24
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
25
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
26
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27
|
+
#
|
28
|
+
# Note: Originally licensed under LGPL v2+. Using MIT license for Rails
|
29
|
+
# with permission of Minero Aoki.
|
33
30
|
|
31
|
+
#
|
34
32
|
module TMail
|
35
33
|
|
36
34
|
module Base64
|
37
35
|
|
38
36
|
module_function
|
39
37
|
|
40
|
-
def
|
38
|
+
def folding_encode( str, eol = "\n", limit = 60 )
|
41
39
|
[str].pack('m')
|
42
40
|
end
|
43
41
|
|
44
|
-
def
|
42
|
+
def encode( str )
|
45
43
|
[str].pack('m').tr( "\r\n", '' )
|
46
44
|
end
|
47
45
|
|
48
|
-
def
|
46
|
+
def decode( str, strict = false )
|
49
47
|
str.unpack('m').first
|
50
48
|
end
|
51
49
|
|
52
|
-
begin
|
53
|
-
require_arch('base64') #require 'tmail/base64.so'
|
54
|
-
alias folding_encode c_folding_encode
|
55
|
-
alias encode c_encode
|
56
|
-
alias decode c_decode
|
57
|
-
class << self
|
58
|
-
alias folding_encode c_folding_encode
|
59
|
-
alias encode c_encode
|
60
|
-
alias decode c_decode
|
61
|
-
end
|
62
|
-
rescue LoadError
|
63
|
-
alias folding_encode rb_folding_encode
|
64
|
-
alias encode rb_encode
|
65
|
-
alias decode rb_decode
|
66
|
-
class << self
|
67
|
-
alias folding_encode rb_folding_encode
|
68
|
-
alias encode rb_encode
|
69
|
-
alias decode rb_decode
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
50
|
end
|
74
51
|
|
75
52
|
end
|
data/lib/tmail/encode.rb
CHANGED
@@ -1,36 +1,35 @@
|
|
1
|
-
=
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
=
|
6
|
-
#--
|
7
|
-
# Copyright (c) 1998-2003 Minero Aoki <aamine@loveruby.net>
|
1
|
+
# = TITLE:
|
2
|
+
#
|
3
|
+
# Text Encoding class
|
4
|
+
#
|
5
|
+
# = COPYRIGHT:
|
8
6
|
#
|
9
|
-
#
|
10
|
-
# a copy of this software and associated documentation files (the
|
11
|
-
# "Software"), to deal in the Software without restriction, including
|
12
|
-
# without limitation the rights to use, copy, modify, merge, publish,
|
13
|
-
# distribute, sublicense, and/or sell copies of the Software, and to
|
14
|
-
# permit persons to whom the Software is furnished to do so, subject to
|
15
|
-
# the following conditions:
|
7
|
+
# Copyright (c) 1998-2003 Minero Aoki <aamine@loveruby.net>
|
16
8
|
#
|
17
|
-
#
|
18
|
-
#
|
9
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
10
|
+
# a copy of this software and associated documentation files (the
|
11
|
+
# "Software"), to deal in the Software without restriction, including
|
12
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
13
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
14
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
15
|
+
# the following conditions:
|
19
16
|
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
23
|
-
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
24
|
-
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
25
|
-
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
26
|
-
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
17
|
+
# The above copyright notice and this permission notice shall be
|
18
|
+
# included in all copies or substantial portions of the Software.
|
27
19
|
#
|
28
|
-
#
|
29
|
-
#
|
30
|
-
|
20
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
21
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
23
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
24
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
25
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
26
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27
|
+
#
|
28
|
+
# Note: Originally licensed under LGPL v2+. Using MIT license for Rails
|
29
|
+
# with permission of Minero Aoki.
|
31
30
|
|
32
31
|
require 'nkf'
|
33
|
-
require 'tmail/base64
|
32
|
+
require 'tmail/base64'
|
34
33
|
require 'tmail/stringio'
|
35
34
|
require 'tmail/utils'
|
36
35
|
|
@@ -52,25 +51,25 @@ module TMail
|
|
52
51
|
end
|
53
52
|
end
|
54
53
|
module_function :create_dest
|
55
|
-
|
54
|
+
|
56
55
|
def encoded( eol = "\r\n", charset = 'j', dest = nil )
|
57
56
|
accept_strategy Encoder, eol, charset, dest
|
58
57
|
end
|
59
|
-
|
58
|
+
|
60
59
|
def decoded( eol = "\n", charset = 'e', dest = nil )
|
61
60
|
# Turn the E-Mail into a string and return it with all
|
62
61
|
# encoded characters decoded. alias for to_s
|
63
62
|
accept_strategy Decoder, eol, charset, dest
|
64
63
|
end
|
65
|
-
|
64
|
+
|
66
65
|
alias to_s decoded
|
67
|
-
|
66
|
+
|
68
67
|
def accept_strategy( klass, eol, charset, dest = nil )
|
69
68
|
dest ||= ''
|
70
69
|
accept klass.new( create_dest(dest), charset, eol )
|
71
70
|
dest
|
72
71
|
end
|
73
|
-
|
72
|
+
|
74
73
|
end
|
75
74
|
|
76
75
|
|
@@ -121,7 +120,7 @@ module TMail
|
|
121
120
|
def header_body( str )
|
122
121
|
@f << decode(str)
|
123
122
|
end
|
124
|
-
|
123
|
+
|
125
124
|
def space
|
126
125
|
@f << ' '
|
127
126
|
end
|
@@ -131,7 +130,7 @@ module TMail
|
|
131
130
|
def lwsp( str )
|
132
131
|
@f << str
|
133
132
|
end
|
134
|
-
|
133
|
+
|
135
134
|
def meta( str )
|
136
135
|
@f << str
|
137
136
|
end
|
@@ -203,7 +202,7 @@ module TMail
|
|
203
202
|
def preserve_quotes=( bool )
|
204
203
|
@preserve_quotes
|
205
204
|
end
|
206
|
-
|
205
|
+
|
207
206
|
def preserve_quotes
|
208
207
|
@preserve_quotes
|
209
208
|
end
|
@@ -379,7 +378,7 @@ module TMail
|
|
379
378
|
i += 1
|
380
379
|
end
|
381
380
|
end
|
382
|
-
|
381
|
+
|
383
382
|
METHOD_ID = {
|
384
383
|
?j => :extract_J,
|
385
384
|
?e => :extract_E,
|
@@ -488,7 +487,7 @@ module TMail
|
|
488
487
|
# if it has text, fold there
|
489
488
|
# check the remaining text, if too long, fold again
|
490
489
|
# if it doesn't, then don't fold unless the line goes beyond 998 chars
|
491
|
-
|
490
|
+
|
492
491
|
# Check the text to see if there is whitespace, or if not
|
493
492
|
@wrapped_text = []
|
494
493
|
until @text == ''
|
@@ -500,7 +499,7 @@ module TMail
|
|
500
499
|
def fold_the_string
|
501
500
|
whitespace_location = @text =~ /\s/ || @text.length
|
502
501
|
# Is the location of the whitespace shorter than the RCF_2822_MAX_LENGTH?
|
503
|
-
# if there is no whitespace in the string, then this
|
502
|
+
# if there is no whitespace in the string, then this
|
504
503
|
unless mazsize(whitespace_location) <= 0
|
505
504
|
@wrapped_text << @text.slice!(0...whitespace_location)
|
506
505
|
# If it is not less, we have to wrap it destructively
|