diff options
author | melkov <melkov@yandex-team.ru> | 2022-02-10 16:48:13 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:48:13 +0300 |
commit | 438546c8737d5c1fdeb31157dcf999717d930eec (patch) | |
tree | d29d229abd2f9f889b9b7eb148d635059dc26acf /library/cpp/string_utils | |
parent | 96647fad5355ff5ef45a00a6d85c097028584ab0 (diff) | |
download | ydb-438546c8737d5c1fdeb31157dcf999717d930eec.tar.gz |
Restoring authorship annotation for <melkov@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/string_utils')
-rw-r--r-- | library/cpp/string_utils/base64/base64.cpp | 14 | ||||
-rw-r--r-- | library/cpp/string_utils/url/url.cpp | 58 | ||||
-rw-r--r-- | library/cpp/string_utils/url/url.h | 4 | ||||
-rw-r--r-- | library/cpp/string_utils/url/url_ut.cpp | 36 |
4 files changed, 56 insertions, 56 deletions
diff --git a/library/cpp/string_utils/base64/base64.cpp b/library/cpp/string_utils/base64/base64.cpp index 05c201f0de..73ff81904a 100644 --- a/library/cpp/string_utils/base64/base64.cpp +++ b/library/cpp/string_utils/base64/base64.cpp @@ -150,11 +150,11 @@ char* Base64EncodeUrl(char* outstr, const unsigned char* instr, size_t len) { } inline void uudecode_1(char* dst, unsigned char* src) { - dst[0] = char((base64_bkw[src[0]] << 2) | (base64_bkw[src[1]] >> 4)); - dst[1] = char((base64_bkw[src[1]] << 4) | (base64_bkw[src[2]] >> 2)); - dst[2] = char((base64_bkw[src[2]] << 6) | base64_bkw[src[3]]); -} - + dst[0] = char((base64_bkw[src[0]] << 2) | (base64_bkw[src[1]] >> 4)); + dst[1] = char((base64_bkw[src[1]] << 4) | (base64_bkw[src[2]] >> 2)); + dst[2] = char((base64_bkw[src[2]] << 6) | base64_bkw[src[3]]); +} + static size_t Base64DecodePlain(void* dst, const char* b, const char* e) { size_t n = 0; while (b < e) { @@ -174,8 +174,8 @@ static size_t Base64DecodePlain(void* dst, const char* b, const char* e) { } } - return n; -} + return n; +} // Table for Base64StrictDecode static const char base64_bkw_strict[] = diff --git a/library/cpp/string_utils/url/url.cpp b/library/cpp/string_utils/url/url.cpp index 85f4ac5d69..a7f42f0360 100644 --- a/library/cpp/string_utils/url/url.cpp +++ b/library/cpp/string_utils/url/url.cpp @@ -16,37 +16,37 @@ #include <cstdlib> namespace { - struct TUncheckedSize { + struct TUncheckedSize { static bool Has(size_t) { - return true; - } - }; - - struct TKnownSize { - size_t MySize; + return true; + } + }; + + struct TKnownSize { + size_t MySize; explicit TKnownSize(size_t sz) - : MySize(sz) + : MySize(sz) { } - bool Has(size_t sz) const { - return sz <= MySize; - } - }; - - template <typename TChar1, typename TChar2> - int Compare1Case2(const TChar1* s1, const TChar2* s2, size_t n) { - for (size_t i = 0; i < n; ++i) { + bool Has(size_t sz) const { + return sz <= MySize; + } + }; + + template <typename TChar1, typename TChar2> + int Compare1Case2(const TChar1* s1, const TChar2* s2, size_t n) { + for (size_t i = 0; i < n; ++i) { if ((TChar1)ToLower(s1[i]) != s2[i]) return (TChar1)ToLower(s1[i]) < s2[i] ? -1 : 1; - } - return 0; - } - + } + return 0; + } + template <typename TChar, typename TBounds> inline size_t GetHttpPrefixSizeImpl(const TChar* url, const TBounds& urlSize, bool ignorehttps) { const TChar httpPrefix[] = {'h', 't', 't', 'p', ':', '/', '/', 0}; const TChar httpsPrefix[] = {'h', 't', 't', 'p', 's', ':', '/', '/', 0}; - if (urlSize.Has(7) && Compare1Case2(url, httpPrefix, 7) == 0) + if (urlSize.Has(7) && Compare1Case2(url, httpPrefix, 7) == 0) return 7; if (!ignorehttps && urlSize.Has(8) && Compare1Case2(url, httpsPrefix, 8) == 0) return 8; @@ -113,8 +113,8 @@ size_t GetSchemePrefixSize(const TStringBuf url) noexcept { } return n + 3 - url.begin(); -} - +} + TStringBuf GetSchemePrefix(const TStringBuf url) noexcept { return url.Head(GetSchemePrefixSize(url)); } @@ -236,7 +236,7 @@ void GetSchemeHostAndPort(const TStringBuf url, TStringBuf& scheme, TStringBuf& } TStringBuf GetOnlyHost(const TStringBuf url) noexcept { - return GetHost(CutSchemePrefix(url)); + return GetHost(CutSchemePrefix(url)); } TStringBuf GetPathAndQuery(const TStringBuf url, bool trimFragment) noexcept { @@ -248,19 +248,19 @@ TStringBuf GetPathAndQuery(const TStringBuf url, bool trimFragment) noexcept { return trimFragment ? path.Before('#') : path; } -// this strange creature returns 2nd level domain, possibly with port +// this strange creature returns 2nd level domain, possibly with port TStringBuf GetDomain(const TStringBuf host) noexcept { const char* c = !host ? host.data() : host.end() - 1; for (bool wasPoint = false; c != host.data(); --c) { - if (*c == '.') { - if (wasPoint) { + if (*c == '.') { + if (wasPoint) { ++c; break; - } + } wasPoint = true; } } - return TStringBuf(c, host.end()); + return TStringBuf(c, host.end()); } TStringBuf GetParentDomain(const TStringBuf host, size_t level) noexcept { diff --git a/library/cpp/string_utils/url/url.h b/library/cpp/string_utils/url/url.h index 84137ccc57..47b9f6465b 100644 --- a/library/cpp/string_utils/url/url.h +++ b/library/cpp/string_utils/url/url.h @@ -35,10 +35,10 @@ Y_PURE_FUNCTION size_t GetHttpPrefixSize(const TWtringBuf url, bool ignorehttps = false) noexcept; /** BEWARE of TStringBuf! You can not use operator ~ or c_str() like in TString - !!!!!!!!!!!! */ + !!!!!!!!!!!! */ Y_PURE_FUNCTION size_t GetSchemePrefixSize(const TStringBuf url) noexcept; - + Y_PURE_FUNCTION TStringBuf GetSchemePrefix(const TStringBuf url) noexcept; diff --git a/library/cpp/string_utils/url/url_ut.cpp b/library/cpp/string_utils/url/url_ut.cpp index 1588013893..66c76a63ff 100644 --- a/library/cpp/string_utils/url/url_ut.cpp +++ b/library/cpp/string_utils/url/url_ut.cpp @@ -45,7 +45,7 @@ Y_UNIT_TEST_SUITE(TUtilUrlTest) { UNIT_ASSERT_VALUES_EQUAL("ya.ru", GetDomain("a.b.ya.ru")); UNIT_ASSERT_VALUES_EQUAL("ya.ru", GetDomain("ya.ru")); UNIT_ASSERT_VALUES_EQUAL("ya", GetDomain("ya")); - UNIT_ASSERT_VALUES_EQUAL("", GetDomain("")); + UNIT_ASSERT_VALUES_EQUAL("", GetDomain("")); } Y_UNIT_TEST(TestGetParentDomain) { @@ -88,27 +88,27 @@ Y_UNIT_TEST_SUITE(TUtilUrlTest) { } Y_UNIT_TEST(TestSchemeCut) { - UNIT_ASSERT_VALUES_EQUAL("ya.ru/bebe", CutSchemePrefix("http://ya.ru/bebe")); - UNIT_ASSERT_VALUES_EQUAL("yaru", CutSchemePrefix("yaru")); - UNIT_ASSERT_VALUES_EQUAL("ya.ru://zzz", CutSchemePrefix("yaru://ya.ru://zzz")); - UNIT_ASSERT_VALUES_EQUAL("ya.ru://zzz", CutSchemePrefix("ya.ru://zzz")); - UNIT_ASSERT_VALUES_EQUAL("ya.ru://zzz", CutSchemePrefix("ftp://ya.ru://zzz")); - UNIT_ASSERT_VALUES_EQUAL("", CutSchemePrefix("https://")); // is that right? - - UNIT_ASSERT_VALUES_EQUAL("ftp://ya.ru", CutHttpPrefix("ftp://ya.ru")); - UNIT_ASSERT_VALUES_EQUAL("ya.ru/zzz", CutHttpPrefix("http://ya.ru/zzz")); + UNIT_ASSERT_VALUES_EQUAL("ya.ru/bebe", CutSchemePrefix("http://ya.ru/bebe")); + UNIT_ASSERT_VALUES_EQUAL("yaru", CutSchemePrefix("yaru")); + UNIT_ASSERT_VALUES_EQUAL("ya.ru://zzz", CutSchemePrefix("yaru://ya.ru://zzz")); + UNIT_ASSERT_VALUES_EQUAL("ya.ru://zzz", CutSchemePrefix("ya.ru://zzz")); + UNIT_ASSERT_VALUES_EQUAL("ya.ru://zzz", CutSchemePrefix("ftp://ya.ru://zzz")); + UNIT_ASSERT_VALUES_EQUAL("", CutSchemePrefix("https://")); // is that right? + + UNIT_ASSERT_VALUES_EQUAL("ftp://ya.ru", CutHttpPrefix("ftp://ya.ru")); + UNIT_ASSERT_VALUES_EQUAL("ya.ru/zzz", CutHttpPrefix("http://ya.ru/zzz")); UNIT_ASSERT_VALUES_EQUAL("ya.ru/zzz", CutHttpPrefix("http://ya.ru/zzz", true)); - UNIT_ASSERT_VALUES_EQUAL("ya.ru/zzz", CutHttpPrefix("https://ya.ru/zzz")); + UNIT_ASSERT_VALUES_EQUAL("ya.ru/zzz", CutHttpPrefix("https://ya.ru/zzz")); UNIT_ASSERT_VALUES_EQUAL("https://ya.ru/zzz", CutHttpPrefix("https://ya.ru/zzz", true)); UNIT_ASSERT_VALUES_EQUAL("", CutHttpPrefix("https://")); // is that right? UNIT_ASSERT_VALUES_EQUAL("https://", CutHttpPrefix("https://", true)); // is that right? - } - + } + Y_UNIT_TEST(TestMisc) { - UNIT_ASSERT_VALUES_EQUAL("", CutWWWPrefix("www.")); - UNIT_ASSERT_VALUES_EQUAL("", CutWWWPrefix("WwW.")); - UNIT_ASSERT_VALUES_EQUAL("www", CutWWWPrefix("www")); - UNIT_ASSERT_VALUES_EQUAL("ya.ru", CutWWWPrefix("www.ya.ru")); + UNIT_ASSERT_VALUES_EQUAL("", CutWWWPrefix("www.")); + UNIT_ASSERT_VALUES_EQUAL("", CutWWWPrefix("WwW.")); + UNIT_ASSERT_VALUES_EQUAL("www", CutWWWPrefix("www")); + UNIT_ASSERT_VALUES_EQUAL("ya.ru", CutWWWPrefix("www.ya.ru")); UNIT_ASSERT_VALUES_EQUAL("", CutWWWNumberedPrefix("www.")); UNIT_ASSERT_VALUES_EQUAL("www", CutWWWNumberedPrefix("www")); @@ -125,7 +125,7 @@ Y_UNIT_TEST_SUITE(TUtilUrlTest) { UNIT_ASSERT_VALUES_EQUAL("", CutMPrefix("M.")); UNIT_ASSERT_VALUES_EQUAL("m", CutMPrefix("m")); UNIT_ASSERT_VALUES_EQUAL("ya.ru", CutMPrefix("m.ya.ru")); - } + } Y_UNIT_TEST(TestSplitUrlToHostAndPath) { TStringBuf host, path; |