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:
|
public:
|
||||||
this(const SessionConfig config)
|
this(const SessionConfig config)
|
||||||
{
|
{
|
||||||
|
// Если на этапе инициализации сработает проблема с конфигурированием сессии
|
||||||
|
scope (failure)
|
||||||
|
{
|
||||||
|
if (cursesInitialized()) {
|
||||||
|
endwin();
|
||||||
|
gInitialized = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ncurses не должен быть инициализирован (false)
|
// ncurses не должен быть инициализирован (false)
|
||||||
ncuiExpectMsg!cursesInitialized("ncurses is already initialized", false);
|
ncuiExpectMsg!cursesInitialized("ncurses is already initialized", false);
|
||||||
// Корректное чтение юникода.
|
// Корректное чтение юникода.
|
||||||
setlocale(LC_ALL, "");
|
setlocale(LC_ALL, "");
|
||||||
_root = NCWin(ncuiNotNull!initscr());
|
_root = NCWin(ncuiNotNull!initscr());
|
||||||
|
|
||||||
// Если на этапе инициализации сработает проблема с конфигурированием сессии
|
|
||||||
scope (failure)
|
|
||||||
{
|
|
||||||
endwin();
|
|
||||||
gInitialized = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Установить флаг инициализации ncurses
|
// Установить флаг инициализации ncurses
|
||||||
gInitialized = true;
|
gInitialized = true;
|
||||||
// Применение конфигурации
|
// Применение конфигурации
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue