From: Pierre Ossman <drzeus-list@drzeus.cx>
To: Catalin Marinas <catalin.marinas@gmail.com>, git@vger.kernel.org
Subject: [PATCH] Better mail handling in stgit
Date: Sat, 17 Sep 2005 15:34:41 +0200 [thread overview]
Message-ID: <432C1B71.4090105@drzeus.cx> (raw)
[-- Attachment #1: Type: text/plain, Size: 187 bytes --]
Fix some issues with the mail function in StGIT:
* Allow multiple To/Cc/Bcc command line options.
* Better parsing of mail addresses.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
[-- Attachment #2: mailfix.patch --]
[-- Type: text/x-patch, Size: 3055 bytes --]
--- stgit.orig/commands/mail.py 2005-08-03 21:04:10.000000000 +0200
+++ stgit/commands/mail.py 2005-09-17 14:57:23.000000000 +0200
@@ -78,11 +78,14 @@
metavar = '[PATCH1][:[PATCH2]]',
help = 'e-mail patches between PATCH1 and PATCH2'),
make_option('--to',
- help = 'Add TO to the To: list'),
+ help = 'Add TO to the To: list',
+ action = 'append'),
make_option('--cc',
- help = 'Add CC to the Cc: list'),
+ help = 'Add CC to the Cc: list',
+ action = 'append'),
make_option('--bcc',
- help = 'Add BCC to the Bcc: list'),
+ help = 'Add BCC to the Bcc: list',
+ action = 'append'),
make_option('-t', '--template', metavar = 'FILE',
help = 'use FILE as the message template'),
make_option('-f', '--first', metavar = 'FILE',
@@ -112,7 +115,10 @@
"""Return a two elements tuple: (from, [to])
"""
def __addr_list(string):
- return re.split('.*?([\w\.]+@[\w\.]+)', string)[1:-1:2]
+ m = re.search('[^@\s<,]+@[^>\s,]+', string);
+ if (m == None):
+ return []
+ return [ m.group() ] + __addr_list(string[m.end():])
from_addr_list = []
to_addr_list = []
@@ -152,6 +158,25 @@
s.quit()
+def __build_address_headers(options):
+ headers_end = ''
+ if options.to:
+ headers_end += 'To: '
+ for to in options.to:
+ headers_end += '%s,' % to
+ headers_end = headers_end[:-1] + '\n'
+ if options.cc:
+ headers_end += 'Cc: '
+ for cc in options.cc:
+ headers_end += '%s,' % cc
+ headers_end = headers_end[:-1] + '\n'
+ if options.bcc:
+ headers_end += 'Bcc: '
+ for bcc in options.bcc:
+ headers_end += '%s,' % bcc
+ headers_end = headers_end[:-1] + '\n'
+ return headers_end
+
def __build_first(tmpl, total_nr, msg_id, options):
"""Build the first message (series description) to be sent via SMTP
"""
@@ -160,12 +185,7 @@
maintainer = ''
headers_end = ''
- if options.to:
- headers_end += 'To: %s\n' % options.to
- if options.cc:
- headers_end += 'Cc: %s\n' % options.cc
- if options.bcc:
- headers_end += 'Bcc: %s\n' % options.bcc
+ headers_end += __build_address_headers(options)
headers_end += 'Message-Id: %s\n' % msg_id
total_nr_str = str(total_nr)
@@ -210,12 +230,7 @@
maintainer = '%s <%s>' % (p.get_commname(), p.get_commemail())
headers_end = ''
- if options.to:
- headers_end += 'To: %s\n' % options.to
- if options.cc:
- headers_end += 'Cc: %s\n' % options.cc
- if options.bcc:
- headers_end += 'Bcc: %s\n' % options.bcc
+ headers_end += __build_address_headers(options)
headers_end += 'Message-Id: %s\n' % msg_id
if ref_id:
headers_end += "In-Reply-To: %s\n" % ref_id
next reply other threads:[~2005-09-17 13:36 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-17 13:34 Pierre Ossman [this message]
2005-09-18 8:19 ` [PATCH] Better mail handling in stgit Catalin Marinas
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=432C1B71.4090105@drzeus.cx \
--to=drzeus-list@drzeus.cx \
--cc=catalin.marinas@gmail.com \
--cc=git@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.