Rev 2824: (Keir Mierle) Add Mutt as a supported email client in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Sun Sep 16 21:29:07 BST 2007


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 2824
revision-id: pqm at pqm.ubuntu.com-20070916202904-8ad60iodgmscjglj
parent: pqm at pqm.ubuntu.com-20070914082550-j9aknobh4x00qksk
parent: jelmer at samba.org-20070916192900-fph1i2wsytberyyl
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Sun 2007-09-16 21:29:04 +0100
message:
  (Keir Mierle) Add Mutt as a supported email client
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
  bzrlib/config.py               config.py-20051011043216-070c74f4e9e338e8
  bzrlib/mail_client.py          mail_client.py-20070809192806-vuxt3t19srtpjpdn-1
  bzrlib/tests/test_config.py    testconfig.py-20051011041908-742d0c15d8d8c8eb
  bzrlib/tests/test_mail_client.py test_mail_client.py-20070809192806-vuxt3t19srtpjpdn-2
  doc/en/user-guide/configuration.txt configuration.txt-20060314161707-868350809502af01
    ------------------------------------------------------------
    revno: 2790.2.6
    merged: jelmer at samba.org-20070916192900-fph1i2wsytberyyl
    parent: keir at cs.utoronto.ca-20070904190351-ug32zv9dcfqtluvi
    parent: pqm at pqm.ubuntu.com-20070914082550-j9aknobh4x00qksk
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: bzr.dev
    timestamp: Sun 2007-09-16 21:29:00 +0200
    message:
      Merge bzr.dev.
    ------------------------------------------------------------
    revno: 2790.2.5
    merged: keir at cs.utoronto.ca-20070904190351-ug32zv9dcfqtluvi
    parent: keir at cs.utoronto.ca-20070904190215-t7ygwihk735ja8lk
    committer: Keir Mierle <keir at cs.utoronto.ca>
    branch nick: bzr.dev
    timestamp: Tue 2007-09-04 12:03:51 -0700
    message:
      Change ordering of clients listing.
    ------------------------------------------------------------
    revno: 2790.2.4
    merged: keir at cs.utoronto.ca-20070904190215-t7ygwihk735ja8lk
    parent: keir at cs.utoronto.ca-20070904175722-9j9yffl5swt2oisx
    committer: Keir Mierle <keir at cs.utoronto.ca>
    branch nick: bzr.dev
    timestamp: Tue 2007-09-04 12:02:15 -0700
    message:
      Spelling
    ------------------------------------------------------------
    revno: 2790.2.3
    merged: keir at cs.utoronto.ca-20070904175722-9j9yffl5swt2oisx
    parent: keir at cs.utoronto.ca-20070904175027-xvye7lkynkkrz9tl
    parent: pqm at pqm.ubuntu.com-20070904035759-iv4xl6d7ez69txba
    committer: Keir Mierle <keir at cs.utoronto.ca>
    branch nick: bzr.dev
    timestamp: Tue 2007-09-04 10:57:22 -0700
    message:
      Merge from upstream
    ------------------------------------------------------------
    revno: 2790.2.2
    merged: keir at cs.utoronto.ca-20070904175027-xvye7lkynkkrz9tl
    parent: keir at cs.utoronto.ca-20070903235422-zfj6mk7nts9nmzw2
    committer: Keir Mierle <keir at cs.utoronto.ca>
    branch nick: bzr.dev
    timestamp: Tue 2007-09-04 10:50:27 -0700
    message:
      Change alphabetic ordering into two categories; one for specific clients the other for generic options.
    ------------------------------------------------------------
    revno: 2790.2.1
    merged: keir at cs.utoronto.ca-20070903235422-zfj6mk7nts9nmzw2
    parent: pqm at pqm.ubuntu.com-20070903130729-qdcrag0a7vcpzfgm
    committer: Keir Mierle <keir at cs.utoronto.ca>
    branch nick: bzr.dev
    timestamp: Mon 2007-09-03 16:54:22 -0700
    message:
      Add Mutt as a supported client email program. Also rearranges various listings
      of the mail clients to be alphabetical; the number of supported email clients
      is only going to grow, and this way it is easier to scan for your favorite
      email client.
=== modified file 'NEWS'
--- a/NEWS	2007-09-14 02:17:32 +0000
+++ b/NEWS	2007-09-16 19:29:00 +0000
@@ -24,6 +24,9 @@
 
   IMPROVEMENTS:
 
+   * Mutt is now a supported mail client; set ``mail_client=mutt`` in your
+     bazaar.conf and ``send`` will use mutt. (Keir Mierle)
+
   BUG FIXES:
 
    * The basename, not the full path, is now used when checking whether

=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2007-09-13 04:28:56 +0000
+++ b/bzrlib/builtins.py	2007-09-16 19:29:00 +0000
@@ -3846,9 +3846,9 @@
     the preferred client can't be found (or used), your editor will be used.
     
     To use a specific mail program, set the mail_client configuration option.
-    (For Thunderbird 1.5, this works around some bugs.)  Supported values are
-    "thunderbird", "evolution", "editor", "xdg-email", "mapi", "kmail" and
-    "default".
+    (For Thunderbird 1.5, this works around some bugs.)  Supported values for
+    specific clients are "evolution", "kmail", "mutt", and "thunderbird";
+    generic options are "default", "editor", "mapi", and "xdg-email".
 
     If mail is being sent, a to address is required.  This can be supplied
     either on the commandline, or by setting the submit_to configuration

=== modified file 'bzrlib/config.py'
--- a/bzrlib/config.py	2007-08-14 16:39:00 +0000
+++ b/bzrlib/config.py	2007-09-04 17:50:27 +0000
@@ -150,13 +150,16 @@
         try:
             mail_client_class = {
                 None: mail_client.DefaultMail,
+                # Specific clients
+                'evolution': mail_client.Evolution,
+                'kmail': mail_client.KMail,
+                'mutt': mail_client.Mutt,
+                'thunderbird': mail_client.Thunderbird,
+                # Generic options
                 'default': mail_client.DefaultMail,
                 'editor': mail_client.Editor,
-                'thunderbird': mail_client.Thunderbird,
-                'evolution': mail_client.Evolution,
                 'mapi': mail_client.MAPIClient,
                 'xdg-email': mail_client.XDGEmail,
-                'kmail': mail_client.KMail,
             }[selected_client]
         except KeyError:
             raise errors.UnknownMailClient(selected_client)

=== modified file 'bzrlib/mail_client.py'
--- a/bzrlib/mail_client.py	2007-08-21 01:26:02 +0000
+++ b/bzrlib/mail_client.py	2007-09-03 23:54:22 +0000
@@ -183,6 +183,23 @@
         return ['mailto:%s?%s' % (to or '', '&'.join(options_list))]
 
 
+class Mutt(ExternalMailClient):
+    """Mutt mail client."""
+
+    _client_commands = ['mutt']
+
+    def _get_compose_commandline(self, to, subject, attach_path):
+        """See ExternalMailClient._get_compose_commandline"""
+        message_options = []
+        if subject is not None:
+            message_options.extend(['-s', subject ])
+        if attach_path is not None:
+            message_options.extend(['-a', attach_path])
+        if to is not None:
+            message_options.append(to)
+        return message_options
+
+
 class Thunderbird(ExternalMailClient):
     """Mozilla Thunderbird (or Icedove)
 

=== modified file 'bzrlib/tests/test_config.py'
--- a/bzrlib/tests/test_config.py	2007-08-14 16:39:00 +0000
+++ b/bzrlib/tests/test_config.py	2007-09-04 17:50:27 +0000
@@ -1011,18 +1011,7 @@
         client = config.get_mail_client()
         self.assertIsInstance(client, mail_client.DefaultMail)
 
-        config.set_user_option('mail_client', 'default')
-        client = config.get_mail_client()
-        self.assertIsInstance(client, mail_client.DefaultMail)
-
-        config.set_user_option('mail_client', 'editor')
-        client = config.get_mail_client()
-        self.assertIsInstance(client, mail_client.Editor)
-
-        config.set_user_option('mail_client', 'thunderbird')
-        client = config.get_mail_client()
-        self.assertIsInstance(client, mail_client.Thunderbird)
-
+        # Specific clients
         config.set_user_option('mail_client', 'evolution')
         client = config.get_mail_client()
         self.assertIsInstance(client, mail_client.Evolution)
@@ -1031,14 +1020,31 @@
         client = config.get_mail_client()
         self.assertIsInstance(client, mail_client.KMail)
 
+        config.set_user_option('mail_client', 'mutt')
+        client = config.get_mail_client()
+        self.assertIsInstance(client, mail_client.Mutt)
+
+        config.set_user_option('mail_client', 'thunderbird')
+        client = config.get_mail_client()
+        self.assertIsInstance(client, mail_client.Thunderbird)
+
+        # Generic options
+        config.set_user_option('mail_client', 'default')
+        client = config.get_mail_client()
+        self.assertIsInstance(client, mail_client.DefaultMail)
+
+        config.set_user_option('mail_client', 'editor')
+        client = config.get_mail_client()
+        self.assertIsInstance(client, mail_client.Editor)
+
+        config.set_user_option('mail_client', 'mapi')
+        client = config.get_mail_client()
+        self.assertIsInstance(client, mail_client.MAPIClient)
+
         config.set_user_option('mail_client', 'xdg-email')
         client = config.get_mail_client()
         self.assertIsInstance(client, mail_client.XDGEmail)
 
-        config.set_user_option('mail_client', 'mapi')
-        client = config.get_mail_client()
-        self.assertIsInstance(client, mail_client.MAPIClient)
-
         config.set_user_option('mail_client', 'firebird')
         self.assertRaises(errors.UnknownMailClient, config.get_mail_client)
 

=== modified file 'bzrlib/tests/test_mail_client.py'
--- a/bzrlib/tests/test_mail_client.py	2007-08-14 17:06:51 +0000
+++ b/bzrlib/tests/test_mail_client.py	2007-09-03 23:54:22 +0000
@@ -20,6 +20,17 @@
     urlutils,
     )
 
+class TestMutt(tests.TestCase):
+
+    def test_commandline(self):
+        mutt = mail_client.Mutt(None)
+        commandline = mutt._get_compose_commandline(None, None, 'file%')
+        self.assertEqual(['-a', 'file%'], commandline)
+        commandline = mutt._get_compose_commandline('jrandom at example.org',
+                                                     'Hi there!', None)
+        self.assertEqual(['-s', 'Hi there!', 'jrandom at example.org'],
+                         commandline)
+
 
 class TestThunderbird(tests.TestCase):
 

=== modified file 'doc/en/user-guide/configuration.txt'
--- a/doc/en/user-guide/configuration.txt	2007-08-21 02:06:43 +0000
+++ b/doc/en/user-guide/configuration.txt	2007-09-04 19:03:51 +0000
@@ -207,18 +207,22 @@
 will try ``xdg-email``. If either of these fails, it will fall back to
 ``editor``.
 
-Supported values are:
+Supported values for specific clients:
 
-:xdg-email: Use xdg-email to run your preferred mail program
-:mapi: Use your preferred e-mail client on Windows.
+:evolution: Use Evolution.
+:kmail: Use KMail.
+:mutt: Use Mutt.
 :thunderbird: Use Mozilla Thunderbird or Icedove.  For Thunderbird/Icedove 1.5,
     this works around some bugs that xdg-email doesn't handle.
-:evolution: Use Evolution.
-:kmail: Use KMail.
+
+Supported generic values are:
+
+:default: See above.
 :editor: Use your editor to compose the merge request.  This also uses
     your commit id, (see ``bzr whoami``), smtp_server and (optionally)
     smtp_username and smtp_password.
-:default: See above.
+:mapi: Use your preferred e-mail client on Windows.
+:xdg-email: Use xdg-email to run your preferred mail program
 
 submit_branch
 -------------




More information about the bazaar-commits mailing list