mirror of
https://github.com/transmission/transmission.git
synced 2025-12-24 20:35:36 +00:00
Make some utility functions return std::string to simplify code (#2368)
* tr_formatter_speed_KBps returns std::string * tr_formatter_mem_B returns std::string * tr_formatter_size_B returns std::string * tr_strpercent/tr_strratio returns std::string
This commit is contained in:
@@ -1181,36 +1181,37 @@ static char* tr_strtruncd(char* buf, double x, int precision, size_t buflen)
|
||||
return buf;
|
||||
}
|
||||
|
||||
char* tr_strpercent(char* buf, double x, size_t buflen)
|
||||
std::string tr_strpercent(double x)
|
||||
{
|
||||
auto buf = std::array<char, 64>{};
|
||||
|
||||
if (x < 100.0)
|
||||
{
|
||||
tr_strtruncd(buf, x, 1, buflen);
|
||||
tr_strtruncd(std::data(buf), x, 1, std::size(buf));
|
||||
}
|
||||
else
|
||||
{
|
||||
tr_strtruncd(buf, x, 0, buflen);
|
||||
tr_strtruncd(std::data(buf), x, 0, std::size(buf));
|
||||
}
|
||||
|
||||
return buf;
|
||||
return std::data(buf);
|
||||
}
|
||||
|
||||
char* tr_strratio(char* buf, size_t buflen, double ratio, char const* infinity)
|
||||
std::string tr_strratio(double ratio, char const* infinity)
|
||||
{
|
||||
if ((int)ratio == TR_RATIO_NA)
|
||||
{
|
||||
tr_strlcpy(buf, _("None"), buflen);
|
||||
}
|
||||
else if ((int)ratio == TR_RATIO_INF)
|
||||
{
|
||||
tr_strlcpy(buf, infinity, buflen);
|
||||
}
|
||||
else
|
||||
{
|
||||
tr_strpercent(buf, ratio, buflen);
|
||||
return _("None");
|
||||
}
|
||||
|
||||
return buf;
|
||||
if ((int)ratio == TR_RATIO_INF)
|
||||
{
|
||||
auto buf = std::array<char, 64>{};
|
||||
tr_strlcpy(std::data(buf), infinity, std::size(buf));
|
||||
return std::data(buf);
|
||||
}
|
||||
|
||||
return tr_strpercent(ratio);
|
||||
}
|
||||
|
||||
/***
|
||||
@@ -1420,9 +1421,10 @@ void tr_formatter_size_init(uint64_t kilo, char const* kb, char const* mb, char
|
||||
formatter_init(size_units, kilo, kb, mb, gb, tb);
|
||||
}
|
||||
|
||||
char* tr_formatter_size_B(char* buf, uint64_t bytes, size_t buflen)
|
||||
std::string tr_formatter_size_B(uint64_t bytes)
|
||||
{
|
||||
return formatter_get_size_str(size_units, buf, bytes, buflen);
|
||||
auto buf = std::array<char, 64>{};
|
||||
return formatter_get_size_str(size_units, std::data(buf), bytes, std::size(buf));
|
||||
}
|
||||
|
||||
static formatter_units speed_units;
|
||||
@@ -1435,11 +1437,13 @@ void tr_formatter_speed_init(size_t kilo, char const* kb, char const* mb, char c
|
||||
formatter_init(speed_units, kilo, kb, mb, gb, tb);
|
||||
}
|
||||
|
||||
char* tr_formatter_speed_KBps(char* buf, double KBps, size_t buflen)
|
||||
std::string tr_formatter_speed_KBps(double KBps)
|
||||
{
|
||||
auto buf = std::array<char, 64>{};
|
||||
|
||||
if (auto speed = KBps; speed <= 999.95) /* 0.0 KB to 999.9 KB */
|
||||
{
|
||||
tr_snprintf(buf, buflen, "%d %s", (int)speed, speed_units[TR_FMT_KB].name);
|
||||
tr_snprintf(std::data(buf), std::size(buf), "%d %s", (int)speed, speed_units[TR_FMT_KB].name);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1449,19 +1453,19 @@ char* tr_formatter_speed_KBps(char* buf, double KBps, size_t buflen)
|
||||
|
||||
if (speed <= 99.995) /* 0.98 MB to 99.99 MB */
|
||||
{
|
||||
tr_snprintf(buf, buflen, "%.2f %s", speed, speed_units[TR_FMT_MB].name);
|
||||
tr_snprintf(std::data(buf), std::size(buf), "%.2f %s", speed, speed_units[TR_FMT_MB].name);
|
||||
}
|
||||
else if (speed <= 999.95) /* 100.0 MB to 999.9 MB */
|
||||
{
|
||||
tr_snprintf(buf, buflen, "%.1f %s", speed, speed_units[TR_FMT_MB].name);
|
||||
tr_snprintf(std::data(buf), std::size(buf), "%.1f %s", speed, speed_units[TR_FMT_MB].name);
|
||||
}
|
||||
else
|
||||
{
|
||||
tr_snprintf(buf, buflen, "%.1f %s", speed / K, speed_units[TR_FMT_GB].name);
|
||||
tr_snprintf(std::data(buf), std::size(buf), "%.1f %s", speed / K, speed_units[TR_FMT_GB].name);
|
||||
}
|
||||
}
|
||||
|
||||
return buf;
|
||||
return std::data(buf);
|
||||
}
|
||||
|
||||
static formatter_units mem_units;
|
||||
@@ -1474,9 +1478,10 @@ void tr_formatter_mem_init(size_t kilo, char const* kb, char const* mb, char con
|
||||
formatter_init(mem_units, kilo, kb, mb, gb, tb);
|
||||
}
|
||||
|
||||
char* tr_formatter_mem_B(char* buf, size_t bytes_per_second, size_t buflen)
|
||||
std::string tr_formatter_mem_B(size_t bytes_per_second)
|
||||
{
|
||||
return formatter_get_size_str(mem_units, buf, bytes_per_second, buflen);
|
||||
auto buf = std::array<char, 64>{};
|
||||
return formatter_get_size_str(mem_units, std::data(buf), bytes_per_second, std::size(buf));
|
||||
}
|
||||
|
||||
void tr_formatter_get_units(void* vdict)
|
||||
|
||||
Reference in New Issue
Block a user