ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
cadical_terminal.cpp
Go to the documentation of this file.
1#include "global.h"
2
3#include "internal.hpp"
4
5#ifdef WIN32
6#include <io.h>
7#define isatty _isatty
8#endif
9
11
12namespace CaDiCaL {
13
14Terminal::Terminal (FILE *f) : file (f), reset_on_exit (false) {
15 CADICAL_assert (file);
16 int fd = fileno (f);
17 CADICAL_assert (fd == 1 || fd == 2);
18 use_colors = connected = isatty (fd);
19}
20
21void Terminal::force_colors () { use_colors = connected = true; }
22void Terminal::force_no_colors () { use_colors = false; }
23void Terminal::force_reset_on_exit () { reset_on_exit = true; }
24
26 if (!connected)
27 return;
29 cursor (true);
30 normal ();
31 fflush (file);
32}
33
35 reset ();
36 connected = use_colors = false;
37}
38
40 if (reset_on_exit)
41 reset ();
42}
43
44Terminal tout (stdout);
45Terminal terr (stderr);
46
47} // namespace CaDiCaL
48
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
#define CADICAL_assert(ignore)
Definition global.h:14
void erase_until_end_of_line()
Definition terminal.hpp:85
void cursor(bool on)
Definition terminal.hpp:83
Terminal terr(stderr)
Definition terminal.hpp:98
Terminal tout(stdout)
Definition terminal.hpp:97
#define false
Definition place_base.h:29