Replace std::strlen with stringLength
This commit is contained in:
parent
2dc8d7f2d3
commit
de4ac269e4
|
@ -1,6 +1,7 @@
|
||||||
2021-06-06 Markus Gans <guru.mail@muenster.de>
|
2021-06-06 Markus Gans <guru.mail@muenster.de>
|
||||||
* Bug fixing in FString and FTermDetection
|
* Bug fixing in FString and FTermDetection
|
||||||
* FTermDetection now has clean code by using FString instead of char*
|
* FTermDetection now has clean code by using FString instead of char*
|
||||||
|
* Replace std::strlen with stringLength
|
||||||
|
|
||||||
2021-06-03 Markus Gans <guru.mail@muenster.de>
|
2021-06-03 Markus Gans <guru.mail@muenster.de>
|
||||||
* Some FString optimizations
|
* Some FString optimizations
|
||||||
|
|
|
@ -249,7 +249,7 @@ inline FKey FKeyboard::getMouseProtocolKey() const
|
||||||
if ( ! mouse_support )
|
if ( ! mouse_support )
|
||||||
return NOT_SET;
|
return NOT_SET;
|
||||||
|
|
||||||
const std::size_t buf_len = std::strlen(fifo_buf);
|
const std::size_t buf_len = stringLength(fifo_buf);
|
||||||
|
|
||||||
// x11 mouse tracking
|
// x11 mouse tracking
|
||||||
if ( buf_len >= 6 && fifo_buf[1] == '[' && fifo_buf[2] == 'M' )
|
if ( buf_len >= 6 && fifo_buf[1] == '[' && fifo_buf[2] == 'M' )
|
||||||
|
@ -282,7 +282,7 @@ inline FKey FKeyboard::getTermcapKey()
|
||||||
for (auto&& entry : *key_map)
|
for (auto&& entry : *key_map)
|
||||||
{
|
{
|
||||||
const char* kstr = entry.string;
|
const char* kstr = entry.string;
|
||||||
const std::size_t len = kstr ? std::strlen(kstr) : 0;
|
const std::size_t len = kstr ? stringLength(kstr) : 0;
|
||||||
|
|
||||||
if ( kstr && std::strncmp(kstr, fifo_buf, len) == 0 ) // found
|
if ( kstr && std::strncmp(kstr, fifo_buf, len) == 0 ) // found
|
||||||
{
|
{
|
||||||
|
@ -312,7 +312,7 @@ inline FKey FKeyboard::getKnownKey()
|
||||||
for (auto&& entry : fc::fkey_table)
|
for (auto&& entry : fc::fkey_table)
|
||||||
{
|
{
|
||||||
const char* kstr = entry.string; // The string is never null
|
const char* kstr = entry.string; // The string is never null
|
||||||
const std::size_t len = std::strlen(kstr);
|
const std::size_t len = stringLength(kstr);
|
||||||
|
|
||||||
if ( std::strncmp(kstr, fifo_buf, len) == 0 ) // found
|
if ( std::strncmp(kstr, fifo_buf, len) == 0 ) // found
|
||||||
{
|
{
|
||||||
|
@ -355,7 +355,7 @@ inline FKey FKeyboard::getSingleKey()
|
||||||
if ( utf8_input && (firstchar & 0xc0) == 0xc0 )
|
if ( utf8_input && (firstchar & 0xc0) == 0xc0 )
|
||||||
{
|
{
|
||||||
std::array<char, 5> utf8char{}; // Init array with '\0'
|
std::array<char, 5> utf8char{}; // Init array with '\0'
|
||||||
const std::size_t buf_len = std::strlen(fifo_buf);
|
const std::size_t buf_len = stringLength(fifo_buf);
|
||||||
|
|
||||||
if ( (firstchar & 0xe0) == 0xc0 )
|
if ( (firstchar & 0xe0) == 0xc0 )
|
||||||
len = 2;
|
len = 2;
|
||||||
|
@ -482,14 +482,14 @@ void FKeyboard::parseKeyBuffer()
|
||||||
{
|
{
|
||||||
key = fkey;
|
key = fkey;
|
||||||
mouseTracking();
|
mouseTracking();
|
||||||
fifo_offset = int(std::strlen(fifo_buf));
|
fifo_offset = int(stringLength(fifo_buf));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( fkey != FKey::Incomplete )
|
if ( fkey != FKey::Incomplete )
|
||||||
{
|
{
|
||||||
fkey_queue.push(fkey);
|
fkey_queue.push(fkey);
|
||||||
fifo_offset = int(std::strlen(fifo_buf));
|
fifo_offset = int(stringLength(fifo_buf));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -739,7 +739,7 @@ void FMouseSGR::setRawData (FKeyboard::keybuffer& fifo_buf)
|
||||||
// Import the X11 xterm mouse protocol (SGR-Mode) raw mouse data
|
// Import the X11 xterm mouse protocol (SGR-Mode) raw mouse data
|
||||||
|
|
||||||
const std::size_t fifo_buf_size = sizeof(fifo_buf);
|
const std::size_t fifo_buf_size = sizeof(fifo_buf);
|
||||||
std::size_t len = std::strlen(fifo_buf);
|
std::size_t len = stringLength(fifo_buf);
|
||||||
std::size_t n{3};
|
std::size_t n{3};
|
||||||
|
|
||||||
while ( n < len && n <= MOUSE_BUF_SIZE + 1 )
|
while ( n < len && n <= MOUSE_BUF_SIZE + 1 )
|
||||||
|
@ -969,7 +969,7 @@ void FMouseUrxvt::setRawData (FKeyboard::keybuffer& fifo_buf)
|
||||||
// Import the X11 xterm mouse protocol (Urxvt-Mode) raw mouse data
|
// Import the X11 xterm mouse protocol (Urxvt-Mode) raw mouse data
|
||||||
|
|
||||||
const std::size_t fifo_buf_size = sizeof(fifo_buf);
|
const std::size_t fifo_buf_size = sizeof(fifo_buf);
|
||||||
std::size_t len = std::strlen(fifo_buf);
|
std::size_t len = stringLength(fifo_buf);
|
||||||
std::size_t n{2};
|
std::size_t n{2};
|
||||||
|
|
||||||
while ( n < len && n <= MOUSE_BUF_SIZE )
|
while ( n < len && n <= MOUSE_BUF_SIZE )
|
||||||
|
|
|
@ -608,7 +608,7 @@ int FOptiMove::repeatedAppend ( std::string& dst
|
||||||
, const Capability& o
|
, const Capability& o
|
||||||
, int count ) const
|
, int count ) const
|
||||||
{
|
{
|
||||||
const std::size_t src_len = std::strlen(o.cap);
|
const std::size_t src_len = stringLength(o.cap);
|
||||||
const std::size_t dst_len = dst.length();
|
const std::size_t dst_len = dst.length();
|
||||||
int total{0};
|
int total{0};
|
||||||
|
|
||||||
|
|
|
@ -381,7 +381,7 @@ void FTermcapQuirks::sunConsole()
|
||||||
fc::fkey_cap_table[i].string = "\b"; // backspace key
|
fc::fkey_cap_table[i].string = "\b"; // backspace key
|
||||||
|
|
||||||
if ( std::strncmp(fc::fkey_cap_table[i].tname, "kD", 2) == 0
|
if ( std::strncmp(fc::fkey_cap_table[i].tname, "kD", 2) == 0
|
||||||
&& std::strlen(fc::fkey_cap_table[i].tname) == 2 )
|
&& stringLength(fc::fkey_cap_table[i].tname) == 2 )
|
||||||
fc::fkey_cap_table[i].string = "\177"; // delete-character key
|
fc::fkey_cap_table[i].string = "\177"; // delete-character key
|
||||||
|
|
||||||
if ( std::strncmp(fc::fkey_cap_table[i].tname, "@7", 2) == 0 )
|
if ( std::strncmp(fc::fkey_cap_table[i].tname, "@7", 2) == 0 )
|
||||||
|
|
|
@ -390,14 +390,14 @@ bool FTermDetection::get256colorEnvString()
|
||||||
color_env.string7 = std::getenv("COLORFGBG");
|
color_env.string7 = std::getenv("COLORFGBG");
|
||||||
color_env.string8 = std::getenv("KITTY_WINDOW_ID");
|
color_env.string8 = std::getenv("KITTY_WINDOW_ID");
|
||||||
|
|
||||||
if ( color_env.string1 != nullptr
|
if ( ! color_env.string1.isEmpty()
|
||||||
|| color_env.string2 != nullptr
|
|| ! color_env.string2.isEmpty()
|
||||||
|| color_env.string3 != nullptr
|
|| ! color_env.string3.isEmpty()
|
||||||
|| color_env.string4 != nullptr
|
|| ! color_env.string4.isEmpty()
|
||||||
|| color_env.string5 != nullptr
|
|| ! color_env.string5.isEmpty()
|
||||||
|| color_env.string6 != nullptr
|
|| ! color_env.string6.isEmpty()
|
||||||
|| color_env.string7 != nullptr
|
|| ! color_env.string7.isEmpty()
|
||||||
|| color_env.string8 != nullptr )
|
|| ! color_env.string8.isEmpty() )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -408,9 +408,8 @@ FString FTermDetection::termtype_256color_quirks()
|
||||||
{
|
{
|
||||||
FString new_termtype{};
|
FString new_termtype{};
|
||||||
|
|
||||||
if ( color_env.string2
|
if ( ! color_env.string2.isEmpty()
|
||||||
|| (color_env.string1
|
|| color_env.string1 == "gnome-terminal" )
|
||||||
&& std::strncmp(color_env.string1, "gnome-terminal", 14) == 0) )
|
|
||||||
{
|
{
|
||||||
terminal_type.gnome_terminal = true;
|
terminal_type.gnome_terminal = true;
|
||||||
// Each gnome-terminal should be able to use 256 colors
|
// Each gnome-terminal should be able to use 256 colors
|
||||||
|
@ -439,21 +438,20 @@ FString FTermDetection::termtype_256color_quirks()
|
||||||
new_termtype = "mlterm-256color";
|
new_termtype = "mlterm-256color";
|
||||||
|
|
||||||
if ( termtype.left(4) == "rxvt"
|
if ( termtype.left(4) == "rxvt"
|
||||||
&& color_env.string1
|
&& color_env.string1.left(8) == "rxvt-xpm" )
|
||||||
&& std::strncmp(color_env.string1, "rxvt-xpm", 8) == 0 )
|
|
||||||
{
|
{
|
||||||
new_termtype = "rxvt-256color";
|
new_termtype = "rxvt-256color";
|
||||||
terminal_type.rxvt = true;
|
terminal_type.rxvt = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( (color_env.string5 && std::strlen(color_env.string5) > 0)
|
if ( color_env.string5.getLength() > 0
|
||||||
|| (color_env.string6 && std::strlen(color_env.string6) > 0) )
|
|| color_env.string6.getLength() > 0 )
|
||||||
{
|
{
|
||||||
terminal_type.kde_konsole = true;
|
terminal_type.kde_konsole = true;
|
||||||
new_termtype = "konsole-256color";
|
new_termtype = "konsole-256color";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( color_env.string3 && std::strlen(color_env.string3) > 0 )
|
if ( color_env.string3.getLength() > 0 )
|
||||||
decscusr_support = true;
|
decscusr_support = true;
|
||||||
|
|
||||||
return new_termtype;
|
return new_termtype;
|
||||||
|
@ -538,7 +536,7 @@ FString FTermDetection::getXTermColorName (FColor color) const
|
||||||
|
|
||||||
if ( pos > 4 && std::sscanf(temp.data(), parse, &index, buf.data()) == 2 )
|
if ( pos > 4 && std::sscanf(temp.data(), parse, &index, buf.data()) == 2 )
|
||||||
{
|
{
|
||||||
std::size_t n = std::strlen(buf.data());
|
auto n = stringLength(buf.data());
|
||||||
|
|
||||||
// BEL + '\0' = string terminator
|
// BEL + '\0' = string terminator
|
||||||
if ( n >= 6 && buf[n - 1] == BEL[0] && buf[n] == '\0' )
|
if ( n >= 6 && buf[n - 1] == BEL[0] && buf[n] == '\0' )
|
||||||
|
|
|
@ -170,14 +170,14 @@ class FTermDetection final
|
||||||
private:
|
private:
|
||||||
struct colorEnv
|
struct colorEnv
|
||||||
{
|
{
|
||||||
char* string1{nullptr};
|
FString string1{};
|
||||||
char* string2{nullptr};
|
FString string2{};
|
||||||
char* string3{nullptr};
|
FString string3{};
|
||||||
char* string4{nullptr};
|
FString string4{};
|
||||||
char* string5{nullptr};
|
FString string5{};
|
||||||
char* string6{nullptr};
|
FString string6{};
|
||||||
char* string7{nullptr};
|
FString string7{};
|
||||||
char* string8{nullptr};
|
FString string8{};
|
||||||
};
|
};
|
||||||
|
|
||||||
struct secondaryDA
|
struct secondaryDA
|
||||||
|
|
|
@ -119,12 +119,18 @@ std::unique_ptr<T> make_unique (Args&&... args)
|
||||||
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
|
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Iter>
|
template <typename Iter>
|
||||||
constexpr std::reverse_iterator<Iter> make_reverse_iterator (Iter iter)
|
constexpr std::reverse_iterator<Iter> make_reverse_iterator (Iter iter)
|
||||||
{
|
{
|
||||||
return std::reverse_iterator<Iter>(iter);
|
return std::reverse_iterator<Iter>(iter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
constexpr std::size_t stringLength (T&& array)
|
||||||
|
{
|
||||||
|
return std::string(std::forward<T>(array)).length();
|
||||||
|
}
|
||||||
|
|
||||||
using charSubstitution = std::unordered_map<wchar_t, wchar_t>;
|
using charSubstitution = std::unordered_map<wchar_t, wchar_t>;
|
||||||
|
|
||||||
struct FCharAttribute
|
struct FCharAttribute
|
||||||
|
|
Loading…
Reference in New Issue