cpp-terminal 1.0.0
Small C++ library for writing multiplatform terminal applications
Loading...
Searching...
No Matches
terminal_initializer.cpp
Go to the documentation of this file.
1/*
2* cpp-terminal
3* C++ library for writing multi-platform terminal applications.
4*
5* SPDX-FileCopyrightText: 2019-2025 cpp-terminal
6*
7* SPDX-License-Identifier: MIT
8*/
9
11
16
17#include <new>
18
20
21#ifdef _WIN32
22 #pragma warning(push)
23 #pragma warning(disable : 4297)
24#endif
25
27try
28{
29 if(0 == m_counter)
30 {
31 static const Private::FileInitializer files_init;
34 sighandler_t handler = [](int signum) { signals.reset_and_raise(signum); };
35 signals.setHandler(handler);
36 }
37 ++m_counter;
38}
39catch(...)
40{
42}
43
45try
46{
47 --m_counter;
48 if(0 == m_counter) { (&Term::terminal)->~Terminal(); }
49}
50catch(...)
51{
53}
54
55#ifdef _WIN32
56 #pragma warning(pop)
57#endif
void setHandler(const sighandler_t &handler) noexcept
Definition signals.cpp:45
void reset_and_raise(const int &sign) noexcept
Definition signals.cpp:82
Term::Terminal & terminal
Definition terminal.cpp:19
void(*)(int) sighandler_t
Definition signals.hpp:14