comparison mercurial/ui.py @ 28039:89003c49315c stable

ui: fix crash by non-interactive prompt echo for user name Since we've dropped a str cast at write() by f04bd381e8c0, ui.prompt() should convert default to '' if it is None. Otherwise, write() would fail with "TypeError: object of type 'NoneType' has no len()". This patch includes the tests for both interactive and non-interactive cases because "ui.askusername" was never tested.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 06 Feb 2016 20:43:20 +0900
parents e70c97cc9243
children 41dcd7545266
comparison
equal deleted inserted replaced
28038:72f2a19c5f88 28039:89003c49315c
796 def prompt(self, msg, default="y"): 796 def prompt(self, msg, default="y"):
797 """Prompt user with msg, read response. 797 """Prompt user with msg, read response.
798 If ui is not interactive, the default is returned. 798 If ui is not interactive, the default is returned.
799 """ 799 """
800 if not self.interactive(): 800 if not self.interactive():
801 self.write(msg, ' ', default, "\n") 801 self.write(msg, ' ', default or '', "\n")
802 return default 802 return default
803 try: 803 try:
804 r = self._readline(self.label(msg, 'ui.prompt')) 804 r = self._readline(self.label(msg, 'ui.prompt'))
805 if not r: 805 if not r:
806 r = default 806 r = default