[LyX/master] Fix linking problem by adding convert from string to unsigned long long.

Richard Kimberly Heck rikiheck at lyx.org
Thu Oct 15 01:55:57 UTC 2020


commit 1f22a2520a5a4c0840b318bdeac2a07826674af1
Author: Richard Kimberly Heck <rikiheck at lyx.org>
Date:   Wed Oct 14 22:28:10 2020 -0400

    Fix linking problem by adding convert from string to unsigned long long.
---
 src/support/convert.cpp |   34 ++++++++++++++++++++++++----------
 src/support/convert.h   |    9 +++++----
 2 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/src/support/convert.cpp b/src/support/convert.cpp
index af0ad62..5912ac5 100644
--- a/src/support/convert.cpp
+++ b/src/support/convert.cpp
@@ -118,40 +118,54 @@ docstring convert<docstring>(unsigned long long ull)
 {
 	return from_ascii(lexical_cast<string>(ull));
 }
-#endif
 
 
 template<>
-string convert<string>(long l)
+string convert<string>(long long ll)
 {
-	return lexical_cast<string>(l);
+	return lexical_cast<string>(ll);
 }
 
 
 template<>
-docstring convert<docstring>(long l)
+docstring convert<docstring>(long long ll)
 {
-	return from_ascii(lexical_cast<string>(l));
+	return from_ascii(lexical_cast<string>(ll));
 }
 
 
-#ifdef HAVE_LONG_LONG_INT
 template<>
-string convert<string>(long long ll)
+unsigned long long convert<unsigned long long>(string const s)
 {
-	return lexical_cast<string>(ll);
+	return strtoull(s.c_str(), nullptr, 10);
 }
 
 
+/* not presently needed
 template<>
-docstring convert<docstring>(long long ll)
+long long convert<long long>(string const s)
 {
-	return from_ascii(lexical_cast<string>(ll));
+	return strtoll(s.c_str(), nullptr, 10);
 }
+*/
 #endif
 
 
 template<>
+string convert<string>(long l)
+{
+	return lexical_cast<string>(l);
+}
+
+
+template<>
+docstring convert<docstring>(long l)
+{
+	return from_ascii(lexical_cast<string>(l));
+}
+
+
+template<>
 string convert<string>(float f)
 {
 	std::ostringstream val;
diff --git a/src/support/convert.h b/src/support/convert.h
index 1b3e5be..8061732 100644
--- a/src/support/convert.h
+++ b/src/support/convert.h
@@ -36,13 +36,14 @@ template<> docstring convert<docstring>(unsigned long ul);
 #ifdef HAVE_LONG_LONG_INT
 template<> std::string convert<std::string>(unsigned long long ull);
 template<> docstring convert<docstring>(unsigned long long ull);
-#endif
-template<> std::string convert<std::string>(long l);
-template<> docstring convert<docstring>(long l);
-#ifdef HAVE_LONG_LONG_INT
 template<> std::string convert<std::string>(long long ll);
 template<> docstring convert<docstring>(long long ll);
+template<> unsigned long long convert<unsigned long long>(std::string const & s);
+// not presently needed
+// template<> long long convert<long long>(std::string const & s);
 #endif
+template<> std::string convert<std::string>(long l);
+template<> docstring convert<docstring>(long l);
 template<> std::string convert<std::string>(float f);
 template<> std::string convert<std::string>(double d);
 template<> int convert<int>(std::string const & s);


More information about the lyx-cvs mailing list