diff options
author | antonovvk <antonovvk@yandex-team.ru> | 2022-02-10 16:47:51 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:47:51 +0300 |
commit | 37a63debdc21e372d99e1808cdd31aecf75018c3 (patch) | |
tree | fd84293fb9a1b16381dd6c1a5e14c78afacb8710 /library/cpp/uri/other.cpp | |
parent | 1fe621e70df847cc201ac942fe6d7804ea10508d (diff) | |
download | ydb-37a63debdc21e372d99e1808cdd31aecf75018c3.tar.gz |
Restoring authorship annotation for <antonovvk@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/uri/other.cpp')
-rw-r--r-- | library/cpp/uri/other.cpp | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/library/cpp/uri/other.cpp b/library/cpp/uri/other.cpp index b23a5b68a9..5f1ff30b25 100644 --- a/library/cpp/uri/other.cpp +++ b/library/cpp/uri/other.cpp @@ -6,34 +6,34 @@ /********************************************************/ /********************************************************/ -static const Tr InvertTr(".:/?#", "\005\004\003\002\001"); -static const Tr RevertTr("\005\004\003\002\001", ".:/?#"); - +static const Tr InvertTr(".:/?#", "\005\004\003\002\001"); +static const Tr RevertTr("\005\004\003\002\001", ".:/?#"); + void TrspChars(char* s) { - InvertTr.Do(s); -} - + InvertTr.Do(s); +} + void UnTrspChars(char* s) { - RevertTr.Do(s); -} - + RevertTr.Do(s); +} + void TrspChars(char* s, size_t l) { - InvertTr.Do(s, l); -} - + InvertTr.Do(s, l); +} + void UnTrspChars(char* s, size_t l) { - RevertTr.Do(s, l); -} - + RevertTr.Do(s, l); +} + void TrspChars(const char* s, char* d) { - InvertTr.Do(s, d); -} - + InvertTr.Do(s, d); +} + void UnTrspChars(const char* s, char* d) { - RevertTr.Do(s, d); -} - -void InvertDomain(char* begin, char* end) { + RevertTr.Do(s, d); +} + +void InvertDomain(char* begin, char* end) { // skip schema if it is present const auto dotPos = TStringBuf{begin, end}.find('.'); if (dotPos == TStringBuf::npos) @@ -41,27 +41,27 @@ void InvertDomain(char* begin, char* end) { const auto schemaendPos = TStringBuf{begin, end}.find("://", 3); if (schemaendPos < dotPos) begin += schemaendPos + 3; - char* sl = (char*)memchr(begin, '/', end - begin); - char* cl = (char*)memchr(begin, ':', sl ? sl - begin : end - begin); - end = cl ? cl : (sl ? sl : end); - - // invert string - for (size_t i = 0, n = end - begin; i < n / 2; ++i) - DoSwap(begin[i], begin[n - i - 1]); - - // invert back each host name segment - char* b = begin; - while (true) { - char* e = (char*)memchr(b, '.', end - b); - if (!e) - e = end; - for (size_t i = 0, n = e - b; i < n / 2; ++i) - DoSwap(b[i], b[n - i - 1]); + char* sl = (char*)memchr(begin, '/', end - begin); + char* cl = (char*)memchr(begin, ':', sl ? sl - begin : end - begin); + end = cl ? cl : (sl ? sl : end); + + // invert string + for (size_t i = 0, n = end - begin; i < n / 2; ++i) + DoSwap(begin[i], begin[n - i - 1]); + + // invert back each host name segment + char* b = begin; + while (true) { + char* e = (char*)memchr(b, '.', end - b); + if (!e) + e = end; + for (size_t i = 0, n = e - b; i < n / 2; ++i) + DoSwap(b[i], b[n - i - 1]); if (e == end) - break; - b = e + 1; - } -} + break; + b = e + 1; + } +} void InvertUrl(char* begin, char* end) { char* slash = strchr(begin, '/'); |