[PATCH 1 of 5 stable] crecord: use try/except for import of curses

Sean Farley sean at farley.io
Wed Dec 16 12:21:37 CST 2015


Yuya Nishihara <yuya at tcha.org> writes:

> On Tue, 15 Dec 2015 16:06:12 -0800, Sean Farley wrote:
>> # HG changeset patch
>> # User Sean Farley <sean at farley.io>
>> # Date 1450223509 28800
>> #      Tue Dec 15 15:51:49 2015 -0800
>> # Branch stable
>> # Node ID 7ceba88969e51bb825748f69b45e4677e0a02815
>> # Parent  59d5f619e69ec43f1957eddd85d4e1deddd64925
>> crecord: use try/except for import of curses
>> 
>> Not only does this improve fragility with 'if os.name == ...' it will help
>> future patches enable the behavior to fallback to use plain record when curses
>> is unavailable (e.g. python compiled without curses support).
>> 
>> diff --git a/mercurial/crecord.py b/mercurial/crecord.py
>> --- a/mercurial/crecord.py
>> +++ b/mercurial/crecord.py
>> @@ -28,16 +28,15 @@ from . import (
>>  
>>  # This is required for ncurses to display non-ASCII characters in default user
>>  # locale encoding correctly.  --immerrr
>>  locale.setlocale(locale.LC_ALL, '')
>>  
>> -# os.name is one of: 'posix', 'nt', 'dos', 'os2', 'mac', or 'ce'
>> -if os.name == 'posix':
>> +try:
>>      import curses
>>      import fcntl
>>      import termios
>> -else:
>> +except ImportError:
>
> If demandimport is enabled, these imports won't raise ImportError here.
>
> (I didn't read the patches carefully, so I might be wrong.)

Ah, good catch. I'll send a V2 that fixes that.


More information about the Mercurial-devel mailing list