diff --git a/build.sh b/build.sh index 6a6d69fd..aa92582a 100755 --- a/build.sh +++ b/build.sh @@ -43,7 +43,7 @@ fi # Build commands case "$1" in "--release"|"release") - if ! ./configure --prefix="$PREFIX" CXXFLAGS="-O2" # "-O3 -fno-rtti" + if ! ./configure --prefix="$PREFIX" CXXFLAGS="-O3" # "-fno-rtti" then echo "${RED}Configure failed!${NORMAL}" 1>&2 exit 255 diff --git a/src/fapplication.cpp b/src/fapplication.cpp index 5a3dd7c7..3d8a3b11 100644 --- a/src/fapplication.cpp +++ b/src/fapplication.cpp @@ -694,7 +694,7 @@ void FApplication::mouseTracking() const //---------------------------------------------------------------------- inline void FApplication::performKeyboardAction() { - auto& keyboard = FTerm::getFKeyboard(); + const auto& keyboard = FTerm::getFKeyboard(); if ( keyboard.getKey() == FKey::Ctrl_l ) // Ctrl-L (redraw the screen) { @@ -761,7 +761,7 @@ inline void FApplication::sendEscapeKeyPressEvent() const inline bool FApplication::sendKeyDownEvent (FWidget* widget) const { // Send key down event - auto& keyboard = FTerm::getFKeyboard(); + const auto& keyboard = FTerm::getFKeyboard(); FKeyEvent k_down_ev (Event::KeyDown, keyboard.getKey()); sendEvent (widget, &k_down_ev); return k_down_ev.isAccepted(); @@ -771,7 +771,7 @@ inline bool FApplication::sendKeyDownEvent (FWidget* widget) const inline bool FApplication::sendKeyPressEvent (FWidget* widget) const { // Send key press event - auto& keyboard = FTerm::getFKeyboard(); + const auto& keyboard = FTerm::getFKeyboard(); FKeyEvent k_press_ev (Event::KeyPress, keyboard.getKey()); sendEvent (widget, &k_press_ev); return k_press_ev.isAccepted(); @@ -781,7 +781,7 @@ inline bool FApplication::sendKeyPressEvent (FWidget* widget) const inline bool FApplication::sendKeyUpEvent (FWidget* widget) const { // Send key up event - auto& keyboard = FTerm::getFKeyboard(); + const auto& keyboard = FTerm::getFKeyboard(); FKeyEvent k_up_ev (Event::KeyUp, keyboard.getKey()); sendEvent (widget, &k_up_ev); return k_up_ev.isAccepted(); @@ -818,8 +818,8 @@ inline void FApplication::sendKeyboardAccelerator() //---------------------------------------------------------------------- inline bool FApplication::hasDataInQueue() const { - auto& keyboard = FTerm::getFKeyboard(); - auto& mouse = FTerm::getFMouseControl(); + const auto& keyboard = FTerm::getFKeyboard(); + const auto& mouse = FTerm::getFMouseControl(); if ( keyboard.hasDataInQueue() || mouse.hasDataInQueue() @@ -890,7 +890,7 @@ void FApplication::processMouseEvent() const //---------------------------------------------------------------------- bool FApplication::processDialogSwitchAccelerator() const { - auto& keyboard = FTerm::getFKeyboard(); + const auto& keyboard = FTerm::getFKeyboard(); if ( keyboard.getKey() >= FKey::Meta_1 && keyboard.getKey() <= FKey::Meta_9 ) diff --git a/src/fterm.cpp b/src/fterm.cpp index 1eabdace..1105de3b 100644 --- a/src/fterm.cpp +++ b/src/fterm.cpp @@ -108,8 +108,7 @@ FTerm::~FTerm() // destructor //---------------------------------------------------------------------- std::size_t FTerm::getLineNumber() { - auto& data = FTerm::getFTermData(); - const auto& term_geometry = data.getTermGeometry(); + const auto& term_geometry = FTerm::getFTermData().getTermGeometry(); if ( term_geometry.getHeight() == 0 ) detectTermSize(); @@ -120,8 +119,7 @@ std::size_t FTerm::getLineNumber() //---------------------------------------------------------------------- std::size_t FTerm::getColumnNumber() { - auto& data = FTerm::getFTermData(); - const auto& term_geometry = data.getTermGeometry(); + const auto& term_geometry = FTerm::getFTermData().getTermGeometry(); if ( term_geometry.getWidth() == 0 ) detectTermSize(); @@ -139,29 +137,25 @@ FString FTerm::getKeyName (FKey keynum) //---------------------------------------------------------------------- charSubstitution& FTerm::getCharSubstitutionMap() { - auto& data = FTerm::getFTermData(); - return data.getCharSubstitutionMap(); + return FTerm::getFTermData().getCharSubstitutionMap(); } //---------------------------------------------------------------------- int FTerm::getTTYFileDescriptor() { - auto& data = FTerm::getFTermData(); - return data.getTTYFileDescriptor(); + return FTerm::getFTermData().getTTYFileDescriptor(); } //---------------------------------------------------------------------- std::string FTerm::getTermType() { - auto& data = FTerm::getFTermData(); - return data.getTermType(); + return FTerm::getFTermData().getTermType(); } //---------------------------------------------------------------------- std::string FTerm::getTermFileName() { - auto& data = FTerm::getFTermData(); - return data.getTermFileName(); + return FTerm::getFTermData().getTermFileName(); } //---------------------------------------------------------------------- @@ -284,169 +278,145 @@ bool FTerm::isNormal (const FChar& ch) //---------------------------------------------------------------------- bool FTerm::hasUTF8() { - auto& data = FTerm::getFTermData(); - return data.hasUTF8Console(); + return FTerm::getFTermData().hasUTF8Console(); } //---------------------------------------------------------------------- bool FTerm::isMonochron() { - auto& data = FTerm::getFTermData(); - return data.isMonochron(); + return FTerm::getFTermData().isMonochron(); } //---------------------------------------------------------------------- bool FTerm::isAnsiTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isAnsiTerminal(); + return FTerm::getFTermDetection().isAnsiTerminal(); } //---------------------------------------------------------------------- bool FTerm::isXTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isXTerminal(); + return FTerm::getFTermDetection().isXTerminal(); } //---------------------------------------------------------------------- bool FTerm::isRxvtTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isRxvtTerminal(); + return FTerm::getFTermDetection().isRxvtTerminal(); } //---------------------------------------------------------------------- bool FTerm::isUrxvtTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isUrxvtTerminal(); + return FTerm::getFTermDetection().isUrxvtTerminal(); } //---------------------------------------------------------------------- bool FTerm::isKdeTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isKdeTerminal(); + return FTerm::getFTermDetection().isKdeTerminal(); } //---------------------------------------------------------------------- bool FTerm::isGnomeTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isGnomeTerminal(); + return FTerm::getFTermDetection().isGnomeTerminal(); } //---------------------------------------------------------------------- bool FTerm::isPuttyTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isPuttyTerminal(); + return FTerm::getFTermDetection().isPuttyTerminal(); } //---------------------------------------------------------------------- bool FTerm::isWindowsTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isWindowsTerminal(); + return FTerm::getFTermDetection().isWindowsTerminal(); } //---------------------------------------------------------------------- bool FTerm::isTeraTerm() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isTeraTerm(); + return FTerm::getFTermDetection().isTeraTerm(); } //---------------------------------------------------------------------- bool FTerm::isCygwinTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isCygwinTerminal(); + return FTerm::getFTermDetection().isCygwinTerminal(); } //---------------------------------------------------------------------- bool FTerm::isMinttyTerm() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isMinttyTerm(); + return FTerm::getFTermDetection().isMinttyTerm(); } //---------------------------------------------------------------------- bool FTerm::isLinuxTerm() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isLinuxTerm(); + return FTerm::getFTermDetection().isLinuxTerm(); } //---------------------------------------------------------------------- bool FTerm::isFreeBSDTerm() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isFreeBSDTerm(); + return FTerm::getFTermDetection().isFreeBSDTerm(); } //---------------------------------------------------------------------- bool FTerm::isNetBSDTerm() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isNetBSDTerm(); + return FTerm::getFTermDetection().isNetBSDTerm(); } //---------------------------------------------------------------------- bool FTerm::isOpenBSDTerm() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isOpenBSDTerm(); + return FTerm::getFTermDetection().isOpenBSDTerm(); } //---------------------------------------------------------------------- bool FTerm::isSunTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isSunTerminal(); + return FTerm::getFTermDetection().isSunTerminal(); } //---------------------------------------------------------------------- bool FTerm::isScreenTerm() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isScreenTerm(); + return FTerm::getFTermDetection().isScreenTerm(); } //---------------------------------------------------------------------- bool FTerm::isTmuxTerm() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isTmuxTerm(); + return FTerm::getFTermDetection().isTmuxTerm(); } //---------------------------------------------------------------------- bool FTerm::isKtermTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isKtermTerminal(); + return FTerm::getFTermDetection().isKtermTerminal(); } //---------------------------------------------------------------------- bool FTerm::isMltermTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isMltermTerminal(); + return FTerm::getFTermDetection().isMltermTerminal(); } //---------------------------------------------------------------------- bool FTerm::isKittyTerminal() { - auto& term_detection = FTerm::getFTermDetection(); - return term_detection.isKittyTerminal(); + return FTerm::getFTermDetection().isKittyTerminal(); } //---------------------------------------------------------------------- bool FTerm::isNewFont() { - auto& data = FTerm::getFTermData(); - return data.isNewFont(); + return FTerm::getFTermData().isNewFont(); } //---------------------------------------------------------------------- @@ -469,29 +439,25 @@ bool FTerm::isCursorHideable() //---------------------------------------------------------------------- bool FTerm::hasChangedTermSize() { - auto& data = FTerm::getFTermData(); - return data.hasTermResized(); + return FTerm::getFTermData().hasTermResized(); } //---------------------------------------------------------------------- bool FTerm::hasShadowCharacter() { - auto& data = FTerm::getFTermData(); - return data.hasShadowCharacter(); + return FTerm::getFTermData().hasShadowCharacter(); } //---------------------------------------------------------------------- bool FTerm::hasHalfBlockCharacter() { - auto& data = FTerm::getFTermData(); - return data.hasHalfBlockCharacter(); + return FTerm::getFTermData().hasHalfBlockCharacter(); } //---------------------------------------------------------------------- bool FTerm::hasAlternateScreen() { - auto& data = FTerm::getFTermData(); - return data.hasAlternateScreen(); + return FTerm::getFTermData().hasAlternateScreen(); } //---------------------------------------------------------------------- @@ -513,8 +479,7 @@ bool FTerm::canChangeColorPalette() //---------------------------------------------------------------------- void FTerm::setTermType (const std::string& term_name) { - auto& data = FTerm::getFTermData(); - data.setTermType(term_name); + FTerm::getFTermData().setTermType(term_name); } //---------------------------------------------------------------------- @@ -754,9 +719,7 @@ std::string FTerm::moveCursorString (int xold, int yold, int xnew, int ynew) { // Returns the cursor move string - auto& data = FTerm::getFTermData(); - - if ( data.hasCursorOptimisation() ) + if ( FTerm::getFTermData().hasCursorOptimisation() ) { auto& opti_move = FTerm::getFOptiMove(); return opti_move.moveCursor (xold, yold, xnew, ynew); @@ -802,9 +765,8 @@ void FTerm::detectTermSize() { // Detect the terminal width and height - auto& data = FTerm::getFTermData(); struct winsize win_size{}; - auto& term_geometry = data.getTermGeometry(); + auto& term_geometry = FTerm::getFTermData().getTermGeometry(); int ret{}; errno = 0; @@ -938,20 +900,17 @@ void FTerm::setPalette (FColor index, int r, int g, int b) #if defined(__linux__) || defined(UNIT_TEST) void FTerm::setBeep (int Hz, int ms) { - auto& linux_console = FTerm::getFTermLinux(); - linux_console.setBeep (Hz, ms); + FTerm::getFTermLinux().setBeep (Hz, ms); } #elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(UNIT_TEST) void FTerm::setBeep (int Hz, int ms) { - auto& freebsd_console = FTerm::getFTermFreeBSD(); - freebsd_console.setBeep (Hz, ms); + FTerm::getFTermFreeBSD().setBeep (Hz, ms); } #elif defined(__NetBSD__) || defined(__OpenBSD__) || defined(UNIT_TEST) void FTerm::setBeep (int Hz, int ms) { - auto& openbsd_console = FTerm::getFTermOpenBSD(); - openbsd_console.setBeep (Hz, ms); + FTerm::getFTermOpenBSD().setBeep (Hz, ms); } #else void FTerm::setBeep (int, int) @@ -962,18 +921,15 @@ void FTerm::setBeep (int, int) void FTerm::resetBeep() { #if defined(__linux__) || defined(UNIT_TEST) - auto& linux_console = FTerm::getFTermLinux(); - linux_console.resetBeep(); + FTerm::getFTermLinux().resetBeep(); #endif #if defined(__FreeBSD__) || defined(__DragonFly__) || defined(UNIT_TEST) - auto& freebsd_console = FTerm::getFTermFreeBSD(); - freebsd_console.resetBeep(); + FTerm::getFTermFreeBSD().resetBeep(); #endif #if defined(__NetBSD__) || defined(__OpenBSD__) || defined(UNIT_TEST) - auto& openbsd_console = FTerm::getFTermOpenBSD(); - openbsd_console.resetBeep(); + FTerm::getFTermOpenBSD().resetBeep(); #endif } @@ -987,8 +943,7 @@ void FTerm::beep() //---------------------------------------------------------------------- void FTerm::setEncoding (Encoding enc) { - auto& data = FTerm::getFTermData(); - data.setTermEncoding (enc); + FTerm::getFTermData().setTermEncoding (enc); assert ( enc == Encoding::UTF8 || enc == Encoding::VT100 // VT100 line drawing @@ -1006,7 +961,7 @@ void FTerm::setEncoding (Encoding enc) case Encoding::VT100: case Encoding::PC: - if ( isXTerminal() && data.hasUTF8Console() ) + if ( isXTerminal() && FTerm::getFTermData().hasUTF8Console() ) putchar() = &FTerm::putchar_UTF8; else putchar() = &FTerm::putchar_ASCII; @@ -1035,8 +990,7 @@ void FTerm::setEncoding (Encoding enc) //---------------------------------------------------------------------- Encoding FTerm::getEncoding() { - auto& data = FTerm::getFTermData(); - return data.getTermEncoding(); + return FTerm::getFTermData().getTermEncoding(); } //---------------------------------------------------------------------- @@ -1064,7 +1018,7 @@ bool FTerm::charEncodable (wchar_t c) //---------------------------------------------------------------------- wchar_t FTerm::charEncode (wchar_t c) { - auto& data = FTerm::getFTermData(); + const auto& data = FTerm::getFTermData(); return charEncode (c, data.getTermEncoding()); } @@ -1190,11 +1144,9 @@ void FTerm::initScreenSettings() #if defined(__linux__) // Important: Do not use setNewFont() or setVGAFont() after // the console character mapping has been initialized - auto& linux_console = FTerm::getFTermLinux(); - linux_console.initCharMap(); + FTerm::getFTermLinux().initCharMap(); #elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(UNIT_TEST) - auto& freebsd_console = FTerm::getFTermFreeBSD(); - freebsd_console.initCharMap(); + FTerm::getFTermFreeBSD().initCharMap(); #endif // set xterm underline cursor @@ -1214,8 +1166,7 @@ const char* FTerm::changeAttribute (FChar& term_attr, FChar& next_attr) //---------------------------------------------------------------------- void FTerm::changeTermSizeFinished() { - auto& data = FTerm::getFTermData(); - data.setTermResized(false); + FTerm::getFTermData().setTermResized(false); } @@ -1231,15 +1182,11 @@ void FTerm::init_global_values() { // Initialize global values - auto& data = FTerm::getFTermData(); - - // Preset to false - data.setNewFont(false); + FTerm::getFTermData().setNewFont(false); // Preset to false if ( ! getStartOptions().terminal_detection ) { - auto& term_detection = FTerm::getFTermDetection(); - term_detection.setTerminalDetection (false); + FTerm::getFTermDetection().setTerminalDetection (false); } } @@ -1252,8 +1199,7 @@ void FTerm::init_terminal_device_path() if ( ttyname_r(stdout_no, termfilename.data(), termfilename.size()) ) termfilename[0] = '\0'; - auto& data = FTerm::getFTermData(); - data.setTermFileName(termfilename.data()); + FTerm::getFTermData().setTermFileName(termfilename.data()); } //---------------------------------------------------------------------- @@ -1333,12 +1279,10 @@ void FTerm::init_pc_charset() if ( isGnomeTerminal() || isLinuxTerm() ) { - auto& data = FTerm::getFTermData(); - // Fallback if tcap "S2" is not found if ( ! TCAP(t_enter_pc_charset_mode) ) { - if ( data.hasUTF8Console() ) + if ( FTerm::getFTermData().hasUTF8Console() ) { // Select iso8859-1 + null mapping TCAP(t_enter_pc_charset_mode) = ESC "%@" ESC "(U"; @@ -1357,7 +1301,7 @@ void FTerm::init_pc_charset() // Fallback if tcap "S3" is not found if ( ! TCAP(t_exit_pc_charset_mode) ) { - if ( data.hasUTF8Console() ) + if ( FTerm::getFTermData().hasUTF8Console() ) { // Select ascii mapping + utf8 TCAP(t_exit_pc_charset_mode) = ESC "(B" ESC "%G"; @@ -1575,8 +1519,7 @@ void FTerm::init_locale() { // Init current locale - auto& data = FTerm::getFTermData(); - const auto& termtype = data.getTermType(); + const auto& termtype = FTerm::getFTermData().getTermType(); const char* locale_name = std::setlocale (LC_ALL, ""); std::setlocale (LC_NUMERIC, ""); @@ -1750,8 +1693,7 @@ void FTerm::init_tab_quirks() // on the terminal and does not move the cursor to the next tab stop // position - auto& data = FTerm::getFTermData(); - const auto& enc = data.getTermEncoding(); + const auto& enc = FTerm::getFTermData().getTermEncoding(); if ( enc == Encoding::VT100 || enc == Encoding::PC ) { @@ -2227,7 +2169,7 @@ bool FTerm::init_terminal() const // Terminal detection FTermDetection::detect(); - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); setTermType (term_detection.getTermType()); return true; } @@ -2237,7 +2179,7 @@ void FTerm::initOSspecifics() const { #if defined(__linux__) auto& linux_console = FTerm::getFTermLinux(); - linux_console.init(); // Initialize Linux console + linux_console.init(); // Initialize Linux console #if DEBUG auto& data = FTerm::getFTermData(); @@ -2360,7 +2302,7 @@ void FTerm::finish() const disableKeypad(); finish_encoding(); - auto& data = FTerm::getFTermData(); + const auto& data = FTerm::getFTermData(); if ( data.isNewFont() || data.isVGAFont() ) resetFont(); @@ -2370,14 +2312,11 @@ void FTerm::finish() const void FTerm::finishOSspecifics() const { #if defined(__linux__) - auto& linux_console = FTerm::getFTermLinux(); - linux_console.finish(); + FTerm::getFTermLinux().finish(); #elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(UNIT_TEST) - auto& freebsd_console = FTerm::getFTermFreeBSD(); - freebsd_console.finish(); + FTerm::getFTermFreeBSD().finish(); #elif defined(__NetBSD__) || defined(__OpenBSD__) || defined(UNIT_TEST) - auto& openbsd_console = FTerm::getFTermOpenBSD(); - openbsd_console.finish(); + FTerm::getFTermOpenBSD().finish(); #endif } @@ -2394,8 +2333,7 @@ void FTerm::finish_encoding() const void FTerm::printExitMessage() { // Print exit message - auto& data = FTerm::getFTermData(); - const auto& exit_message = data.getExitMessage(); + const auto& exit_message = FTerm::getFTermData().getExitMessage(); if ( ! exit_message.isEmpty() ) std::cerr << "Exit: " << exit_message << std::endl; @@ -2404,10 +2342,8 @@ void FTerm::printExitMessage() //---------------------------------------------------------------------- void FTerm::terminalSizeChange() { - auto& data = FTerm::getFTermData(); - // Initialize a resize event to the root element - data.setTermResized(true); + FTerm::getFTermData().setTermResized(true); } //---------------------------------------------------------------------- @@ -2418,11 +2354,10 @@ void FTerm::processTermination (int signum) std::fflush (stderr); std::fflush (stdout); - auto& data = FTerm::getFTermData(); FStringStream msg{}; msg << "Program stopped: signal " << signum << " (" << strsignal(signum) << ")"; - data.setExitMessage(msg.str()); + FTerm::getFTermData().setExitMessage(msg.str()); printExitMessage(); std::terminate(); } diff --git a/src/ftermcap.cpp b/src/ftermcap.cpp index d885bef4..50b69cf7 100644 --- a/src/ftermcap.cpp +++ b/src/ftermcap.cpp @@ -252,7 +252,7 @@ void FTermcap::termcap() std::vector terminals{}; int status = uninitialized; auto& fterm_data = FTerm::getFTermData(); - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); const bool color256 = term_detection.canDisplay256Colors(); baudrate = int(fterm_data.getBaudrate()); @@ -301,8 +301,7 @@ void FTermcap::termcapError (int status) if ( status == no_entry || status == uninitialized ) { - auto& fterm_data = FTerm::getFTermData(); - const auto& termtype = fterm_data.getTermType(); + const auto& termtype = FTerm::getFTermData().getTermType(); std::clog << FLog::LogLevel::Error << "Unknown terminal: \"" << termtype << "\". " << "Check the TERM environment variable. " diff --git a/src/ftermcapquirks.cpp b/src/ftermcapquirks.cpp index ff84d1cf..9f4e5097 100644 --- a/src/ftermcapquirks.cpp +++ b/src/ftermcapquirks.cpp @@ -42,7 +42,7 @@ namespace finalcut //---------------------------------------------------------------------- void FTermcapQuirks::terminalFixup() { - auto& td = FTerm::getFTermDetection(); + const auto& td = FTerm::getFTermDetection(); if ( td.isCygwinTerminal() ) { @@ -228,9 +228,7 @@ void FTermcapQuirks::xterm() void FTermcapQuirks::rxvt() { // Set enter/exit alternative charset mode for rxvt terminal - auto& fterm_data = FTerm::getFTermData(); - const auto& termtype = fterm_data.getTermType(); - auto& term_detection = FTerm::getFTermDetection(); + const auto& termtype = FTerm::getFTermData().getTermType(); if ( termtype.substr(0,12) == "rxvt-16color" ) { @@ -239,7 +237,7 @@ void FTermcapQuirks::rxvt() } // Set ansi foreground and background color - if ( ! term_detection.isUrxvtTerminal() ) + if ( ! FTerm::getFTermDetection().isUrxvtTerminal() ) { TCAP(t_set_a_foreground) = \ CSI "%?%p1%{8}%<%t%p1%{30}%+%e%p1%'R'%+%;%dm"; @@ -251,7 +249,7 @@ void FTermcapQuirks::rxvt() //---------------------------------------------------------------------- void FTermcapQuirks::vte() { - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); // gnome-terminal has NC=16 however, it can use the dim attribute FTermcap::attr_without_color = 0; @@ -445,14 +443,12 @@ void FTermcapQuirks::sunConsole() //---------------------------------------------------------------------- void FTermcapQuirks::screen() { - auto& term_detection = FTerm::getFTermDetection(); - // Fallback if "Ic" is not found if ( ! TCAP(t_initialize_color) ) { FTermcap::can_change_color_palette = true; - if ( term_detection.isTmuxTerm() ) + if ( FTerm::getFTermDetection().isTmuxTerm() ) { TCAP(t_initialize_color) = \ ESC "Ptmux;" ESC OSC "4;%p1%d;rgb:" diff --git a/src/ftermdetection.cpp b/src/ftermdetection.cpp index feae001e..e32cabc9 100644 --- a/src/ftermdetection.cpp +++ b/src/ftermdetection.cpp @@ -159,8 +159,7 @@ void FTermDetection::getSystemTermType() { // Import the untrusted environment variable TERM const auto& term_env = std::getenv("TERM"); - auto& fterm_data = FTerm::getFTermData(); - const auto& termfilename = fterm_data.getTermFileName(); + const auto& termfilename = FTerm::getFTermData().getTermFileName(); if ( term_env ) { @@ -198,8 +197,7 @@ bool FTermDetection::getTTYtype() // vt100 ttys0 // Get term basename - auto& fterm_data = FTerm::getFTermData(); - const auto& termfilename = fterm_data.getTermFileName(); + const auto& termfilename = FTerm::getFTermData().getTermFileName(); const char* term_basename = std::strrchr(termfilename.data(), '/'); if ( term_basename == nullptr ) @@ -254,8 +252,7 @@ bool FTermDetection::getTTYSFileEntry() // Analyse /etc/ttys and get the term name // get term basename - auto& fterm_data = FTerm::getFTermData(); - const auto& termfilename = fterm_data.getTermFileName(); + const auto& termfilename = FTerm::getFTermData().getTermFileName(); const char* term_basename = std::strrchr(termfilename.data(), '/'); if ( term_basename == nullptr ) diff --git a/src/ftermlinux.cpp b/src/ftermlinux.cpp index e0b7c144..3adfa84f 100644 --- a/src/ftermlinux.cpp +++ b/src/ftermlinux.cpp @@ -85,14 +85,12 @@ bool FTermLinux::setCursorStyle (CursorStyle style) { // Set cursor style in linux console - auto& fterm_data = FTerm::getFTermData(); - if ( ! FTerm::isLinuxTerm() ) return false; linux_console_cursor_style = style; - if ( fterm_data.isCursorHidden() ) + if ( FTerm::getFTermData().isCursorHidden() ) return false; setLinuxCursorStyle(style); @@ -153,7 +151,6 @@ void FTermLinux::init() // Initialize Linux console auto& fterm_data = FTerm::getFTermData(); - auto& term_detection = FTerm::getFTermDetection(); screen_unicode_map.entries = nullptr; screen_font.data = nullptr; fterm_data.supportShadowCharacter (true); @@ -166,7 +163,7 @@ void FTermLinux::init() if ( FTerm::openConsole() == 0 ) { - term_detection.setLinuxTerm (isLinuxConsole()); + FTerm::getFTermDetection().setLinuxTerm (isLinuxConsole()); if ( FTerm::isLinuxTerm() ) { diff --git a/src/ftermxterminal.cpp b/src/ftermxterminal.cpp index fb73f5d2..e5529213 100644 --- a/src/ftermxterminal.cpp +++ b/src/ftermxterminal.cpp @@ -241,9 +241,7 @@ void FTermXTerminal::resetHighlightBackground() //---------------------------------------------------------------------- void FTermXTerminal::resetDefaults() { - auto& term_detection = FTerm::getFTermDetection(); - - if ( term_detection.isPuttyTerminal() ) + if ( FTerm::getFTermDetection().isPuttyTerminal() ) return; // Redefines the cursor color if resetCursorColor() doesn't work @@ -274,7 +272,7 @@ void FTermXTerminal::resetTitle() //---------------------------------------------------------------------- void FTermXTerminal::captureFontAndTitle() { - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( ( term_detection.isXTerminal() || term_detection.isUrxvtTerminal() ) @@ -312,7 +310,7 @@ void FTermXTerminal::setXTermCursorStyle() return; #endif - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isGnomeTerminal() && ! term_detection.hasSetCursorStyleSupport() ) @@ -336,7 +334,7 @@ void FTermXTerminal::setXTermCursorStyle() void FTermXTerminal::setXTermTitle() { // Set the xterm title - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isXTerminal() || term_detection.isScreenTerm() @@ -361,15 +359,13 @@ void FTermXTerminal::setXTermTitle() //---------------------------------------------------------------------- void FTermXTerminal::setXTermSize() const { - auto& term_detection = FTerm::getFTermDetection(); + if ( ! FTerm::getFTermDetection().isXTerminal() ) + return; - if ( term_detection.isXTerminal() ) - { - FTerm::putstringf ( CSI "8;%lu;%lut" - , uLong(term_height) - , uLong(term_width) ); - std::fflush(stdout); - } + FTerm::putstringf ( CSI "8;%lu;%lut" + , uLong(term_height) + , uLong(term_width) ); + std::fflush(stdout); } //---------------------------------------------------------------------- @@ -377,7 +373,7 @@ void FTermXTerminal::setXTermFont() { // Change the XTerm font (needs the allowFontOps resource) - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isXTerminal() || term_detection.isScreenTerm() @@ -395,7 +391,7 @@ void FTermXTerminal::setXTermForeground() { // Set the XTerm text foreground color - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isXTerminal() || term_detection.isScreenTerm() @@ -415,7 +411,7 @@ void FTermXTerminal::setXTermBackground() { // Set the XTerm text background color - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isXTerminal() || term_detection.isScreenTerm() @@ -435,7 +431,7 @@ void FTermXTerminal::setXTermCursorColor() { // Set the text cursor color - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isXTerminal() || term_detection.isScreenTerm() @@ -455,7 +451,7 @@ void FTermXTerminal::setXTermMouseForeground() { // Set the mouse foreground color - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isXTerminal() || term_detection.isScreenTerm() @@ -474,7 +470,7 @@ void FTermXTerminal::setXTermMouseBackground() { // Set the mouse background color - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isXTerminal() || term_detection.isScreenTerm() @@ -492,7 +488,7 @@ void FTermXTerminal::setXTermHighlightBackground() { // Set the highlight background color - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isXTerminal() || term_detection.isScreenTerm() @@ -512,9 +508,7 @@ void FTermXTerminal::setXTerm8ColorDefaults() // Redefinition of the XTerm default colors // for the final cut 8 color theme - auto& term_detection = FTerm::getFTermDetection(); - - if ( term_detection.isPuttyTerminal() ) + if ( FTerm::getFTermDetection().isPuttyTerminal() ) return; setXTermDefaultsMouseCursor(); @@ -534,9 +528,7 @@ void FTermXTerminal::setXTerm16ColorDefaults() // Redefinition of the XTerm default colors // for the final cut 16 color theme - auto& term_detection = FTerm::getFTermDetection(); - - if ( term_detection.isPuttyTerminal() ) + if ( FTerm::getFTermDetection().isPuttyTerminal() ) return; setXTermDefaultsMouseCursor(); @@ -556,16 +548,14 @@ inline void FTermXTerminal::setXTermDefaultsMouseCursor() setMouseBackground("rgb:ffff/ffff/ffff"); // white setMouseForeground ("rgb:0000/0000/0000"); // black - auto& term_detection = FTerm::getFTermDetection(); - - if ( ! term_detection.isGnomeTerminal() ) + if ( ! FTerm::getFTermDetection().isGnomeTerminal() ) setCursorColor("rgb:ffff/ffff/ffff"); // white } //---------------------------------------------------------------------- inline bool FTermXTerminal::canSetXTermBackground() const { - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( xterm_default_colors && ! (term_detection.isMinttyTerm() @@ -582,9 +572,7 @@ void FTermXTerminal::resetXTermColorMap() const { // Reset the entire color table - auto& term_detection = FTerm::getFTermDetection(); - - if ( term_detection.isMinttyTerm() ) + if ( FTerm::getFTermDetection().isMinttyTerm() ) { FTerm::putstring (ESC "c"); // Full Reset (RIS) } @@ -684,7 +672,7 @@ void FTermXTerminal::resetXTermHighlightBackground() const //---------------------------------------------------------------------- bool FTermXTerminal::canResetColor() const { - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isGnomeTerminal() && term_detection.getGnomeTerminalID() < 3502 ) @@ -705,7 +693,7 @@ bool FTermXTerminal::canResetColor() const //---------------------------------------------------------------------- void FTermXTerminal::oscPrefix() const { - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isTmuxTerm() ) { @@ -722,7 +710,7 @@ void FTermXTerminal::oscPrefix() const //---------------------------------------------------------------------- void FTermXTerminal::oscPostfix() const { - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isScreenTerm() || term_detection.isTmuxTerm() ) @@ -735,7 +723,7 @@ void FTermXTerminal::oscPostfix() const //---------------------------------------------------------------------- FString FTermXTerminal::captureXTermFont() const { - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( ! term_detection.isXTerminal() && ! term_detection.isScreenTerm() @@ -797,9 +785,7 @@ FString FTermXTerminal::captureXTermFont() const //---------------------------------------------------------------------- FString FTermXTerminal::captureXTermTitle() const { - auto& term_detection = FTerm::getFTermDetection(); - - if ( term_detection.isKdeTerminal() ) + if ( FTerm::getFTermDetection().isKdeTerminal() ) return {}; fd_set ifds{}; diff --git a/src/fvterm.cpp b/src/fvterm.cpp index 4ebd5c65..17e3f734 100644 --- a/src/fvterm.cpp +++ b/src/fvterm.cpp @@ -1886,7 +1886,7 @@ void FVTerm::init() //---------------------------------------------------------------------- void FVTerm::init_characterLengths() { - auto& opti_move = FTerm::getFOptiMove(); + const auto& opti_move = FTerm::getFOptiMove(); cursor_address_length = opti_move.getCursorAddressLength(); erase_char_length = opti_move.getEraseCharsLength(); repeat_char_length = opti_move.getRepeatCharLength(); @@ -1920,7 +1920,7 @@ void FVTerm::init_combined_character() if ( FTerm::getEncoding() != Encoding::UTF8 ) return; - auto& term_detection = FTerm::getFTermDetection(); + const auto& term_detection = FTerm::getFTermDetection(); if ( term_detection.isCygwinTerminal() ) return;