From: nicolas.pouillard@gmail.com (Nicolas Pouillard)
Subject: [sup-talk] [PATCH] Fix a bug about forwarding that trimmed out newlines.
Date: Mon, 21 Apr 2008 10:02:46 +0200 [thread overview]
Message-ID: <1208764937-sup-2539@ausone.inria.fr> (raw)
In-Reply-To: <1207325353-7638-1-git-send-email-nicolas.pouillard@gmail.com>
What about this patch?
Excerpts from Nicolas Pouillard's message of Fri Apr 04 18:09:13 +0200 2008:
> This seems to happen when one don't touch the forwarded
> email. Indeed most of the sup's code tend to assume that
> messages body are reprensented using an array of string
> *without* a trailing \n, except some parts of the code.
>
> This patch enforce that. It could become even more strict
> by raising an error instead of logging in join_lines.
> ---
> lib/sup/modes/edit-message-mode.rb | 11 +++++------
> lib/sup/util.rb | 6 ++++++
> 2 files changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/lib/sup/modes/edit-message-mode.rb b/lib/sup/modes/edit-message-mode.rb
> index dd96002..c3634af 100644
> --- a/lib/sup/modes/edit-message-mode.rb
> +++ b/lib/sup/modes/edit-message-mode.rb
> @@ -216,7 +216,7 @@ protected
> def parse_file fn
> File.open(fn) do |f|
> header = MBox::read_header f
> - body = f.readlines
> + body = f.readlines.map { |l| l.chomp }
>
> header.delete_if { |k, v| NON_EDITABLE_HEADERS.member? k }
> header.each { |k, v| header[k] = parse_header k, v }
> @@ -307,9 +307,8 @@ protected
> def build_message date
> m = RMail::Message.new
> m.header["Content-Type"] = "text/plain; charset=#{$encoding}"
> - m.body = @body.join
> - m.body = m.body
> - m.body += sig_lines.join("\n") unless $config[:edit_signature]
> + m.body = @body.join_lines
> + m.body += sig_lines.join_lines unless $config[:edit_signature]
>
> ## there are attachments, so wrap body in an attachment of its own
> unless @attachments.empty?
> @@ -367,7 +366,7 @@ EOS
> end
>
> f.puts
> - f.puts sanitize_body(@body.join)
> + f.puts sanitize_body(@body.join_lines)
> f.puts sig_lines if full unless $config[:edit_signature]
> end
>
> @@ -412,7 +411,7 @@ private
> end
>
> def top_posting?
> - @body.join =~ /(\S+)\s*Excerpts from.*\n(>.*\n)+\s*\Z/
> + @body.join_lines =~ /(\S+)\s*Excerpts from.*\n(>.*\n)+\s*\Z/
> end
>
> def sig_lines
> diff --git a/lib/sup/util.rb b/lib/sup/util.rb
> index 99e73b4..544859c 100644
> --- a/lib/sup/util.rb
> +++ b/lib/sup/util.rb
> @@ -390,6 +390,12 @@ module Enumerable
> end
>
> class Array
> +
> + def join_lines
> + Redwood::log "Some newlines are there..." if any? { |l| l =~ /\n/ }
> + map { |l| l.chomp }.join("\n")
> + end
> +
> def flatten_one_level
> inject([]) { |a, e| a + e }
> end
--
Nicolas Pouillard aka Ertai
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: not available
Url : http://rubyforge.org/pipermail/sup-talk/attachments/20080421/85e19dca/attachment-0001.bin
next prev parent reply other threads:[~2008-04-21 8:02 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-04 16:09 Nicolas Pouillard
2008-04-04 17:47 ` William Morgan
2008-04-05 9:26 ` Nicolas Pouillard
2008-04-21 8:02 ` Nicolas Pouillard [this message]
2008-04-23 1:44 ` William Morgan
2008-04-23 8:59 ` Nicolas Pouillard
2008-04-04 16:16 kendall at clarkparsia.com
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1208764937-sup-2539@ausone.inria.fr \
--to=nicolas.pouillard@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox