# HG changeset patch # User Gregory Szorc # Date 2019-01-26 18:22:09 # Node ID 43f9b8c0574b5726e9c57620d3771981b5644a12 # Parent e82288a9556cee92599a91660eeba1d265e0a270 notify: be more defensive aboute None values encoding.strtolocal is the identity function on Python 2 but an actual string manipulation routine on Python 3. In some cases, we were passing None, which caused Python 3 to barf. Let's change the code to react properly when the value is None. Differential Revision: https://phab.mercurial-scm.org/D5713 diff --git a/hgext/notify.py b/hgext/notify.py --- a/hgext/notify.py +++ b/hgext/notify.py @@ -367,8 +367,12 @@ class notifier(object): raise error.Abort(inst) # store sender and subject - sender = encoding.strtolocal(msg[r'From']) - subject = encoding.strtolocal(msg[r'Subject']) + sender = msg[r'From'] + subject = msg[r'Subject'] + if sender is not None: + sender = encoding.strtolocal(sender) + if subject is not None: + subject = encoding.strtolocal(subject) del msg[r'From'], msg[r'Subject'] if not msg.is_multipart():