Edit the cover or patch message before e-mail encoding
authorCatalin Marinas <catalin.marinas@gmail.com>
Thu, 16 Nov 2006 19:45:32 +0000 (19:45 +0000)
committerCatalin Marinas <catalin.marinas@gmail.com>
Thu, 16 Nov 2006 19:45:32 +0000 (19:45 +0000)
This is needed because the user might introduce characters not handled
by the current encoding and StGIT could no longer change it. The
disadvantage is that not all the e-mail headers are visible in the
editor but users shouldn't manually modify them anyway.

Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
stgit/commands/mail.py

index 7875fac..31cc48a 100644 (file)
@@ -265,7 +265,7 @@ def __encode_message(msg):
     # encode the body and set the MIME and encoding headers
     msg.set_charset(charset)
 
-def edit_message(msg):
+def __edit_message(msg):
     fname = '.stgitmail.txt'
 
     # create the initial file
@@ -337,6 +337,9 @@ def __build_cover(tmpl, total_nr, msg_id, options):
         raise CmdException, 'Only "%(name)s" variables are ' \
               'supported in the patch template'
 
+    if options.edit_cover:
+        msg_string = __edit_message(msg_string)
+
     # The Python email message
     try:
         msg = email.message_from_string(msg_string)
@@ -349,9 +352,6 @@ def __build_cover(tmpl, total_nr, msg_id, options):
 
     msg_string = msg.as_string(options.mbox)
 
-    if options.edit_cover:
-        msg_string = edit_message(msg_string)
-
     return msg_string.strip('\n')
 
 def __build_message(tmpl, patch, patch_nr, total_nr, msg_id, ref_id, options):
@@ -422,6 +422,9 @@ def __build_message(tmpl, patch, patch_nr, total_nr, msg_id, ref_id, options):
         raise CmdException, 'Only "%(name)s" variables are ' \
               'supported in the patch template'
 
+    if options.edit_patches:
+        msg_string = __edit_message(msg_string)
+
     # The Python email message
     try:
         msg = email.message_from_string(msg_string)
@@ -439,9 +442,6 @@ def __build_message(tmpl, patch, patch_nr, total_nr, msg_id, ref_id, options):
 
     msg_string = msg.as_string(options.mbox)
 
-    if options.edit_patches:
-        msg_string = edit_message(msg_string)
-
     return msg_string.strip('\n')
 
 def func(parser, options, args):