Looking in /etc/ttys for the type of terminal
This commit is contained in:
parent
278ac9d921
commit
7ead64f2b8
|
@ -1,3 +1,6 @@
|
||||||
|
2017-04-08 Markus Gans <guru.mail@muenster.de>
|
||||||
|
* Looking in /etc/ttys for the type of terminal
|
||||||
|
|
||||||
2017-04-06 Markus Gans <guru.mail@muenster.de>
|
2017-04-06 Markus Gans <guru.mail@muenster.de>
|
||||||
* Change cursor style on a FreeBSD console
|
* Change cursor style on a FreeBSD console
|
||||||
|
|
||||||
|
|
|
@ -563,7 +563,10 @@ const wchar_t* FString::wc_str() const
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
const char* FString::c_str() const
|
const char* FString::c_str() const
|
||||||
{
|
{
|
||||||
|
if ( string )
|
||||||
return wc_to_c_str (string);
|
return wc_to_c_str (string);
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
|
@ -35,7 +35,7 @@ FSwitch::~FSwitch() // destructor
|
||||||
|
|
||||||
// public methods of FSwitch
|
// public methods of FSwitch
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FSwitch::setText (FString txt)
|
void FSwitch::setText (const FString& txt)
|
||||||
{
|
{
|
||||||
FToggleButton::setText(txt);
|
FToggleButton::setText(txt);
|
||||||
switch_offset_pos = int(txt.getLength()) + 1;
|
switch_offset_pos = int(txt.getLength()) + 1;
|
||||||
|
|
|
@ -57,7 +57,7 @@ class FSwitch : public FToggleButton
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
|
|
||||||
// Mutator
|
// Mutator
|
||||||
void setText (FString);
|
void setText (const FString&);
|
||||||
|
|
||||||
// Event handlers
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
|
|
|
@ -92,6 +92,7 @@ const FString* FTerm::xterm_font = 0;
|
||||||
const FString* FTerm::xterm_title = 0;
|
const FString* FTerm::xterm_title = 0;
|
||||||
const FString* FTerm::answer_back = 0;
|
const FString* FTerm::answer_back = 0;
|
||||||
const FString* FTerm::sec_da = 0;
|
const FString* FTerm::sec_da = 0;
|
||||||
|
const FString* FTerm::empty_string = 0;
|
||||||
FOptiMove* FTerm::opti_move = 0;
|
FOptiMove* FTerm::opti_move = 0;
|
||||||
FOptiAttr* FTerm::opti_attr = 0;
|
FOptiAttr* FTerm::opti_attr = 0;
|
||||||
FTerm::modifier_key FTerm::mod_key;
|
FTerm::modifier_key FTerm::mod_key;
|
||||||
|
@ -2057,7 +2058,7 @@ int FTerm::closeConsole()
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FTerm::identifyTermType()
|
void FTerm::getSystemTermType()
|
||||||
{
|
{
|
||||||
// Import the untrusted environment variable TERM
|
// Import the untrusted environment variable TERM
|
||||||
const char* const& term_env = std::getenv(const_cast<char*>("TERM"));
|
const char* const& term_env = std::getenv(const_cast<char*>("TERM"));
|
||||||
|
@ -2067,10 +2068,18 @@ void FTerm::identifyTermType()
|
||||||
std::strncpy (termtype, term_env, sizeof(termtype) - 1);
|
std::strncpy (termtype, term_env, sizeof(termtype) - 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if ( term_name )
|
else if ( term_name ) // fallback: look into /etc/ttytype or /etc/ttys
|
||||||
{
|
{
|
||||||
// fallback: look into /etc/ttytype or /etc/ttys
|
// get term basename
|
||||||
//
|
const char* term_basename = std::strrchr(term_name, '/');
|
||||||
|
|
||||||
|
if ( term_basename == 0 )
|
||||||
|
term_basename = term_name;
|
||||||
|
else
|
||||||
|
term_basename++;
|
||||||
|
|
||||||
|
// Analyse /etc/ttytype
|
||||||
|
// --------------------
|
||||||
// file format:
|
// file format:
|
||||||
// <terminal type> <whitespace> <tty name>
|
// <terminal type> <whitespace> <tty name>
|
||||||
//
|
//
|
||||||
|
@ -2080,22 +2089,13 @@ void FTerm::identifyTermType()
|
||||||
|
|
||||||
std::FILE *fp;
|
std::FILE *fp;
|
||||||
|
|
||||||
if ( (fp = std::fopen("/etc/ttytype", "r")) != 0
|
if ( (fp = std::fopen("/etc/ttytype", "r")) != 0 )
|
||||||
|| (fp = std::fopen("/etc/ttys", "r")) != 0 ) // FreeBSD: man 5 ttys
|
|
||||||
{
|
{
|
||||||
char* p;
|
char* p;
|
||||||
char* type;
|
char* type;
|
||||||
char* name;
|
char* name;
|
||||||
char str[BUFSIZ];
|
char str[BUFSIZ];
|
||||||
|
|
||||||
// get term basename
|
|
||||||
const char* term_basename = std::strrchr(term_name, '/');
|
|
||||||
|
|
||||||
if ( term_basename == 0 )
|
|
||||||
term_basename = term_name;
|
|
||||||
else
|
|
||||||
term_basename++;
|
|
||||||
|
|
||||||
// read and parse the file
|
// read and parse the file
|
||||||
while ( fgets(str, sizeof(str)-1, fp) != 0 )
|
while ( fgets(str, sizeof(str)-1, fp) != 0 )
|
||||||
{
|
{
|
||||||
|
@ -2124,6 +2124,25 @@ void FTerm::identifyTermType()
|
||||||
|
|
||||||
std::fclose(fp);
|
std::fclose(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Analyse /etc/ttys
|
||||||
|
// --------------------
|
||||||
|
struct ttyent* ttys_entryt;
|
||||||
|
ttys_entryt = getttynam(term_basename);
|
||||||
|
|
||||||
|
if ( ttys_entryt )
|
||||||
|
{
|
||||||
|
char* type = ttys_entryt->ty_type;
|
||||||
|
|
||||||
|
if ( type != 0 )
|
||||||
|
{
|
||||||
|
std::strncpy (termtype, type, sizeof(termtype) - 1);
|
||||||
|
endttyent();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
endttyent();
|
||||||
}
|
}
|
||||||
|
|
||||||
// use vt100 if not found
|
// use vt100 if not found
|
||||||
|
@ -3441,6 +3460,7 @@ void FTerm::init()
|
||||||
opti_attr = new FOptiAttr();
|
opti_attr = new FOptiAttr();
|
||||||
term = new FRect(0,0,0,0);
|
term = new FRect(0,0,0,0);
|
||||||
mouse = new FPoint(0,0);
|
mouse = new FPoint(0,0);
|
||||||
|
empty_string = new FString("");
|
||||||
|
|
||||||
vt100_alt_char = new std::map<uChar,uChar>;
|
vt100_alt_char = new std::map<uChar,uChar>;
|
||||||
encoding_set = new std::map<std::string,fc::encoding>;
|
encoding_set = new std::map<std::string,fc::encoding>;
|
||||||
|
@ -3506,21 +3526,21 @@ void FTerm::init()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(BSD)
|
#if defined(BSD)
|
||||||
// initialize BSD console
|
// Initialize BSD console
|
||||||
initBSDConsole();
|
initBSDConsole();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// save termios settings
|
// Save termios settings
|
||||||
storeTTYsettings();
|
storeTTYsettings();
|
||||||
|
|
||||||
// get output baud rate
|
// Get output baud rate
|
||||||
baudrate = getBaudRate(&term_init);
|
baudrate = getBaudRate(&term_init);
|
||||||
|
|
||||||
if ( isatty(stdout_no) )
|
if ( isatty(stdout_no) )
|
||||||
opti_move->setBaudRate(int(baudrate));
|
opti_move->setBaudRate(int(baudrate));
|
||||||
|
|
||||||
// get the set type of the terminal
|
// Set the variable 'termtype' to the predefined type of the terminal
|
||||||
identifyTermType();
|
getSystemTermType();
|
||||||
|
|
||||||
if ( std::strncmp(termtype, "cygwin", 6) == 0 )
|
if ( std::strncmp(termtype, "cygwin", 6) == 0 )
|
||||||
cygwin_terminal = true;
|
cygwin_terminal = true;
|
||||||
|
@ -3543,7 +3563,7 @@ void FTerm::init()
|
||||||
else
|
else
|
||||||
linux_terminal = false;
|
linux_terminal = false;
|
||||||
|
|
||||||
// terminal detection
|
// Terminal detection
|
||||||
if ( terminal_detection )
|
if ( terminal_detection )
|
||||||
{
|
{
|
||||||
struct termios t;
|
struct termios t;
|
||||||
|
@ -3553,7 +3573,7 @@ void FTerm::init()
|
||||||
t.c_cc[VMIN] = 0; // Minimum number of characters
|
t.c_cc[VMIN] = 0; // Minimum number of characters
|
||||||
tcsetattr (stdin_no, TCSANOW, &t);
|
tcsetattr (stdin_no, TCSANOW, &t);
|
||||||
|
|
||||||
// initialize 256 colors terminals
|
// Initialize 256 colors terminals
|
||||||
new_termtype = init_256colorTerminal();
|
new_termtype = init_256colorTerminal();
|
||||||
|
|
||||||
// Identify the terminal via the answerback-message
|
// Identify the terminal via the answerback-message
|
||||||
|
@ -3920,6 +3940,9 @@ void FTerm::finish()
|
||||||
if ( vt100_alt_char )
|
if ( vt100_alt_char )
|
||||||
delete vt100_alt_char;
|
delete vt100_alt_char;
|
||||||
|
|
||||||
|
if ( empty_string )
|
||||||
|
delete empty_string;
|
||||||
|
|
||||||
if ( sec_da )
|
if ( sec_da )
|
||||||
delete sec_da;
|
delete sec_da;
|
||||||
|
|
||||||
|
|
10
src/fterm.h
10
src/fterm.h
|
@ -56,6 +56,7 @@
|
||||||
#include <langinfo.h>
|
#include <langinfo.h>
|
||||||
#include <term.h> // termcap
|
#include <term.h> // termcap
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
|
#include <ttyent.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
@ -110,7 +111,7 @@ class FTerm
|
||||||
} mod_key;
|
} mod_key;
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
FTerm (bool = false);
|
explicit FTerm (bool = false);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
virtual ~FTerm();
|
virtual ~FTerm();
|
||||||
|
@ -367,7 +368,7 @@ class FTerm
|
||||||
|
|
||||||
static int openConsole();
|
static int openConsole();
|
||||||
static int closeConsole();
|
static int closeConsole();
|
||||||
static void identifyTermType();
|
static void getSystemTermType();
|
||||||
static void storeTTYsettings();
|
static void storeTTYsettings();
|
||||||
static void restoreTTYsettings();
|
static void restoreTTYsettings();
|
||||||
|
|
||||||
|
@ -459,6 +460,7 @@ class FTerm
|
||||||
static const FString* xterm_title;
|
static const FString* xterm_title;
|
||||||
static const FString* answer_back;
|
static const FString* answer_back;
|
||||||
static const FString* sec_da;
|
static const FString* sec_da;
|
||||||
|
static const FString* empty_string;
|
||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
@ -492,11 +494,11 @@ inline int FTerm::getMaxColor()
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
inline const FString& FTerm::getAnswerbackString()
|
inline const FString& FTerm::getAnswerbackString()
|
||||||
{ return *answer_back; }
|
{ return (answer_back) ? *answer_back : *empty_string; }
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
inline const FString& FTerm::getSecDAString()
|
inline const FString& FTerm::getSecDAString()
|
||||||
{ return *sec_da; }
|
{ return (sec_da) ? *sec_da : *empty_string; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
297
test/termcap.cpp
297
test/termcap.cpp
|
@ -11,15 +11,15 @@
|
||||||
static FVTerm* terminal;
|
static FVTerm* terminal;
|
||||||
|
|
||||||
// function prototype
|
// function prototype
|
||||||
void tcapBooleans (std::string, bool);
|
void tcapBooleans (const std::string&, bool);
|
||||||
void tcapNumeric (std::string, int);
|
void tcapNumeric (const std::string&, int);
|
||||||
void termcapString (std::string, char*);
|
void tcapString (const std::string&, const char*);
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
// functions
|
// functions
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void tcapBooleans (std::string name, bool cap_bool)
|
void tcapBooleans (const std::string& name, bool cap_bool)
|
||||||
{
|
{
|
||||||
std::cout << "FTermcap::" << name << ": ";
|
std::cout << "FTermcap::" << name << ": ";
|
||||||
|
|
||||||
|
@ -30,13 +30,13 @@ void tcapBooleans (std::string name, bool cap_bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void tcapNumeric (std::string name, int cap_num)
|
void tcapNumeric (const std::string& name, int cap_num)
|
||||||
{
|
{
|
||||||
std::cout << "FTermcap::" << name << ": " << cap_num << "\r\n";
|
std::cout << "FTermcap::" << name << ": " << cap_num << "\r\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void tcapString (std::string name, const char* cap_str)
|
void tcapString (const std::string& name, const char* cap_str)
|
||||||
{
|
{
|
||||||
uInt len;
|
uInt len;
|
||||||
std::string sequence;
|
std::string sequence;
|
||||||
|
@ -52,9 +52,16 @@ void tcapString (std::string name, const char* cap_str)
|
||||||
|
|
||||||
for (uInt i=0; i < len; i++)
|
for (uInt i=0; i < len; i++)
|
||||||
{
|
{
|
||||||
uChar c = cap_str[i];
|
char c = cap_str[i];
|
||||||
|
|
||||||
if ( c < 32 )
|
if ( c < 0 )
|
||||||
|
{
|
||||||
|
std::ostringstream o;
|
||||||
|
o << std::oct << int(uChar(c));
|
||||||
|
sequence += "\\";
|
||||||
|
sequence += o.str();
|
||||||
|
}
|
||||||
|
else if ( c < 32 )
|
||||||
{
|
{
|
||||||
if ( c == 27 )
|
if ( c == 27 )
|
||||||
sequence += "\\E";
|
sequence += "\\E";
|
||||||
|
@ -64,13 +71,6 @@ void tcapString (std::string name, const char* cap_str)
|
||||||
sequence += c + 64;
|
sequence += c + 64;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( c >= 127 )
|
|
||||||
{
|
|
||||||
std::ostringstream o;
|
|
||||||
o << std::oct << int(c);
|
|
||||||
sequence += "\\";
|
|
||||||
sequence += o.str();
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
sequence += c;
|
sequence += c;
|
||||||
}
|
}
|
||||||
|
@ -104,13 +104,13 @@ int main (int argc, char* argv[])
|
||||||
std::cout << "| after parseSecDA(): "
|
std::cout << "| after parseSecDA(): "
|
||||||
<< terminal->termtype_SecDA << "\r\n";
|
<< terminal->termtype_SecDA << "\r\n";
|
||||||
|
|
||||||
if ( &terminal->getAnswerbackString() )
|
if ( const FString& s = terminal->getAnswerbackString() )
|
||||||
tcapString ( "| The answerback String"
|
tcapString ("| The answerback String", s);
|
||||||
, terminal->getAnswerbackString().c_str() );
|
|
||||||
|
|
||||||
if ( &terminal->getSecDAString() )
|
|
||||||
tcapString ( "| The SecDA String"
|
|
||||||
, terminal->getSecDAString().c_str() );
|
if ( const FString& s = terminal->getSecDAString() )
|
||||||
|
tcapString ("| The SecDA String", s);
|
||||||
|
|
||||||
std::cout << "`------------------- debug -------------------\r\n";
|
std::cout << "`------------------- debug -------------------\r\n";
|
||||||
#endif
|
#endif
|
||||||
|
@ -132,91 +132,176 @@ int main (int argc, char* argv[])
|
||||||
, FTermcap::no_utf8_acs_chars );
|
, FTermcap::no_utf8_acs_chars );
|
||||||
|
|
||||||
std::cout << "\r\n[Numeric]\r\n";
|
std::cout << "\r\n[Numeric]\r\n";
|
||||||
tcapNumeric ("max_color", FTermcap::max_color);
|
tcapNumeric ("max_color"
|
||||||
tcapNumeric ("tabstop", FTermcap::tabstop);
|
, FTermcap::max_color);
|
||||||
tcapNumeric ("attr_without_color", FTermcap::attr_without_color);
|
tcapNumeric ("tabstop"
|
||||||
|
, FTermcap::tabstop);
|
||||||
|
tcapNumeric ("attr_without_color"
|
||||||
|
, FTermcap::attr_without_color);
|
||||||
|
|
||||||
std::cout << "\r\n[String]\r\n";
|
std::cout << "\r\n[String]\r\n";
|
||||||
tcapString ("t_bell", tcap[fc::t_bell].string);
|
tcapString ("t_bell"
|
||||||
tcapString ("t_erase_chars", tcap[fc::t_erase_chars].string);
|
, tcap[fc::t_bell].string);
|
||||||
tcapString ("t_clear_screen", tcap[fc::t_clear_screen].string);
|
tcapString ("t_erase_chars"
|
||||||
tcapString ("t_clr_eos", tcap[fc::t_clr_eos].string);
|
, tcap[fc::t_erase_chars].string);
|
||||||
tcapString ("t_clr_eol", tcap[fc::t_clr_eol].string);
|
tcapString ("t_clear_screen"
|
||||||
tcapString ("t_clr_bol", tcap[fc::t_clr_bol].string);
|
, tcap[fc::t_clear_screen].string);
|
||||||
tcapString ("t_cursor_home", tcap[fc::t_cursor_home].string);
|
tcapString ("t_clr_eos"
|
||||||
tcapString ("t_cursor_to_ll", tcap[fc::t_cursor_to_ll].string);
|
, tcap[fc::t_clr_eos].string);
|
||||||
tcapString ("t_carriage_return", tcap[fc::t_carriage_return].string);
|
tcapString ("t_clr_eol"
|
||||||
tcapString ("t_tab", tcap[fc::t_tab].string);
|
, tcap[fc::t_clr_eol].string);
|
||||||
tcapString ("t_back_tab", tcap[fc::t_back_tab].string);
|
tcapString ("t_clr_bol"
|
||||||
tcapString ("t_insert_padding", tcap[fc::t_insert_padding].string);
|
, tcap[fc::t_clr_bol].string);
|
||||||
tcapString ("t_insert_character", tcap[fc::t_insert_character].string);
|
tcapString ("t_cursor_home"
|
||||||
tcapString ("t_parm_ich", tcap[fc::t_parm_ich].string);
|
, tcap[fc::t_cursor_home].string);
|
||||||
tcapString ("t_repeat_char", tcap[fc::t_repeat_char].string);
|
tcapString ("t_cursor_to_ll"
|
||||||
tcapString ("t_initialize_color", tcap[fc::t_initialize_color].string);
|
, tcap[fc::t_cursor_to_ll].string);
|
||||||
tcapString ("t_initialize_pair", tcap[fc::t_initialize_pair].string);
|
tcapString ("t_carriage_return"
|
||||||
tcapString ("t_set_a_foreground", tcap[fc::t_set_a_foreground].string);
|
, tcap[fc::t_carriage_return].string);
|
||||||
tcapString ("t_set_a_background", tcap[fc::t_set_a_background].string);
|
tcapString ("t_tab"
|
||||||
tcapString ("t_set_foreground", tcap[fc::t_set_foreground].string);
|
, tcap[fc::t_tab].string);
|
||||||
tcapString ("t_set_background", tcap[fc::t_set_background].string);
|
tcapString ("t_back_tab"
|
||||||
tcapString ("t_set_color_pair", tcap[fc::t_set_color_pair].string);
|
, tcap[fc::t_back_tab].string);
|
||||||
tcapString ("t_orig_pair", tcap[fc::t_orig_pair].string);
|
tcapString ("t_insert_padding"
|
||||||
tcapString ("t_orig_colors", tcap[fc::t_orig_colors].string);
|
, tcap[fc::t_insert_padding].string);
|
||||||
tcapString ("t_no_color_video", tcap[fc::t_no_color_video].string);
|
tcapString ("t_insert_character"
|
||||||
tcapString ("t_cursor_address", tcap[fc::t_cursor_address].string);
|
, tcap[fc::t_insert_character].string);
|
||||||
tcapString ("t_column_address", tcap[fc::t_column_address].string);
|
tcapString ("t_parm_ich"
|
||||||
tcapString ("t_row_address", tcap[fc::t_row_address].string);
|
, tcap[fc::t_parm_ich].string);
|
||||||
tcapString ("t_cursor_visible", tcap[fc::t_cursor_visible].string);
|
tcapString ("t_repeat_char"
|
||||||
tcapString ("t_cursor_invisible", tcap[fc::t_cursor_invisible].string);
|
, tcap[fc::t_repeat_char].string);
|
||||||
tcapString ("t_cursor_normal", tcap[fc::t_cursor_normal].string);
|
tcapString ("t_initialize_color"
|
||||||
tcapString ("t_cursor_up", tcap[fc::t_cursor_up].string);
|
, tcap[fc::t_initialize_color].string);
|
||||||
tcapString ("t_cursor_down", tcap[fc::t_cursor_down].string);
|
tcapString ("t_initialize_pair"
|
||||||
tcapString ("t_cursor_left", tcap[fc::t_cursor_left].string);
|
, tcap[fc::t_initialize_pair].string);
|
||||||
tcapString ("t_cursor_right", tcap[fc::t_cursor_right].string);
|
tcapString ("t_set_a_foreground"
|
||||||
tcapString ("t_parm_up_cursor", tcap[fc::t_parm_up_cursor].string);
|
, tcap[fc::t_set_a_foreground].string);
|
||||||
tcapString ("t_parm_down_cursor", tcap[fc::t_parm_down_cursor].string);
|
tcapString ("t_set_a_background"
|
||||||
tcapString ("t_parm_left_cursor", tcap[fc::t_parm_left_cursor].string);
|
, tcap[fc::t_set_a_background].string);
|
||||||
tcapString ("t_parm_right_cursor", tcap[fc::t_parm_right_cursor].string);
|
tcapString ("t_set_foreground"
|
||||||
tcapString ("t_save_cursor", tcap[fc::t_save_cursor].string);
|
, tcap[fc::t_set_foreground].string);
|
||||||
tcapString ("t_restore_cursor", tcap[fc::t_restore_cursor].string);
|
tcapString ("t_set_background"
|
||||||
tcapString ("t_scroll_forward", tcap[fc::t_scroll_forward].string);
|
, tcap[fc::t_set_background].string);
|
||||||
tcapString ("t_scroll_reverse", tcap[fc::t_scroll_reverse].string);
|
tcapString ("t_set_color_pair"
|
||||||
tcapString ("t_enter_ca_mode", tcap[fc::t_enter_ca_mode].string);
|
, tcap[fc::t_set_color_pair].string);
|
||||||
tcapString ("t_exit_ca_mode", tcap[fc::t_exit_ca_mode].string);
|
tcapString ("t_orig_pair"
|
||||||
tcapString ("t_enable_acs", tcap[fc::t_enable_acs].string);
|
, tcap[fc::t_orig_pair].string);
|
||||||
tcapString ("t_enter_bold_mode", tcap[fc::t_enter_bold_mode].string);
|
tcapString ("t_orig_colors"
|
||||||
tcapString ("t_exit_bold_mode", tcap[fc::t_exit_bold_mode].string);
|
, tcap[fc::t_orig_colors].string);
|
||||||
tcapString ("t_enter_dim_mode", tcap[fc::t_enter_dim_mode].string);
|
tcapString ("t_no_color_video"
|
||||||
tcapString ("t_exit_dim_mode", tcap[fc::t_exit_dim_mode].string);
|
, tcap[fc::t_no_color_video].string);
|
||||||
tcapString ("t_enter_italics_mode", tcap[fc::t_enter_italics_mode].string);
|
tcapString ("t_cursor_address"
|
||||||
tcapString ("t_exit_italics_mode", tcap[fc::t_exit_italics_mode].string);
|
, tcap[fc::t_cursor_address].string);
|
||||||
tcapString ("t_enter_underline_mode", tcap[fc::t_enter_underline_mode].string);
|
tcapString ("t_column_address"
|
||||||
tcapString ("t_exit_underline_mode", tcap[fc::t_exit_underline_mode].string);
|
, tcap[fc::t_column_address].string);
|
||||||
tcapString ("t_enter_blink_mode", tcap[fc::t_enter_blink_mode].string);
|
tcapString ("t_row_address"
|
||||||
tcapString ("t_exit_blink_mode", tcap[fc::t_exit_blink_mode].string);
|
, tcap[fc::t_row_address].string);
|
||||||
tcapString ("t_enter_reverse_mode", tcap[fc::t_enter_reverse_mode].string);
|
tcapString ("t_cursor_visible"
|
||||||
tcapString ("t_exit_reverse_mode", tcap[fc::t_exit_reverse_mode].string);
|
, tcap[fc::t_cursor_visible].string);
|
||||||
tcapString ("t_enter_standout_mode", tcap[fc::t_enter_standout_mode].string);
|
tcapString ("t_cursor_invisible"
|
||||||
tcapString ("t_exit_standout_mode", tcap[fc::t_exit_standout_mode].string);
|
, tcap[fc::t_cursor_invisible].string);
|
||||||
tcapString ("t_enter_secure_mode", tcap[fc::t_enter_secure_mode].string);
|
tcapString ("t_cursor_normal"
|
||||||
tcapString ("t_exit_secure_mode", tcap[fc::t_exit_secure_mode].string);
|
, tcap[fc::t_cursor_normal].string);
|
||||||
tcapString ("t_enter_protected_mode", tcap[fc::t_enter_protected_mode].string);
|
tcapString ("t_cursor_up"
|
||||||
tcapString ("t_exit_protected_mode", tcap[fc::t_exit_protected_mode].string);
|
, tcap[fc::t_cursor_up].string);
|
||||||
tcapString ("t_enter_crossed_out_mode", tcap[fc::t_enter_crossed_out_mode].string);
|
tcapString ("t_cursor_down"
|
||||||
tcapString ("t_exit_crossed_out_mode", tcap[fc::t_exit_crossed_out_mode].string);
|
, tcap[fc::t_cursor_down].string);
|
||||||
tcapString ("t_enter_dbl_underline_mode", tcap[fc::t_enter_dbl_underline_mode].string);
|
tcapString ("t_cursor_left"
|
||||||
tcapString ("t_exit_dbl_underline_mode", tcap[fc::t_exit_dbl_underline_mode].string);
|
, tcap[fc::t_cursor_left].string);
|
||||||
tcapString ("t_set_attributes", tcap[fc::t_set_attributes].string);
|
tcapString ("t_cursor_right"
|
||||||
tcapString ("t_exit_attribute_mode", tcap[fc::t_exit_attribute_mode].string);
|
, tcap[fc::t_cursor_right].string);
|
||||||
tcapString ("t_enter_alt_charset_mode", tcap[fc::t_enter_alt_charset_mode].string);
|
tcapString ("t_parm_up_cursor"
|
||||||
tcapString ("t_exit_alt_charset_mode", tcap[fc::t_exit_alt_charset_mode].string);
|
, tcap[fc::t_parm_up_cursor].string);
|
||||||
tcapString ("t_enter_pc_charset_mode", tcap[fc::t_enter_pc_charset_mode].string);
|
tcapString ("t_parm_down_cursor"
|
||||||
tcapString ("t_exit_pc_charset_mode", tcap[fc::t_exit_pc_charset_mode].string);
|
, tcap[fc::t_parm_down_cursor].string);
|
||||||
tcapString ("t_enter_insert_mode", tcap[fc::t_enter_insert_mode].string);
|
tcapString ("t_parm_left_cursor"
|
||||||
tcapString ("t_exit_insert_mode", tcap[fc::t_exit_insert_mode].string);
|
, tcap[fc::t_parm_left_cursor].string);
|
||||||
tcapString ("t_enter_am_mode", tcap[fc::t_enter_am_mode].string);
|
tcapString ("t_parm_right_cursor"
|
||||||
tcapString ("t_exit_am_mode", tcap[fc::t_exit_am_mode].string);
|
, tcap[fc::t_parm_right_cursor].string);
|
||||||
tcapString ("t_acs_chars", tcap[fc::t_acs_chars].string);
|
tcapString ("t_save_cursor"
|
||||||
tcapString ("t_keypad_xmit", tcap[fc::t_keypad_xmit].string);
|
, tcap[fc::t_save_cursor].string);
|
||||||
tcapString ("t_keypad_local", tcap[fc::t_keypad_local].string);
|
tcapString ("t_restore_cursor"
|
||||||
tcapString ("t_key_mouse", tcap[fc::t_key_mouse].string);
|
, tcap[fc::t_restore_cursor].string);
|
||||||
|
tcapString ("t_scroll_forward"
|
||||||
|
, tcap[fc::t_scroll_forward].string);
|
||||||
|
tcapString ("t_scroll_reverse"
|
||||||
|
, tcap[fc::t_scroll_reverse].string);
|
||||||
|
tcapString ("t_enter_ca_mode"
|
||||||
|
, tcap[fc::t_enter_ca_mode].string);
|
||||||
|
tcapString ("t_exit_ca_mode"
|
||||||
|
, tcap[fc::t_exit_ca_mode].string);
|
||||||
|
tcapString ("t_enable_acs"
|
||||||
|
, tcap[fc::t_enable_acs].string);
|
||||||
|
tcapString ("t_enter_bold_mode"
|
||||||
|
, tcap[fc::t_enter_bold_mode].string);
|
||||||
|
tcapString ("t_exit_bold_mode"
|
||||||
|
, tcap[fc::t_exit_bold_mode].string);
|
||||||
|
tcapString ("t_enter_dim_mode"
|
||||||
|
, tcap[fc::t_enter_dim_mode].string);
|
||||||
|
tcapString ("t_exit_dim_mode"
|
||||||
|
, tcap[fc::t_exit_dim_mode].string);
|
||||||
|
tcapString ("t_enter_italics_mode"
|
||||||
|
, tcap[fc::t_enter_italics_mode].string);
|
||||||
|
tcapString ("t_exit_italics_mode"
|
||||||
|
, tcap[fc::t_exit_italics_mode].string);
|
||||||
|
tcapString ("t_enter_underline_mode"
|
||||||
|
, tcap[fc::t_enter_underline_mode].string);
|
||||||
|
tcapString ("t_exit_underline_mode"
|
||||||
|
, tcap[fc::t_exit_underline_mode].string);
|
||||||
|
tcapString ("t_enter_blink_mode"
|
||||||
|
, tcap[fc::t_enter_blink_mode].string);
|
||||||
|
tcapString ("t_exit_blink_mode"
|
||||||
|
, tcap[fc::t_exit_blink_mode].string);
|
||||||
|
tcapString ("t_enter_reverse_mode"
|
||||||
|
, tcap[fc::t_enter_reverse_mode].string);
|
||||||
|
tcapString ("t_exit_reverse_mode"
|
||||||
|
, tcap[fc::t_exit_reverse_mode].string);
|
||||||
|
tcapString ("t_enter_standout_mode"
|
||||||
|
, tcap[fc::t_enter_standout_mode].string);
|
||||||
|
tcapString ("t_exit_standout_mode"
|
||||||
|
, tcap[fc::t_exit_standout_mode].string);
|
||||||
|
tcapString ("t_enter_secure_mode"
|
||||||
|
, tcap[fc::t_enter_secure_mode].string);
|
||||||
|
tcapString ("t_exit_secure_mode"
|
||||||
|
, tcap[fc::t_exit_secure_mode].string);
|
||||||
|
tcapString ("t_enter_protected_mode"
|
||||||
|
, tcap[fc::t_enter_protected_mode].string);
|
||||||
|
tcapString ("t_exit_protected_mode"
|
||||||
|
, tcap[fc::t_exit_protected_mode].string);
|
||||||
|
tcapString ("t_enter_crossed_out_mode"
|
||||||
|
, tcap[fc::t_enter_crossed_out_mode].string);
|
||||||
|
tcapString ("t_exit_crossed_out_mode"
|
||||||
|
, tcap[fc::t_exit_crossed_out_mode].string);
|
||||||
|
tcapString ("t_enter_dbl_underline_mode"
|
||||||
|
, tcap[fc::t_enter_dbl_underline_mode].string);
|
||||||
|
tcapString ("t_exit_dbl_underline_mode"
|
||||||
|
, tcap[fc::t_exit_dbl_underline_mode].string);
|
||||||
|
tcapString ("t_set_attributes"
|
||||||
|
, tcap[fc::t_set_attributes].string);
|
||||||
|
tcapString ("t_exit_attribute_mode"
|
||||||
|
, tcap[fc::t_exit_attribute_mode].string);
|
||||||
|
tcapString ("t_enter_alt_charset_mode"
|
||||||
|
, tcap[fc::t_enter_alt_charset_mode].string);
|
||||||
|
tcapString ("t_exit_alt_charset_mode"
|
||||||
|
, tcap[fc::t_exit_alt_charset_mode].string);
|
||||||
|
tcapString ("t_enter_pc_charset_mode"
|
||||||
|
, tcap[fc::t_enter_pc_charset_mode].string);
|
||||||
|
tcapString ("t_exit_pc_charset_mode"
|
||||||
|
, tcap[fc::t_exit_pc_charset_mode].string);
|
||||||
|
tcapString ("t_enter_insert_mode"
|
||||||
|
, tcap[fc::t_enter_insert_mode].string);
|
||||||
|
tcapString ("t_exit_insert_mode"
|
||||||
|
, tcap[fc::t_exit_insert_mode].string);
|
||||||
|
tcapString ("t_enter_am_mode"
|
||||||
|
, tcap[fc::t_enter_am_mode].string);
|
||||||
|
tcapString ("t_exit_am_mode"
|
||||||
|
, tcap[fc::t_exit_am_mode].string);
|
||||||
|
tcapString ("t_acs_chars"
|
||||||
|
, tcap[fc::t_acs_chars].string);
|
||||||
|
tcapString ("t_keypad_xmit"
|
||||||
|
, tcap[fc::t_keypad_xmit].string);
|
||||||
|
tcapString ("t_keypad_local"
|
||||||
|
, tcap[fc::t_keypad_local].string);
|
||||||
|
tcapString ("t_key_mouse"
|
||||||
|
, tcap[fc::t_key_mouse].string);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue