[RFC] Emacs message mode as email client option
Bojan Nikolic
bojan at bnikolic.co.uk
Mon Mar 24 15:45:20 GMT 2008
Dear All,
This small patch adds a mail client "emacs-message" that allows sending
of merge directives from the emacs Message mode. This allows reuse of
mechanisms in emacs for email address aliases and such.
I put it together after reading Xavier Maillard feature request...
Hopefully people using emacs to read/write their mail will find it
useful.
Best,
Bojan
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: bojan at bnikolic.co.uk-20080324153710-5frhvn0ccq85sorx
# target_branch: http://bazaar-vcs.org/bzr/bzr.dev/
# testament_sha1: 6f3691a8bcb651d1427bceaebb2c07001bfae8db
# timestamp: 2008-03-24 15:37:54 +0000
# base_revision_id: pqm at pqm.ubuntu.com-20080323231145-nh7pyfd19alqp471
#
# Begin patch
=== modified file 'bzrlib/config.py'
--- bzrlib/config.py 2007-12-02 18:59:28 +0000
+++ bzrlib/config.py 2008-03-24 15:22:37 +0000
@@ -160,6 +160,7 @@
'editor': mail_client.Editor,
'mapi': mail_client.MAPIClient,
'xdg-email': mail_client.XDGEmail,
+ 'emacs-message': mail_client.EMACSMessageEmail,
}[selected_client]
except KeyError:
raise errors.UnknownMailClient(selected_client)
=== modified file 'bzrlib/mail_client.py'
--- bzrlib/mail_client.py 2008-03-16 14:41:10 +0000
+++ bzrlib/mail_client.py 2008-03-24 15:37:10 +0000
@@ -305,6 +305,39 @@
self._encode_path(attach_path, 'attachment')])
return commandline
+class EMACSMessageEmail(ExternalMailClient):
+
+ """
+
+ Enter the bundle into emacs message-mode mail buffer
+
+ """
+
+ _client_commands = ['emacsclient']
+
+ def _get_compose_commandline(self,
+ to,
+ subject,
+ attach_path):
+
+ commandline = [ "--eval" ]
+
+ mmform = "(message-mail "
+ if to is not None :
+ mmform += (" \"%s\" " % self._encode_safe(to) )
+ if subject is not None:
+ mmform += (" \"%s\" " % self._encode_safe(subject))
+ mmform += ")"
+
+ commandline.append( mmform)
+
+ if attach_path is not None:
+ ifform = "(insert-file-contents \"%s\") " % self._encode_path(attach_path,
+ 'attachment')
+ commandline.append( ifform)
+
+ return commandline
+
class MAPIClient(ExternalMailClient):
"""Default Windows mail client launched using MAPI."""
# Begin bundle
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
--
Bojan Nikolic || http://www.bnikolic.co.uk
More information about the bazaar
mailing list