Make run_resize_screen volatile
This commit is contained in:
@@ -50,33 +50,33 @@
|
|||||||
|
|
||||||
namespace ph = std::placeholders;
|
namespace ph = std::placeholders;
|
||||||
|
|
||||||
namespace
|
namespace {
|
||||||
|
|
||||||
|
std::ofstream errorlog;
|
||||||
|
std::streambuf *cerr_buffer;
|
||||||
|
|
||||||
|
volatile bool run_resize_screen = false;
|
||||||
|
|
||||||
|
void sighandler(int sig)
|
||||||
{
|
{
|
||||||
std::ofstream errorlog;
|
if (sig == SIGWINCH)
|
||||||
std::streambuf *cerr_buffer;
|
run_resize_screen = true;
|
||||||
bool run_resize_screen = false;
|
#if defined(__sun) && defined(__SVR4)
|
||||||
|
// in solaris it is needed to reinstall the handler each time it's executed
|
||||||
|
signal(sig, sighandler);
|
||||||
|
#endif // __sun && __SVR4
|
||||||
|
}
|
||||||
|
|
||||||
void sighandler(int sig)
|
void do_at_exit()
|
||||||
{
|
{
|
||||||
if (sig == SIGWINCH)
|
// restore old cerr buffer
|
||||||
{
|
std::cerr.rdbuf(cerr_buffer);
|
||||||
run_resize_screen = true;
|
errorlog.close();
|
||||||
}
|
Mpd.Disconnect();
|
||||||
# if defined(__sun) && defined(__SVR4)
|
NC::destroyScreen();
|
||||||
// in solaris it is needed to reinstall the handler each time it's executed
|
windowTitle("");
|
||||||
signal(sig, sighandler);
|
}
|
||||||
# endif // __sun && __SVR4
|
|
||||||
}
|
|
||||||
|
|
||||||
void do_at_exit()
|
|
||||||
{
|
|
||||||
// restore old cerr buffer
|
|
||||||
std::cerr.rdbuf(cerr_buffer);
|
|
||||||
errorlog.close();
|
|
||||||
Mpd.Disconnect();
|
|
||||||
NC::destroyScreen();
|
|
||||||
windowTitle("");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
|
|||||||
Reference in New Issue
Block a user