Add string -> long long conversion for OS X.
authorCarl Hetherington <cth@carlh.net>
Sat, 23 Mar 2019 21:37:17 +0000 (21:37 +0000)
committerCarl Hetherington <cth@carlh.net>
Sat, 23 Mar 2019 21:37:17 +0000 (21:37 +0000)
src/cxml.cc
src/cxml.h
wscript

index f667584f4fee595331061d0d401b90009356db00..3fa3d9486c0da9937a794bb7fe96ac0e9045e9df 100644 (file)
@@ -348,6 +348,19 @@ locale_convert (string x)
        return y;
 }
 
+template<>
+long long
+locale_convert (string x)
+{
+       long long y = 0;
+#ifdef LIBCXML_WINDOWS
+       __mingw_sscanf (x.c_str(), "%lld", &y);
+#else
+       sscanf (x.c_str(), "%lld", &y);
+#endif
+       return y;
+}
+
 template<>
 float
 locale_convert (string x)
@@ -380,6 +393,13 @@ cxml::raw_convert (string v)
        return locale_convert<long int> (make_local(v));
 }
 
+template <>
+long long
+cxml::raw_convert (string v)
+{
+       return locale_convert<long long> (make_local(v));
+}
+
 template <>
 unsigned int
 cxml::raw_convert (string v)
index 20a948ae29e920a5204e37cb2b91b53b0fb9a1d8..bd04af1838ea8fb1d40aeca276e36df34d6bb13a 100644 (file)
@@ -90,6 +90,10 @@ template <>
 long int
 raw_convert (std::string v);
 
+template <>
+long long
+raw_convert (std::string v);
+
 template <>
 float
 raw_convert (std::string v);
diff --git a/wscript b/wscript
index 959e1e0faa6212cd8baa84f0eb65aa3c7ac87586..b4f47474daa74cad077bc0964548838a80a8a2af 100644 (file)
--- a/wscript
+++ b/wscript
@@ -57,8 +57,10 @@ def configure(conf):
 
     if conf.options.target_windows:
         boost_lib_suffix = '-mt'
+        conf.env.append_value('CXXFLAGS', '-DLIBCXML_WINDOWS')
     else:
         boost_lib_suffix = ''
+        conf.env.append_value('CXXFLAGS', '-DLIBCXML_POSIX')
 
     conf.check_cfg(package='libxml++-2.6', args='--cflags --libs', uselib_store='LIBXML++', mandatory=True)