scope вынесен в начало конструктора, т.к. при падении необходимо корректно восстановить работу терминала
This commit is contained in:
parent
2dc4b7a4e5
commit
a0b0f4c651
1 changed files with 9 additions and 7 deletions
|
|
@ -175,19 +175,21 @@ private:
|
|||
public:
|
||||
this(const SessionConfig config)
|
||||
{
|
||||
// Если на этапе инициализации сработает проблема с конфигурированием сессии
|
||||
scope (failure)
|
||||
{
|
||||
if (cursesInitialized()) {
|
||||
endwin();
|
||||
gInitialized = false;
|
||||
}
|
||||
}
|
||||
|
||||
// ncurses не должен быть инициализирован (false)
|
||||
ncuiExpectMsg!cursesInitialized("ncurses is already initialized", false);
|
||||
// Корректное чтение юникода.
|
||||
setlocale(LC_ALL, "");
|
||||
_root = NCWin(ncuiNotNull!initscr());
|
||||
|
||||
// Если на этапе инициализации сработает проблема с конфигурированием сессии
|
||||
scope (failure)
|
||||
{
|
||||
endwin();
|
||||
gInitialized = false;
|
||||
}
|
||||
|
||||
// Установить флаг инициализации ncurses
|
||||
gInitialized = true;
|
||||
// Применение конфигурации
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue