From ff74c466d511dd64ecdbac12db88c9bf3857e6de Mon Sep 17 00:00:00 2001 From: Pankaj Pandey Date: Wed, 6 Dec 2017 16:11:28 +0530 Subject: [PATCH 1/3] Replace `m_m128` -> `m_int128` in tlVariant.cc Typo in member variable name. --- src/tl/tl/tlVariant.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tl/tl/tlVariant.cc b/src/tl/tl/tlVariant.cc index 071cc9286..3fb9f83ea 100644 --- a/src/tl/tl/tlVariant.cc +++ b/src/tl/tl/tlVariant.cc @@ -2189,7 +2189,7 @@ QVariant Variant::to_qvariant () const #if defined(HAVE_64BIT_COORD) case t_int128: // TODO: support for int128 in QVariant? - return QVariant ((double) m_var.m_m128); + return QVariant ((double) m_var.m_int128); #endif case t_bool: return QVariant (m_var.m_bool); From 58281695fb8e962c537603d2b7a9153bca09ab6f Mon Sep 17 00:00:00 2001 From: Pankaj Pandey Date: Wed, 6 Dec 2017 18:32:17 +0530 Subject: [PATCH 2/3] Update tlString.cc --- src/tl/tl/tlString.cc | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/tl/tl/tlString.cc b/src/tl/tl/tlString.cc index e38ed8a33..2c39a8e44 100644 --- a/src/tl/tl/tlString.cc +++ b/src/tl/tl/tlString.cc @@ -231,6 +231,32 @@ tl::to_string (const unsigned long long &d) return os.str (); } +#if defined(HAVE_64BIT_COORD) +template <> +std::string +tl::to_string (const __int128 &d) +{ + if (d < 0 ) { + return "-" + tl::to_string(static_cast(-d)); + } else { + return tl::to_string(static_cast(d)); + } +} + +template <> +std::string +tl::to_string (const unsigned __int128 &d) +{ + if (static_cast(d) == d) { + return tl::to_string(static_cast(d)); + } + std::ostringstream os; + os.imbue (c_locale); + os << "0x" << std::hex << static_cast (d>>64) << static_cast (d); + return os.str (); +} +#endif + template <> std::string tl::to_string (char * const &cp) From f318cb2e300bc7825a3850ba93e2d153e6c6c195 Mon Sep 17 00:00:00 2001 From: Pankaj Pandey Date: Wed, 6 Dec 2017 18:33:57 +0530 Subject: [PATCH 3/3] Update tlString.h --- src/tl/tl/tlString.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tl/tl/tlString.h b/src/tl/tl/tlString.h index 00a74537f..60dc8718c 100644 --- a/src/tl/tl/tlString.h +++ b/src/tl/tl/tlString.h @@ -271,6 +271,10 @@ template <> TL_PUBLIC std::string to_string (const long &d); template <> TL_PUBLIC std::string to_string (const unsigned long &d); template <> TL_PUBLIC std::string to_string (const long long &d); template <> TL_PUBLIC std::string to_string (const unsigned long long &d); +#if defined(HAVE_64BIT_COORD) +template <> TL_PUBLIC std::string to_string (const __int128 &d); +template <> TL_PUBLIC std::string to_string (const unsigned __int128 &d); +#endif template <> TL_PUBLIC std::string to_string (const char * const &cp); template <> TL_PUBLIC std::string to_string (char * const &cp); template <> TL_PUBLIC std::string to_string (const unsigned char * const &cp);