blob: bd9cf5d061ee23415a6c88d067f3556e06d9d697 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
--- thirdparty/nanodbc/nanodbc/nanodbc.cpp.orig 2025-08-13 00:57:26 UTC
+++ thirdparty/nanodbc/nanodbc/nanodbc.cpp
@@ -386,10 +386,19 @@ constexpr std::size_t size(const T (&array)[N]) noexce
}
#endif
+inline std::size_t length(NANODBC_SQLCHAR const* s)
+{
+ std::size_t len = 0;
+ for (; *s != 0; ++s)
+ ++len;
+ return len;
+
+}
+
template <std::size_t N>
inline std::size_t size(NANODBC_SQLCHAR const (&array)[N]) noexcept
{
- auto const n = std::char_traits<NANODBC_SQLCHAR>::length(array);
+ auto const n = length(array);
NANODBC_ASSERT(n < N);
return n < N ? n : N - 1;
}
@@ -3720,9 +3729,9 @@ std::list<datasource> list_datasources()
"incompatible SQLCHAR and string::value_type");
datasource dsn;
- dsn.name = string(&name[0], &name[std::char_traits<NANODBC_SQLCHAR>::length(name)]);
+ dsn.name = string(&name[0], &name[length(name)]);
dsn.driver =
- string(&driver[0], &driver[std::char_traits<NANODBC_SQLCHAR>::length(driver)]);
+ string(&driver[0], &driver[length(driver)]);
dsns.push_back(std::move(dsn));
direction = SQL_FETCH_NEXT;
@@ -3773,7 +3782,7 @@ std::list<driver> list_drivers()
"incompatible SQLCHAR and string::value_type");
driver drv;
- drv.name = string(&descr[0], &descr[std::char_traits<NANODBC_SQLCHAR>::length(descr)]);
+ drv.name = string(&descr[0], &descr[length(descr)]);
// Split "Key1=Value1\0Key2=Value2\0\0" into list of key-value pairs
auto beg = &attrs[0];
|