* [sup-devel] Ruby 1.9 encoding fixes
@ 2009-12-31 23:36 Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 01/10] open mail source files as binary Rich Lane
2010-01-01 19:09 ` [sup-devel] Ruby 1.9 encoding fixes William Morgan
0 siblings, 2 replies; 19+ messages in thread
From: Rich Lane @ 2009-12-31 23:36 UTC (permalink / raw)
To: sup-devel
This patchset fixes the string encoding issues on Ruby 1.9.1. The general
strategy is to treat raw messsages as binary and ensure that everything is
passed through Iconv or String#ascii before being displayed or stored. I tested
an earlier version of this patchset (with more debug checks) on around 700
thousand mails including plenty of spam. It'd be nice if someone tested
signed/encrypted mails to make sure I didn't break anything there.
The only effect on Ruby 1.8 should be asciifying the raw header/message view,
and maybe a little speedup due to reusing the RMail message header instead of
parsing it ourselves.
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* [sup-devel] [PATCH 01/10] open mail source files as binary
2009-12-31 23:36 [sup-devel] Ruby 1.9 encoding fixes Rich Lane
@ 2009-12-31 23:36 ` Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 02/10] display_size is just size on Ruby 1.9 Rich Lane
2010-01-01 20:59 ` [sup-devel] [PATCH 01/10] open mail source files as binary Anthony Martinez
2010-01-01 19:09 ` [sup-devel] Ruby 1.9 encoding fixes William Morgan
1 sibling, 2 replies; 19+ messages in thread
From: Rich Lane @ 2009-12-31 23:36 UTC (permalink / raw)
To: sup-devel
---
lib/sup/maildir.rb | 4 ++--
lib/sup/mbox/loader.rb | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/sup/maildir.rb b/lib/sup/maildir.rb
index c2bd27a..0852576 100644
--- a/lib/sup/maildir.rb
+++ b/lib/sup/maildir.rb
@@ -59,7 +59,7 @@ class Maildir < Source
File.stat(tmp_path)
rescue Errno::ENOENT #this is what we want.
begin
- File.open(tmp_path, 'w') do |f|
+ File.open(tmp_path, 'wb:BINARY') do |f|
yield f #provide a writable interface for the caller
f.fsync
end
@@ -207,7 +207,7 @@ private
def with_file_for id
fn = @ids_to_fns[id] or raise OutOfSyncSourceError, "No such id: #{id.inspect}."
begin
- File.open(fn) { |f| yield f }
+ File.open(fn, 'rb:BINARY') { |f| yield f }
rescue SystemCallError, IOError => e
raise FatalSourceError, "Problem reading file for id #{id.inspect}: #{fn.inspect}: #{e.message}."
end
diff --git a/lib/sup/mbox/loader.rb b/lib/sup/mbox/loader.rb
index 520e2ec..ec28d3b 100644
--- a/lib/sup/mbox/loader.rb
+++ b/lib/sup/mbox/loader.rb
@@ -22,7 +22,7 @@ class Loader < Source
raise ArgumentError, "not an mbox uri" unless uri.scheme == "mbox"
raise ArgumentError, "mbox URI ('#{uri}') cannot have a host: #{uri.host}" if uri.host
raise ArgumentError, "mbox URI must have a path component" unless uri.path
- @f = File.open uri.path
+ @f = File.open uri.path, 'rb:BINARY'
@path = uri.path
else
@f = uri_or_fp
@@ -114,7 +114,7 @@ class Loader < Source
def store_message date, from_email, &block
need_blank = File.exists?(@filename) && !File.zero?(@filename)
- File.open(@filename, "a") do |f|
+ File.open(@filename, "ab:BINARY") do |f|
f.puts if need_blank
f.puts "From #{from_email} #{date.rfc2822}"
yield f
--
1.6.3.3
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* [sup-devel] [PATCH 02/10] display_size is just size on Ruby 1.9
2009-12-31 23:36 ` [sup-devel] [PATCH 01/10] open mail source files as binary Rich Lane
@ 2009-12-31 23:36 ` Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 03/10] add String#check Rich Lane
2010-01-01 20:59 ` [sup-devel] [PATCH 01/10] open mail source files as binary Anthony Martinez
1 sibling, 1 reply; 19+ messages in thread
From: Rich Lane @ 2009-12-31 23:36 UTC (permalink / raw)
To: sup-devel
---
lib/sup/util.rb | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
index f99e1c1..5f68d0d 100644
--- a/lib/sup/util.rb
+++ b/lib/sup/util.rb
@@ -177,7 +177,7 @@ class String
## nasty multibyte hack for ruby 1.8. if it's utf-8, split into chars using
## the utf8 regex and count those. otherwise, use the byte length.
def display_length
- if $encoding == "UTF-8" || $encoding == "utf8"
+ if RUBY_VERSION < '1.9.1' && ($encoding == "UTF-8" || $encoding == "utf8")
scan(/./u).size
else
size
--
1.6.3.3
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* [sup-devel] [PATCH 03/10] add String#check
2009-12-31 23:36 ` [sup-devel] [PATCH 02/10] display_size is just size on Ruby 1.9 Rich Lane
@ 2009-12-31 23:36 ` Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 04/10] add String#ascii Rich Lane
0 siblings, 1 reply; 19+ messages in thread
From: Rich Lane @ 2009-12-31 23:36 UTC (permalink / raw)
To: sup-devel
---
lib/sup/util.rb | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
index 5f68d0d..fc90350 100644
--- a/lib/sup/util.rb
+++ b/lib/sup/util.rb
@@ -296,6 +296,16 @@ class String
##
## split_on will be passed to String#split, so you can leave this nil for space.
def to_set_of_symbols split_on=nil; Set.new split(split_on).map { |x| x.strip.intern } end
+
+ class CheckError < ArgumentError; end
+ def check
+ begin
+ fail "unexpected encoding #{encoding}" if respond_to?(:encoding) && !(encoding == Encoding::UTF_8 || encoding == Encoding::ASCII)
+ fail "invalid encoding" if respond_to?(:valid_encoding?) && !valid_encoding?
+ rescue
+ raise CheckError.new($!.message)
+ end
+ end
end
class Numeric
--
1.6.3.3
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* [sup-devel] [PATCH 04/10] add String#ascii
2009-12-31 23:36 ` [sup-devel] [PATCH 03/10] add String#check Rich Lane
@ 2009-12-31 23:36 ` Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 05/10] fixup Iconv#easy_decode for Ruby 1.9 Rich Lane
0 siblings, 1 reply; 19+ messages in thread
From: Rich Lane @ 2009-12-31 23:36 UTC (permalink / raw)
To: sup-devel
---
lib/sup/util.rb | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
index fc90350..508bcee 100644
--- a/lib/sup/util.rb
+++ b/lib/sup/util.rb
@@ -306,6 +306,19 @@ class String
raise CheckError.new($!.message)
end
end
+
+ def ascii
+ out = ""
+ each_byte do |b|
+ if (b & 128) != 0
+ out << "\\x#{b.to_s 16}"
+ else
+ out << b.chr
+ end
+ end
+ out.force_encoding Encoding::UTF_8 if out.respond_to? :force_encoding
+ out
+ end
end
class Numeric
--
1.6.3.3
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* [sup-devel] [PATCH 05/10] fixup Iconv#easy_decode for Ruby 1.9
2009-12-31 23:36 ` [sup-devel] [PATCH 04/10] add String#ascii Rich Lane
@ 2009-12-31 23:36 ` Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 06/10] add String#transcode Rich Lane
0 siblings, 1 reply; 19+ messages in thread
From: Rich Lane @ 2009-12-31 23:36 UTC (permalink / raw)
To: sup-devel
---
lib/sup/util.rb | 21 +++++++++++++--------
1 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
index 508bcee..560ac73 100644
--- a/lib/sup/util.rb
+++ b/lib/sup/util.rb
@@ -664,21 +664,26 @@ class FinishLine
end
class Iconv
- def self.easy_decode target, charset, text
- return text if charset =~ /^(x-unknown|unknown[-_ ]?8bit|ascii[-_ ]?7[-_ ]?bit)$/i
- charset = case charset
+ def self.easy_decode target, orig_charset, text
+ if text.respond_to? :force_encoding
+ text = text.dup
+ text.force_encoding Encoding::BINARY
+ end
+ charset = case orig_charset
when /UTF[-_ ]?8/i then "utf-8"
when /(iso[-_ ])?latin[-_ ]?1$/i then "ISO-8859-1"
when /iso[-_ ]?8859[-_ ]?15/i then 'ISO-8859-15'
when /unicode[-_ ]1[-_ ]1[-_ ]utf[-_]7/i then "utf-7"
- else charset
+ when /^euc$/i then 'EUC-JP' # XXX try them all?
+ when /^(x-unknown|unknown[-_ ]?8bit|ascii[-_ ]?7[-_ ]?bit)$/i then 'ASCII'
+ else orig_charset
end
begin
- Iconv.iconv(target + "//IGNORE", charset, text + " ").join[0 .. -2]
- rescue Errno::EINVAL, Iconv::InvalidEncoding, Iconv::InvalidCharacter, Iconv::IllegalSequence => e
- warn "couldn't transcode text from #{charset} to #{target} (\"#{text[0 ... 20]}\"...) (got #{e.message}); using original as is"
- text
+ returning(Iconv.iconv(target, charset, text + " ").join[0 .. -2]) { |str| str.check }
+ rescue Errno::EINVAL, Iconv::InvalidEncoding, Iconv::InvalidCharacter, Iconv::IllegalSequence, String::CheckError
+ warn "couldn't transcode text from #{orig_charset} (#{charset}) to #{target}) (#{text[0 ... 20].inspect}...) (got #{$!.message} (#{$!.class}))"
+ text.ascii
end
end
end
--
1.6.3.3
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* [sup-devel] [PATCH 06/10] add String#transcode
2009-12-31 23:36 ` [sup-devel] [PATCH 05/10] fixup Iconv#easy_decode for Ruby 1.9 Rich Lane
@ 2009-12-31 23:36 ` Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 07/10] transcode output from mime-decode hook too Rich Lane
0 siblings, 1 reply; 19+ messages in thread
From: Rich Lane @ 2009-12-31 23:36 UTC (permalink / raw)
To: sup-devel
---
lib/sup/util.rb | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
index 560ac73..c27e527 100644
--- a/lib/sup/util.rb
+++ b/lib/sup/util.rb
@@ -319,6 +319,10 @@ class String
out.force_encoding Encoding::UTF_8 if out.respond_to? :force_encoding
out
end
+
+ def transcode src_encoding=$encoding
+ Iconv.easy_decode $encoding, src_encoding, self
+ end
end
class Numeric
--
1.6.3.3
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* [sup-devel] [PATCH 07/10] transcode output from mime-decode hook too
2009-12-31 23:36 ` [sup-devel] [PATCH 06/10] add String#transcode Rich Lane
@ 2009-12-31 23:36 ` Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 08/10] decode raw header/message to ascii before viewing Rich Lane
0 siblings, 1 reply; 19+ messages in thread
From: Rich Lane @ 2009-12-31 23:36 UTC (permalink / raw)
To: sup-devel
---
lib/sup/message-chunks.rb | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/lib/sup/message-chunks.rb b/lib/sup/message-chunks.rb
index 581b707..6328f1f 100644
--- a/lib/sup/message-chunks.rb
+++ b/lib/sup/message-chunks.rb
@@ -99,7 +99,7 @@ EOS
text = case @content_type
when /^text\/plain\b/
- Iconv.easy_decode $encoding, encoded_content.charset || $encoding, @raw_content
+ @raw_content
else
HookManager.run "mime-decode", :content_type => content_type,
:filename => lambda { write_to_disk },
@@ -109,6 +109,7 @@ EOS
@lines = nil
if text
+ text = text.transcode(encoded_content.charset || $encoding)
@lines = text.gsub("\r\n", "\n").gsub(/\t/, " ").gsub(/\r/, "").split("\n")
@lines = lines.map {|l| l.chomp.wrap WRAP_LEN}.flatten
@quotable = true
--
1.6.3.3
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* [sup-devel] [PATCH 08/10] decode raw header/message to ascii before viewing
2009-12-31 23:36 ` [sup-devel] [PATCH 07/10] transcode output from mime-decode hook too Rich Lane
@ 2009-12-31 23:36 ` Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 09/10] use header from the RMail::Message in Message#parse_header Rich Lane
0 siblings, 1 reply; 19+ messages in thread
From: Rich Lane @ 2009-12-31 23:36 UTC (permalink / raw)
To: sup-devel
---
lib/sup/modes/thread-view-mode.rb | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb
index 8b5642e..52b54dd 100644
--- a/lib/sup/modes/thread-view-mode.rb
+++ b/lib/sup/modes/thread-view-mode.rb
@@ -148,14 +148,14 @@ EOS
def show_header
m = @message_lines[curpos] or return
BufferManager.spawn_unless_exists("Full header for #{m.id}") do
- TextMode.new m.raw_header
+ TextMode.new m.raw_header.ascii
end
end
def show_message
m = @message_lines[curpos] or return
BufferManager.spawn_unless_exists("Raw message for #{m.id}") do
- TextMode.new m.raw_message
+ TextMode.new m.raw_message.ascii
end
end
--
1.6.3.3
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* [sup-devel] [PATCH 09/10] use header from the RMail::Message in Message#parse_header
2009-12-31 23:36 ` [sup-devel] [PATCH 08/10] decode raw header/message to ascii before viewing Rich Lane
@ 2009-12-31 23:36 ` Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 10/10] decode header fields of enclosed messages Rich Lane
0 siblings, 1 reply; 19+ messages in thread
From: Rich Lane @ 2009-12-31 23:36 UTC (permalink / raw)
To: sup-devel
---
lib/sup/message.rb | 24 ++++++++++++++----------
1 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/lib/sup/message.rb b/lib/sup/message.rb
index f3ac874..519243a 100644
--- a/lib/sup/message.rb
+++ b/lib/sup/message.rb
@@ -31,6 +31,7 @@ class Message
MAX_SIG_DISTANCE = 15 # lines from the end
DEFAULT_SUBJECT = ""
DEFAULT_SENDER = "(missing sender)"
+ MAX_HEADER_VALUE_SIZE = 4096
attr_reader :id, :date, :from, :subj, :refs, :replytos, :to, :source,
:cc, :bcc, :labels, :attachments, :list_address, :recipient_email, :replyto,
@@ -59,13 +60,15 @@ class Message
#parse_header(opts[:header] || @source.load_header(@source_info))
end
- def parse_header header
- ## forcibly decode these headers from and to the current encoding,
- ## which serves to strip out characters that aren't displayable
- ## (and which would otherwise be screwing up the display)
- %w(from to subject cc bcc).each do |f|
- header[f] = Iconv.easy_decode($encoding, $encoding, header[f]) if header[f]
- end
+ def decode_header_field v
+ return unless v
+ return v unless v.is_a? String
+ return unless v.size < MAX_HEADER_VALUE_SIZE # avoid regex blowup on spam
+ Rfc2047.decode_to $encoding, Iconv.easy_decode($encoding, 'ASCII', v)
+ end
+
+ def parse_header encoded_header
+ header = SavingHash.new { |k| decode_header_field encoded_header[k] }
@id = if header["message-id"]
mid = header["message-id"] =~ /<(.+?)>/ ? $1 : header["message-id"]
@@ -100,7 +103,7 @@ class Message
Time.now
end
- @subj = header.member?("subject") ? header["subject"].gsub(/\s+/, " ").gsub(/\s+$/, "") : DEFAULT_SUBJECT
+ @subj = header["subject"] ? header["subject"].gsub(/\s+/, " ").gsub(/\s+$/, "") : DEFAULT_SUBJECT
@to = Person.from_address_list header["to"]
@cc = Person.from_address_list header["cc"]
@bcc = Person.from_address_list header["bcc"]
@@ -235,8 +238,9 @@ class Message
## bloat the index.
## actually, it's also the differentiation between to/cc/bcc,
## so i will keep this.
- parse_header @source.load_header(@source_info)
- message_to_chunks @source.load_message(@source_info)
+ rmsg = @source.load_message(@source_info)
+ parse_header rmsg.header
+ message_to_chunks rmsg
rescue SourceError, SocketError => e
warn "problem getting messages from #{@source}: #{e.message}"
## we need force_to_top here otherwise this window will cover
--
1.6.3.3
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* [sup-devel] [PATCH 10/10] decode header fields of enclosed messages
2009-12-31 23:36 ` [sup-devel] [PATCH 09/10] use header from the RMail::Message in Message#parse_header Rich Lane
@ 2009-12-31 23:36 ` Rich Lane
0 siblings, 0 replies; 19+ messages in thread
From: Rich Lane @ 2009-12-31 23:36 UTC (permalink / raw)
To: sup-devel
---
lib/sup/message.rb | 13 +++++--------
1 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/lib/sup/message.rb b/lib/sup/message.rb
index 519243a..ff05df6 100644
--- a/lib/sup/message.rb
+++ b/lib/sup/message.rb
@@ -446,15 +446,12 @@ private
from = payload.header.from.first ? payload.header.from.first.format : ""
to = payload.header.to.map { |p| p.format }.join(", ")
cc = payload.header.cc.map { |p| p.format }.join(", ")
- subj = payload.header.subject
- subj = subj ? Message.normalize_subj(payload.header.subject.gsub(/\s+/, " ").gsub(/\s+$/, "")) : subj
- if Rfc2047.is_encoded? subj
- subj = Rfc2047.decode_to $encoding, subj
- end
+ subj = decode_header_field(payload.header.subject) || DEFAULT_SUBJECT
+ subj = Message.normalize_subj(subj.gsub(/\s+/, " ").gsub(/\s+$/, ""))
msgdate = payload.header.date
- from_person = from ? Person.from_address(from) : nil
- to_people = to ? Person.from_address_list(to) : nil
- cc_people = cc ? Person.from_address_list(cc) : nil
+ from_person = from ? Person.from_address(decode_header_field from) : nil
+ to_people = to ? Person.from_address_list(decode_header_field to) : nil
+ cc_people = cc ? Person.from_address_list(decode_header_field cc) : nil
[Chunk::EnclosedMessage.new(from_person, to_people, cc_people, msgdate, subj)] + message_to_chunks(payload, encrypted)
else
debug "no body for message/rfc822 enclosure; skipping"
--
1.6.3.3
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [sup-devel] Ruby 1.9 encoding fixes
2009-12-31 23:36 [sup-devel] Ruby 1.9 encoding fixes Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 01/10] open mail source files as binary Rich Lane
@ 2010-01-01 19:09 ` William Morgan
[not found] ` <1262442839-sup-7738@peray>
1 sibling, 1 reply; 19+ messages in thread
From: William Morgan @ 2010-01-01 19:09 UTC (permalink / raw)
To: sup-devel
Branch ruby-1.9-encoding, merged into next. Thank you very much!
Using the xapian-full and ncursesw gems, I can now run Sup under 1.9,
though there are a few warts (for some reason the secondary questions
like "are you sure you want to quit?" aren't getting keystrokes.)
Anyways, getting close!
--
William <wmorgan-sup@masanjin.net>
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [sup-devel] [PATCH 01/10] open mail source files as binary
2009-12-31 23:36 ` [sup-devel] [PATCH 01/10] open mail source files as binary Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 02/10] display_size is just size on Ruby 1.9 Rich Lane
@ 2010-01-01 20:59 ` Anthony Martinez
2010-01-01 21:43 ` William Morgan
1 sibling, 1 reply; 19+ messages in thread
From: Anthony Martinez @ 2010-01-01 20:59 UTC (permalink / raw)
To: sup-devel
Excerpts from Rich Lane's message of Thu Dec 31 16:36:49 -0700 2009:
> diff --git a/lib/sup/maildir.rb b/lib/sup/maildir.rb
> index c2bd27a..0852576 100644
> --- a/lib/sup/maildir.rb
> +++ b/lib/sup/maildir.rb
> @@ -59,7 +59,7 @@ class Maildir < Source
> File.stat(tmp_path)
> rescue Errno::ENOENT #this is what we want.
> begin
> - File.open(tmp_path, 'w') do |f|
> + File.open(tmp_path, 'wb:BINARY') do |f|
> yield f #provide a writable interface for the caller
This patch causes the following warning on Ruby 1.8:
warning: encoding options not supported in 1.8: wb:BINARY
Especially if you use Maildir for a source, the resulting torrent of warnings
makes Sup a bit difficult to use.
I've gone and reverted this diff locally for now. I suppose I could also stop
running sup with the -w flag...
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [sup-devel] [PATCH 01/10] open mail source files as binary
2010-01-01 20:59 ` [sup-devel] [PATCH 01/10] open mail source files as binary Anthony Martinez
@ 2010-01-01 21:43 ` William Morgan
2010-01-01 21:48 ` Rich Lane
2010-01-02 1:16 ` Anthony Martinez
0 siblings, 2 replies; 19+ messages in thread
From: William Morgan @ 2010-01-01 21:43 UTC (permalink / raw)
To: sup-devel
Reformatted excerpts from Anthony Martinez's message of 2010-01-01:
> Especially if you use Maildir for a source, the resulting torrent of
> warnings makes Sup a bit difficult to use.
>
> I've gone and reverted this diff locally for now. I suppose I could
> also stop running sup with the -w flag...
I'm happy with either wrapping that whole thing in a RUBY_VERSION test,
or mandating that thou shalt not run sup with -w. Votes?
--
William <wmorgan-sup@masanjin.net>
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [sup-devel] [PATCH 01/10] open mail source files as binary
2010-01-01 21:43 ` William Morgan
@ 2010-01-01 21:48 ` Rich Lane
2010-01-01 21:57 ` William Morgan
2010-01-02 1:16 ` Anthony Martinez
1 sibling, 1 reply; 19+ messages in thread
From: Rich Lane @ 2010-01-01 21:48 UTC (permalink / raw)
To: sup-devel
Excerpts from William Morgan's message of Fri Jan 01 16:43:13 -0500 2010:
> Reformatted excerpts from Anthony Martinez's message of 2010-01-01:
> > Especially if you use Maildir for a source, the resulting torrent of
> > warnings makes Sup a bit difficult to use.
> >
> > I've gone and reverted this diff locally for now. I suppose I could
> > also stop running sup with the -w flag...
>
> I'm happy with either wrapping that whole thing in a RUBY_VERSION test,
> or mandating that thou shalt not run sup with -w. Votes?
It doesn't sound very useful to have -w writing messages to the screen
in an ncurses app. Could you redirect stderr to a file instead? Is it
possible to do this from inside Sup?
That warning's existence annoys me. I thought it was a feature that Ruby
1.8 ignored the encoding in the mode string.
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [sup-devel] [PATCH 01/10] open mail source files as binary
2010-01-01 21:48 ` Rich Lane
@ 2010-01-01 21:57 ` William Morgan
0 siblings, 0 replies; 19+ messages in thread
From: William Morgan @ 2010-01-01 21:57 UTC (permalink / raw)
To: sup-devel
Reformatted excerpts from Rich Lane's message of 2010-01-01:
> It doesn't sound very useful to have -w writing messages to the screen
> in an ncurses app. Could you redirect stderr to a file instead? Is it
> possible to do this from inside Sup?
Some experimentation suggests we can do
$stderr = File.open(File.join(BASE_DIR, "warnings.txt"), "w")
and subsequent warns go to that file. At least, it works in irb.
> That warning's existence annoys me. I thought it was a feature that
> Ruby 1.8 ignored the encoding in the mode string.
Yeah, lame.
--
William <wmorgan-sup@masanjin.net>
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [sup-devel] [PATCH 01/10] open mail source files as binary
2010-01-01 21:43 ` William Morgan
2010-01-01 21:48 ` Rich Lane
@ 2010-01-02 1:16 ` Anthony Martinez
1 sibling, 0 replies; 19+ messages in thread
From: Anthony Martinez @ 2010-01-02 1:16 UTC (permalink / raw)
To: sup-devel
Excerpts from William Morgan's message of Fri Jan 01 14:43:13 -0700 2010:
> Reformatted excerpts from Anthony Martinez's message of 2010-01-01:
> > Especially if you use Maildir for a source, the resulting torrent of
> > warnings makes Sup a bit difficult to use.
> >
> > I've gone and reverted this diff locally for now. I suppose I could
> > also stop running sup with the -w flag...
>
> I'm happy with either wrapping that whole thing in a RUBY_VERSION test,
> or mandating that thou shalt not run sup with -w. Votes?
Well... the only reason I ran it with warnings enabled to begin with:
$ ack -a --nogroup ' -w'
HACKING:6: ruby -I lib -w bin/sup
I think redirecting stderr to .sup/warnings is the way to go.
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [sup-devel] Ruby 1.9 encoding fixes
[not found] ` <1262442839-sup-7738@peray>
@ 2010-01-03 14:48 ` William Morgan
2010-01-03 15:48 ` Nicolas Pouillard
0 siblings, 1 reply; 19+ messages in thread
From: William Morgan @ 2010-01-03 14:48 UTC (permalink / raw)
To: sup-devel
Reformatted excerpts from Nicolas Pouillard's message of 2010-01-02:
> Gem files will remain installed in /home/ertai/.gem/ruby/1.8/gems/xapian-full-1.1.3 for inspection.
> Results logged to /home/ertai/.gem/ruby/1.8/gems/xapian-full-1.1.3/gem_make.out
Anything interested in that file?
--
William <wmorgan-sup@masanjin.net>
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [sup-devel] Ruby 1.9 encoding fixes
2010-01-03 14:48 ` William Morgan
@ 2010-01-03 15:48 ` Nicolas Pouillard
0 siblings, 0 replies; 19+ messages in thread
From: Nicolas Pouillard @ 2010-01-03 15:48 UTC (permalink / raw)
To: William Morgan; +Cc: sup-devel
[-- Attachment #1: Type: text/plain, Size: 457 bytes --]
Excerpts from William Morgan's message of Sun Jan 03 15:48:22 +0100 2010:
> Reformatted excerpts from Nicolas Pouillard's message of 2010-01-02:
> > Gem files will remain installed in /home/ertai/.gem/ruby/1.8/gems/xapian-full-1.1.3 for inspection.
> > Results logged to /home/ertai/.gem/ruby/1.8/gems/xapian-full-1.1.3/gem_make.out
>
> Anything interested in that file?
No. But I attach it just in case.
--
Nicolas Pouillard
http://nicolaspouillard.fr
[-- Attachment #2: gem_make.out.gz --]
[-- Type: application/x-gzip, Size: 25765 bytes --]
[-- Attachment #3: Type: text/plain, Size: 143 bytes --]
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2010-01-03 15:49 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-12-31 23:36 [sup-devel] Ruby 1.9 encoding fixes Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 01/10] open mail source files as binary Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 02/10] display_size is just size on Ruby 1.9 Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 03/10] add String#check Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 04/10] add String#ascii Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 05/10] fixup Iconv#easy_decode for Ruby 1.9 Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 06/10] add String#transcode Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 07/10] transcode output from mime-decode hook too Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 08/10] decode raw header/message to ascii before viewing Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 09/10] use header from the RMail::Message in Message#parse_header Rich Lane
2009-12-31 23:36 ` [sup-devel] [PATCH 10/10] decode header fields of enclosed messages Rich Lane
2010-01-01 20:59 ` [sup-devel] [PATCH 01/10] open mail source files as binary Anthony Martinez
2010-01-01 21:43 ` William Morgan
2010-01-01 21:48 ` Rich Lane
2010-01-01 21:57 ` William Morgan
2010-01-02 1:16 ` Anthony Martinez
2010-01-01 19:09 ` [sup-devel] Ruby 1.9 encoding fixes William Morgan
[not found] ` <1262442839-sup-7738@peray>
2010-01-03 14:48 ` William Morgan
2010-01-03 15:48 ` Nicolas Pouillard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox