D5713: notify: be more defensive aboute None values
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Sat Jan 26 19:43:55 UTC 2019
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
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.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D5713
AFFECTED FILES
hgext/notify.py
CHANGE DETAILS
diff --git a/hgext/notify.py b/hgext/notify.py
--- a/hgext/notify.py
+++ b/hgext/notify.py
@@ -367,8 +367,12 @@
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():
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list