Mercurial > public > mercurial-scm > hg
comparison mercurial/mail.py @ 39107:c2327bb3505d
mail: call s.decode('ascii') explicitly to see if s is an ascii bytes
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 12 Aug 2018 12:14:28 +0900 |
parents | ebf54a34b7b7 |
children | d2d89d31cbb5 |
comparison
equal
deleted
inserted
replaced
39106:ebf54a34b7b7 | 39107:c2327bb3505d |
---|---|
310 def _addressencode(ui, name, addr, charsets=None): | 310 def _addressencode(ui, name, addr, charsets=None): |
311 assert isinstance(addr, bytes) | 311 assert isinstance(addr, bytes) |
312 name = headencode(ui, name, charsets) | 312 name = headencode(ui, name, charsets) |
313 try: | 313 try: |
314 acc, dom = addr.split('@') | 314 acc, dom = addr.split('@') |
315 acc = acc.encode('ascii') | 315 acc.decode('ascii') |
316 dom = dom.decode(encoding.encoding).encode('idna') | 316 dom = dom.decode(encoding.encoding).encode('idna') |
317 addr = '%s@%s' % (acc, dom) | 317 addr = '%s@%s' % (acc, dom) |
318 except UnicodeDecodeError: | 318 except UnicodeDecodeError: |
319 raise error.Abort(_('invalid email address: %s') % addr) | 319 raise error.Abort(_('invalid email address: %s') % addr) |
320 except ValueError: | 320 except ValueError: |
321 try: | 321 try: |
322 # too strict? | 322 # too strict? |
323 addr = addr.encode('ascii') | 323 addr.decode('ascii') |
324 except UnicodeDecodeError: | 324 except UnicodeDecodeError: |
325 raise error.Abort(_('invalid local address: %s') % addr) | 325 raise error.Abort(_('invalid local address: %s') % addr) |
326 return pycompat.bytesurl( | 326 return pycompat.bytesurl( |
327 email.utils.formataddr((name, encoding.strfromlocal(addr)))) | 327 email.utils.formataddr((name, encoding.strfromlocal(addr)))) |
328 | 328 |