sup 0.19.0 → 0.23
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.
- checksums.yaml +5 -5
- data/.gitignore +4 -1
- data/.gitmodules +3 -0
- data/.travis.yml +12 -6
- data/CONTRIBUTORS +28 -14
- data/Gemfile +5 -0
- data/History.txt +92 -0
- data/README.md +26 -5
- data/Rakefile +41 -1
- data/ReleaseNotes +17 -0
- data/bin/sup +12 -23
- data/bin/sup-add +15 -16
- data/bin/sup-config +30 -45
- data/bin/sup-dump +2 -3
- data/bin/sup-import-dump +5 -6
- data/bin/sup-sync +3 -4
- data/bin/sup-sync-back-maildir +3 -4
- data/bin/sup-tweak-labels +6 -7
- data/contrib/colorpicker.rb +0 -2
- data/contrib/completion/_sup.bash +102 -0
- data/devel/profile.rb +0 -1
- data/ext/mkrf_conf_xapian.rb +47 -0
- data/lib/sup.rb +10 -8
- data/lib/sup/buffer.rb +12 -0
- data/lib/sup/colormap.rb +5 -2
- data/lib/sup/contact.rb +4 -2
- data/lib/sup/crypto.rb +58 -16
- data/lib/sup/draft.rb +8 -8
- data/lib/sup/hook.rb +9 -9
- data/lib/sup/index.rb +20 -7
- data/lib/sup/label.rb +1 -1
- data/lib/sup/logger.rb +1 -1
- data/lib/sup/maildir.rb +16 -5
- data/lib/sup/mbox.rb +13 -5
- data/lib/sup/message.rb +36 -12
- data/lib/sup/message_chunks.rb +13 -4
- data/lib/sup/mode.rb +34 -28
- data/lib/sup/modes/contact_list_mode.rb +1 -0
- data/lib/sup/modes/edit_message_mode.rb +3 -2
- data/lib/sup/modes/forward_mode.rb +22 -3
- data/lib/sup/modes/line_cursor_mode.rb +1 -1
- data/lib/sup/modes/reply_mode.rb +3 -1
- data/lib/sup/modes/text_mode.rb +6 -1
- data/lib/sup/modes/thread_index_mode.rb +12 -2
- data/lib/sup/modes/thread_view_mode.rb +111 -14
- data/lib/sup/person.rb +68 -61
- data/lib/sup/search.rb +1 -1
- data/lib/sup/sent.rb +1 -1
- data/lib/sup/source.rb +1 -1
- data/lib/sup/util.rb +15 -94
- data/lib/sup/util/axe.rb +17 -0
- data/lib/sup/util/locale_fiddler.rb +24 -0
- data/lib/sup/util/ncurses.rb +3 -3
- data/lib/sup/version.rb +10 -1
- data/sup.gemspec +29 -11
- data/test/{messages → fixtures}/bad-content-transfer-encoding-1.eml +0 -0
- data/test/{messages → fixtures}/binary-content-transfer-encoding-2.eml +0 -0
- data/test/fixtures/blank-header-fields.eml +71 -0
- data/test/fixtures/contacts.txt +1 -0
- data/test/fixtures/mailing-list-header.eml +80 -0
- data/test/fixtures/malicious-attachment-names.eml +55 -0
- data/test/fixtures/missing-from-to.eml +18 -0
- data/test/{messages → fixtures}/missing-line.eml +0 -0
- data/test/fixtures/multi-part-2.eml +72 -0
- data/test/fixtures/multi-part.eml +61 -0
- data/test/fixtures/no-body.eml +18 -0
- data/test/fixtures/simple-message.eml +29 -0
- data/test/fixtures/text-attachments-with-charset.eml +46 -0
- data/test/fixtures/zimbra-quote-with-bottom-post.eml +27 -0
- data/test/gnupg_test_home/gpg.conf +3 -1
- data/test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key +0 -0
- data/test/gnupg_test_home/pubring.gpg +0 -0
- data/test/gnupg_test_home/receiver_pubring.gpg +0 -0
- data/test/gnupg_test_home/receiver_secring.gpg +0 -0
- data/test/gnupg_test_home/regen_keys.sh +89 -0
- data/test/gnupg_test_home/secring.gpg +0 -0
- data/test/gnupg_test_home/sup-test-2@foo.bar.asc +20 -17
- data/test/integration/test_maildir.rb +75 -0
- data/test/integration/test_mbox.rb +69 -0
- data/test/test_crypto.rb +14 -2
- data/test/test_header_parsing.rb +1 -1
- data/test/test_helper.rb +6 -3
- data/test/test_message.rb +115 -341
- data/test/test_messages_dir.rb +4 -28
- data/test/test_yaml_regressions.rb +1 -1
- data/test/unit/test_contact.rb +33 -0
- data/test/unit/test_locale_fiddler.rb +15 -0
- data/test/unit/test_person.rb +37 -0
- data/test/unit/util/test_query.rb +10 -4
- data/test/unit/util/test_string.rb +6 -0
- metadata +137 -53
- data/test/gnupg_test_home/receiver_trustdb.gpg +0 -0
- data/test/gnupg_test_home/trustdb.gpg +0 -0
data/lib/sup/search.rb
CHANGED
data/lib/sup/sent.rb
CHANGED
@@ -40,7 +40,7 @@ class SentLoader < MBox
|
|
40
40
|
|
41
41
|
def initialize
|
42
42
|
@filename = Redwood::SENT_FN
|
43
|
-
File.open(@filename, "w") { } unless File.
|
43
|
+
File.open(@filename, "w") { } unless File.exist? @filename
|
44
44
|
super "mbox://" + @filename, true, $config[:archive_sent]
|
45
45
|
end
|
46
46
|
|
data/lib/sup/source.rb
CHANGED
@@ -58,7 +58,7 @@ class Source
|
|
58
58
|
attr_accessor :id
|
59
59
|
|
60
60
|
def initialize uri, usual=true, archived=false, id=nil
|
61
|
-
raise ArgumentError, "id must be an integer: #{id.inspect}" unless id.is_a?
|
61
|
+
raise ArgumentError, "id must be an integer: #{id.inspect}" unless id.is_a? Integer if id
|
62
62
|
|
63
63
|
@uri = uri
|
64
64
|
@usual = usual
|
data/lib/sup/util.rb
CHANGED
@@ -8,17 +8,9 @@ require 'set'
|
|
8
8
|
require 'enumerator'
|
9
9
|
require 'benchmark'
|
10
10
|
require 'unicode'
|
11
|
+
require 'unicode/display_width'
|
11
12
|
require 'fileutils'
|
12
13
|
|
13
|
-
## time for some monkeypatching!
|
14
|
-
class Symbol
|
15
|
-
unless method_defined? :to_proc
|
16
|
-
def to_proc
|
17
|
-
proc { |obj, *args| obj.send(self, *args) }
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
14
|
class Lockfile
|
23
15
|
def gen_lock_id
|
24
16
|
Hash[
|
@@ -89,7 +81,7 @@ module RMail
|
|
89
81
|
end
|
90
82
|
|
91
83
|
def charset
|
92
|
-
if header.field?("content-type") && header.fetch("content-type") =~ /charset
|
84
|
+
if header.field?("content-type") && header.fetch("content-type") =~ /charset\s*=\s*"?(.*?)"?(;|$)/i
|
93
85
|
$1
|
94
86
|
end
|
95
87
|
end
|
@@ -170,13 +162,6 @@ module RMail
|
|
170
162
|
end
|
171
163
|
end
|
172
164
|
|
173
|
-
class Range
|
174
|
-
## only valid for integer ranges (unless I guess it's exclusive)
|
175
|
-
def size
|
176
|
-
last - first + (exclude_end? ? 0 : 1)
|
177
|
-
end
|
178
|
-
end
|
179
|
-
|
180
165
|
class Module
|
181
166
|
def bool_reader *args
|
182
167
|
args.each { |sym| class_eval %{ def #{sym}?; @#{sym}; end } }
|
@@ -198,17 +183,6 @@ class Module
|
|
198
183
|
end
|
199
184
|
|
200
185
|
class Object
|
201
|
-
def ancestors
|
202
|
-
ret = []
|
203
|
-
klass = self.class
|
204
|
-
|
205
|
-
until klass == Object
|
206
|
-
ret << klass
|
207
|
-
klass = klass.superclass
|
208
|
-
end
|
209
|
-
ret
|
210
|
-
end
|
211
|
-
|
212
186
|
## "k combinator"
|
213
187
|
def returning x; yield x; x; end
|
214
188
|
|
@@ -266,21 +240,14 @@ end
|
|
266
240
|
|
267
241
|
class String
|
268
242
|
def display_length
|
269
|
-
@display_length ||= Unicode.
|
270
|
-
|
271
|
-
# if Unicode.width fails and returns -1, fall back to
|
272
|
-
# regular String#length, see pull-request: #256.
|
273
|
-
if @display_length < 0
|
274
|
-
@display_length = self.length
|
275
|
-
end
|
276
|
-
|
277
|
-
@display_length
|
243
|
+
@display_length ||= Unicode::DisplayWidth.of(self)
|
278
244
|
end
|
279
245
|
|
280
246
|
def slice_by_display_length len
|
281
247
|
each_char.each_with_object "" do |c, buffer|
|
282
|
-
len -= c
|
283
|
-
buffer
|
248
|
+
len -= Unicode::DisplayWidth.of(c)
|
249
|
+
return buffer if len < 0
|
250
|
+
buffer << c
|
284
251
|
end
|
285
252
|
end
|
286
253
|
|
@@ -368,13 +335,14 @@ class String
|
|
368
335
|
ret = []
|
369
336
|
s = self
|
370
337
|
while s.display_length > len
|
371
|
-
|
338
|
+
slice = s.slice_by_display_length(len)
|
339
|
+
cut = slice.rindex(/\s/)
|
372
340
|
if cut
|
373
341
|
ret << s[0 ... cut]
|
374
342
|
s = s[(cut + 1) .. -1]
|
375
343
|
else
|
376
|
-
ret <<
|
377
|
-
s = s[
|
344
|
+
ret << slice
|
345
|
+
s = s[slice.length .. -1]
|
378
346
|
end
|
379
347
|
end
|
380
348
|
ret << s
|
@@ -382,8 +350,6 @@ class String
|
|
382
350
|
|
383
351
|
# Fix the damn string! make sure it is valid utf-8, then convert to
|
384
352
|
# user encoding.
|
385
|
-
#
|
386
|
-
# Not Ruby 1.8 compatible
|
387
353
|
def fix_encoding!
|
388
354
|
# first try to encode to utf-8 from whatever current encoding
|
389
355
|
encode!('UTF-8', :invalid => :replace, :undef => :replace)
|
@@ -406,8 +372,6 @@ class String
|
|
406
372
|
|
407
373
|
# transcode the string if original encoding is know
|
408
374
|
# fix if broken.
|
409
|
-
#
|
410
|
-
# Not Ruby 1.8 compatible
|
411
375
|
def transcode to_encoding, from_encoding
|
412
376
|
begin
|
413
377
|
encode!(to_encoding, from_encoding, :invalid => :replace, :undef => :replace)
|
@@ -474,13 +438,6 @@ class String
|
|
474
438
|
out = out.fix_encoding! # this should now be an utf-8 string of ascii
|
475
439
|
# compat chars.
|
476
440
|
end
|
477
|
-
|
478
|
-
unless method_defined? :ascii_only?
|
479
|
-
def ascii_only?
|
480
|
-
size.times { |i| return false if self[i] & 128 != 0 }
|
481
|
-
return true
|
482
|
-
end
|
483
|
-
end
|
484
441
|
end
|
485
442
|
|
486
443
|
class Numeric
|
@@ -498,18 +455,18 @@ class Numeric
|
|
498
455
|
|
499
456
|
def to_human_size
|
500
457
|
if self < 1024
|
501
|
-
to_s + "
|
458
|
+
to_s + "B"
|
502
459
|
elsif self < (1024 * 1024)
|
503
|
-
(self / 1024).to_s + "
|
460
|
+
(self / 1024).to_s + "KiB"
|
504
461
|
elsif self < (1024 * 1024 * 1024)
|
505
|
-
(self / 1024 / 1024).to_s + "
|
462
|
+
(self / 1024 / 1024).to_s + "MiB"
|
506
463
|
else
|
507
|
-
(self / 1024 / 1024 / 1024).to_s + "
|
464
|
+
(self / 1024 / 1024 / 1024).to_s + "GiB"
|
508
465
|
end
|
509
466
|
end
|
510
467
|
end
|
511
468
|
|
512
|
-
class
|
469
|
+
class Integer
|
513
470
|
def to_character
|
514
471
|
if self < 128 && self >= 0
|
515
472
|
chr
|
@@ -518,12 +475,6 @@ class Fixnum
|
|
518
475
|
end
|
519
476
|
end
|
520
477
|
|
521
|
-
unless method_defined?(:ord)
|
522
|
-
def ord
|
523
|
-
self
|
524
|
-
end
|
525
|
-
end
|
526
|
-
|
527
478
|
## hacking the english language
|
528
479
|
def pluralize s
|
529
480
|
to_s + " " +
|
@@ -607,10 +558,6 @@ module Enumerable
|
|
607
558
|
end
|
608
559
|
end
|
609
560
|
|
610
|
-
unless Object.const_defined? :Enumerator
|
611
|
-
Enumerator = Enumerable::Enumerator
|
612
|
-
end
|
613
|
-
|
614
561
|
class Array
|
615
562
|
def flatten_one_level
|
616
563
|
inject([]) { |a, e| a + e }
|
@@ -706,32 +653,6 @@ class SavingHash
|
|
706
653
|
defer_all_other_method_calls_to :hash
|
707
654
|
end
|
708
655
|
|
709
|
-
class OrderedHash < Hash
|
710
|
-
alias_method :store, :[]=
|
711
|
-
alias_method :each_pair, :each
|
712
|
-
attr_reader :keys
|
713
|
-
|
714
|
-
def initialize *a
|
715
|
-
@keys = []
|
716
|
-
a.each { |k, v| self[k] = v }
|
717
|
-
end
|
718
|
-
|
719
|
-
def []= key, val
|
720
|
-
@keys << key unless member?(key)
|
721
|
-
super
|
722
|
-
end
|
723
|
-
|
724
|
-
def values; keys.map { |k| self[k] } end
|
725
|
-
def index key; @keys.index key end
|
726
|
-
|
727
|
-
def delete key
|
728
|
-
@keys.delete key
|
729
|
-
super
|
730
|
-
end
|
731
|
-
|
732
|
-
def each; @keys.each { |k| yield k, self[k] } end
|
733
|
-
end
|
734
|
-
|
735
656
|
## easy thread-safe class for determining who's the "winner" in a race (i.e.
|
736
657
|
## first person to hit the finish line
|
737
658
|
class FinishLine
|
data/lib/sup/util/axe.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'highline'
|
2
|
+
@cli = HighLine.new
|
3
|
+
|
4
|
+
def axe q, default=nil
|
5
|
+
question = if default && !default.empty?
|
6
|
+
"#{q} (enter for \"#{default}\"): "
|
7
|
+
else
|
8
|
+
"#{q}: "
|
9
|
+
end
|
10
|
+
ans = @cli.ask question
|
11
|
+
ans.empty? ? default : ans.to_s
|
12
|
+
end
|
13
|
+
|
14
|
+
def axe_yes q, default="n"
|
15
|
+
axe(q, default) =~ /^y|yes$/i
|
16
|
+
end
|
17
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
## the following magic enables wide characters when used with a ruby
|
2
|
+
## ncurses.so that's been compiled against libncursesw. (note the w.) why
|
3
|
+
## this works, i have no idea. much like pretty much every aspect of
|
4
|
+
## dealing with curses. cargo cult programming at its best.
|
5
|
+
require 'fiddle'
|
6
|
+
require 'fiddle/import'
|
7
|
+
|
8
|
+
module LocaleFiddler
|
9
|
+
extend Fiddle::Importer
|
10
|
+
|
11
|
+
SETLOCALE_LIB = case RbConfig::CONFIG['arch']
|
12
|
+
when /darwin/; "libc.dylib"
|
13
|
+
when /cygwin/; "cygwin1.dll"
|
14
|
+
when /freebsd/; "libc.so.7"
|
15
|
+
else; "libc.so.6"
|
16
|
+
end
|
17
|
+
|
18
|
+
dlload SETLOCALE_LIB
|
19
|
+
extern "char *setlocale(int, char const *)"
|
20
|
+
|
21
|
+
def setlocale(type, string)
|
22
|
+
LocaleFiddler.setlocale(type, string)
|
23
|
+
end
|
24
|
+
end
|
data/lib/sup/util/ncurses.rb
CHANGED
@@ -76,7 +76,7 @@ module Ncurses
|
|
76
76
|
@status = status
|
77
77
|
c = "" if c.nil?
|
78
78
|
return super("") if status == Ncurses::ERR
|
79
|
-
c = enc_char(c) if c.is_a?(
|
79
|
+
c = enc_char(c) if c.is_a?(Integer)
|
80
80
|
super c.length > 1 ? c[0,1] : c
|
81
81
|
end
|
82
82
|
|
@@ -89,7 +89,7 @@ module Ncurses
|
|
89
89
|
else
|
90
90
|
@status = Ncurses::OK
|
91
91
|
c = "" if c.nil?
|
92
|
-
c = enc_char(c) if c.is_a?(
|
92
|
+
c = enc_char(c) if c.is_a?(Integer)
|
93
93
|
super c.length > 1 ? c[0,1] : c
|
94
94
|
end
|
95
95
|
end
|
@@ -260,7 +260,7 @@ module Ncurses
|
|
260
260
|
## Ncurses::Form.form_driver_w wrapper for printable characters.
|
261
261
|
def form_driver_char c
|
262
262
|
form_driver CharCode.character(c)
|
263
|
-
#c.is_a?(
|
263
|
+
#c.is_a?(Integer) ? c : c.ord
|
264
264
|
end
|
265
265
|
|
266
266
|
## Ncurses::Form.form_driver_w wrapper for charcodes.
|
data/lib/sup/version.rb
CHANGED
data/sup.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.authors = ["William Morgan", "Gaute Hope", "Hamish Downer", "Matthieu Rakotojaona"]
|
10
10
|
s.email = "supmua@googlegroups.com"
|
11
11
|
s.summary = "A console-based email client with the best features of GMail, mutt and Emacs"
|
12
|
-
s.homepage = "
|
13
|
-
s.license = 'GPL-2'
|
12
|
+
s.homepage = "https://sup-heliotrope.github.io/"
|
13
|
+
s.license = 'GPL-2.0'
|
14
14
|
s.description = <<-DESC
|
15
15
|
Sup is a console-based email client for people with a lot of email.
|
16
16
|
|
@@ -25,29 +25,47 @@ DESC
|
|
25
25
|
SUP: please note that our old mailing lists have been shut down,
|
26
26
|
re-subscribe to supmua@googlegroups.com to discuss and follow
|
27
27
|
updates on sup (send email to: supmua+subscribe@googlegroups.com).
|
28
|
+
|
29
|
+
OpenBSD users:
|
30
|
+
If your operating system is OpenBSD you have some
|
31
|
+
additional, manual steps to do before Sup will work, see:
|
32
|
+
https://github.com/sup-heliotrope/sup/wiki/Installation%3A-OpenBSD.
|
28
33
|
EOF
|
29
34
|
|
30
35
|
s.files = `git ls-files -z`.split("\x0")
|
31
36
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
32
37
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
33
38
|
s.require_paths = ["lib"]
|
39
|
+
s.extra_rdoc_files = Dir.glob("man/*")
|
40
|
+
|
41
|
+
s.required_ruby_version = '>= 2.0.0'
|
34
42
|
|
35
|
-
|
43
|
+
# this is here to support skipping the xapian-ruby installation on OpenBSD
|
44
|
+
# because the xapian-ruby gem doesn't install on OpenBSD, you must install
|
45
|
+
# xapian-core and xapian-bindings manually on OpenBSD
|
46
|
+
# see https://github.com/sup-heliotrope/sup/wiki/Installation%3A-OpenBSD
|
47
|
+
# and https://en.wikibooks.org/wiki/Ruby_Programming/RubyGems#How_to_install_different_versions_of_gems_depending_on_which_version_of_ruby_the_installee_is_using
|
48
|
+
s.extensions = %w[ext/mkrf_conf_xapian.rb]
|
49
|
+
|
50
|
+
## remember to update the xapian dependency in
|
51
|
+
## ext/mkrf_conf_xapian.rb and Gemfile.
|
36
52
|
|
37
|
-
s.add_runtime_dependency "xapian-ruby", "~> 1.2.15"
|
38
53
|
s.add_runtime_dependency "ncursesw", "~> 1.4.0"
|
39
|
-
s.add_runtime_dependency "rmail
|
54
|
+
s.add_runtime_dependency "rmail", "~> 1.1"
|
40
55
|
s.add_runtime_dependency "highline"
|
41
|
-
s.add_runtime_dependency "
|
56
|
+
s.add_runtime_dependency "optimist"
|
42
57
|
s.add_runtime_dependency "lockfile"
|
43
|
-
s.add_runtime_dependency "mime-types", "
|
58
|
+
s.add_runtime_dependency "mime-types", "> 2.0"
|
44
59
|
s.add_runtime_dependency "locale", "~> 2.0"
|
45
|
-
s.add_runtime_dependency "chronic"
|
60
|
+
s.add_runtime_dependency "chronic"
|
46
61
|
s.add_runtime_dependency "unicode", "~> 0.4.4"
|
62
|
+
s.add_runtime_dependency "unicode-display_width"
|
47
63
|
|
48
|
-
s.add_development_dependency "bundler", "
|
64
|
+
s.add_development_dependency "bundler", ">= 1.3", "< 3"
|
49
65
|
s.add_development_dependency "rake"
|
50
|
-
s.add_development_dependency
|
51
|
-
s.add_development_dependency "rr", "~> 1.
|
66
|
+
s.add_development_dependency 'minitest', '~> 5.5.1'
|
67
|
+
s.add_development_dependency "rr", "~> 1.1"
|
52
68
|
s.add_development_dependency "gpgme", ">= 2.0.2"
|
69
|
+
s.add_development_dependency "pry"
|
70
|
+
|
53
71
|
end
|
File without changes
|
File without changes
|
@@ -0,0 +1,71 @@
|
|
1
|
+
Return-Path: <monitor-list-bounces@widget.com>
|
2
|
+
X-Original-To: nobody@localhost
|
3
|
+
Delivered-To: nobody@localhost.eng.widget.com
|
4
|
+
Received: from localhost (localhost.localdomain [127.0.0.1])
|
5
|
+
by soquel.eng.widget.com (Postfix) with ESMTP id 609BC13C0DB1
|
6
|
+
for <nobody@localhost>; Thu, 19 Mar 2009 13:43:21 -0700 (PDT)
|
7
|
+
MIME-Version: 1.0
|
8
|
+
Received: from pa-excas-vip.widget.com [10.16.67.200]
|
9
|
+
by localhost with IMAP (fetchmail-6.2.5)
|
10
|
+
for nobody@localhost (single-drop); Thu, 19 Mar 2009 13:43:21 -0700 (PDT)
|
11
|
+
Received: from pa-exht01.widget.com (10.113.81.167) by pa-excaht11.widget.com
|
12
|
+
(10.113.81.197) with Microsoft SMTP Server (TLS) id 8.1.311.2; Thu, 19 Mar
|
13
|
+
2009 13:42:30 -0700
|
14
|
+
Received: from mailman2.widget.com (10.16.64.159) by pa-exht01.widget.com
|
15
|
+
(10.113.81.167) with Microsoft SMTP Server id 8.1.336.0; Thu, 19 Mar 2009
|
16
|
+
13:42:30 -0700
|
17
|
+
Received: by mailman2.widget.com (Postfix) id 47095AE30856; Thu, 19 Mar 2009
|
18
|
+
13:42:29 -0700 (PDT)
|
19
|
+
Received: from countchocula.widget.com (localhost.localdomain [127.0.0.1]) by
|
20
|
+
mailman2.widget.com (Postfix) with ESMTP id 5F782ABC5948; Thu, 19 Mar 2009
|
21
|
+
13:42:28 -0700 (PDT)
|
22
|
+
Received: from mailhost4.widget.com (mailhost4.widget.com [10.16.67.124]) by
|
23
|
+
mailman2.widget.com (Postfix) with ESMTP id 6CDCCABC5948 for
|
24
|
+
<monitor-list@mailman2.widget.com>; Thu, 19 Mar 2009 13:42:26 -0700 (PDT)
|
25
|
+
Received: by mailhost4.widget.com (Postfix) id 2364AC9AC4; Thu, 19 Mar 2009
|
26
|
+
13:42:26 -0700 (PDT)
|
27
|
+
Received: from pa-exht01.widget.com (pa-exht01.widget.com [10.113.81.167]) by
|
28
|
+
mailhost4.widget.com (Postfix) with ESMTP id 17A68C9AC3 for
|
29
|
+
<monitor-list@widget.com>; Thu, 19 Mar 2009 13:42:26 -0700 (PDT)
|
30
|
+
Received: from PA-EXMBX04.widget.com ([10.113.81.142]) by pa-exht01.widget.com
|
31
|
+
([10.113.81.167]) with mapi; Thu, 19 Mar 2009 13:42:26 -0700
|
32
|
+
From: Some User <someuser@widget.com>
|
33
|
+
To: "monitor-list@widget.com" <monitor-list@widget.com>
|
34
|
+
Sender: "monitor-list-bounces@widget.com" <monitor-list-bounces@widget.com>
|
35
|
+
Date: Thu, 19 Mar 2009 13:42:25 -0700
|
36
|
+
Subject: Looking for a mac
|
37
|
+
Thread-Topic: Looking for a mac
|
38
|
+
Thread-Index: AQHJqNM1xIqqjNRWuUCUBaxzPFK5eQ==
|
39
|
+
Message-ID:
|
40
|
+
<D3C12B2AD838B44DA9D6B2CA334246D011E72A73A4@PA-EXMBX04.widget.com>
|
41
|
+
List-Help: <mailto:monitor-list-request@widget.com?subject=help>
|
42
|
+
List-Subscribe: <http://mailman2.widget.com/mailman/listinfo/monitor-list>,
|
43
|
+
<mailto:monitor-list-request@widget.com?subject=subscribe>
|
44
|
+
List-Unsubscribe:
|
45
|
+
<http://mailman2.widget.com/mailman/listinfo/monitor-list>,
|
46
|
+
<mailto:monitor-list-request@widget.com?subject=unsubscribe>
|
47
|
+
Accept-Language: en-US
|
48
|
+
Content-Language: en-US
|
49
|
+
X-MS-Exchange-Organization-AuthAs: Anonymous
|
50
|
+
X-MS-Exchange-Organization-AuthSource: pa-exht01.widget.com
|
51
|
+
X-MS-Has-Attach:
|
52
|
+
X-Auto-Response-Suppress: All
|
53
|
+
X-MS-TNEF-Correlator:
|
54
|
+
acceptlanguage: en-US
|
55
|
+
delivered-to: monitor-list@widget.com
|
56
|
+
errors-to: monitor-list-bounces@widget.com
|
57
|
+
list-id: engineering monitor related <monitor-list.widget.com>
|
58
|
+
x-mailman-version: 2.1.8
|
59
|
+
x-beenthere: monitor-list@widget.com
|
60
|
+
x-original-to: monitor-list@mailman2.widget.com
|
61
|
+
list-post: <mailto:monitor-list@widget.com>
|
62
|
+
list-archive: <http://mailman2.widget.com/pipermail/monitor-list>
|
63
|
+
Content-Type: text/plain; charset="us-ascii"
|
64
|
+
Content-Transfer-Encoding: quoted-printable
|
65
|
+
|
66
|
+
Hi all,
|
67
|
+
|
68
|
+
Just wondering if anybody can lend me a mac to reproduce PR 384931 ?
|
69
|
+
Thanks.
|
70
|
+
|
71
|
+
Michael=
|