Max Kellermann
0dfb27b7e5
util/StringAPI: stpcpy() was added in Bionic API level 21
2018-08-20 13:31:23 +02:00
Max Kellermann
cf471e830f
Merge branch 'v0.20.x'
2018-08-02 11:07:40 +02:00
Max Kellermann
906972973e
case-insensitive URI scheme comparison
...
Required according to RFC 3986:
> An implementation should accept uppercase letters as equivalent to
> lowercase in scheme names
Closes #330
2018-08-02 11:01:45 +02:00
Max Kellermann
116edf5fce
util/ASCII: add StringStartsWithCaseASCII()
2018-08-02 10:42:28 +02:00
Max Kellermann
7db7568dcf
lib/gcrypt/MD5: move code to util/HexFormat.cxx
2018-07-26 17:46:56 +02:00
Max Kellermann
235ddc0990
util/TimeISO8601: new utility library
2018-07-25 08:43:06 +02:00
Max Kellermann
517f5b1999
util/TimeConvert: new utility library
2018-07-25 08:34:52 +02:00
Max Kellermann
b778fb38a9
util/StringAPI: add raw strcmp() wrapper
2018-07-18 17:18:34 +02:00
Max Kellermann
6448b31b11
util/StringAPI: add strpbrk() wrapper
2018-07-18 16:51:29 +02:00
Max Kellermann
edb44a536a
util/PrintException: new utility class
2018-07-17 21:58:07 +02:00
Max Kellermann
60d5bf0240
util/StringFormat: new utility library
2018-07-06 19:07:02 +02:00
Max Kellermann
e1ee8e7812
util/FormatString: remove obsolete Windows fallback
...
Since 7d353bbe2a
, _GNU_SOURCE is always
defined, which implies __USE_MINGW_ANSI_STDIO and thus switches to
the mingw implementations of the printf() family. That's
standards-compliant, unlike Microsoft's CRT implementations.
2018-07-06 19:04:33 +02:00
Max Kellermann
ae8a2ab652
util/SparseBuffer: new utility class
2018-06-22 22:18:26 +02:00
Max Kellermann
eeb00ac45b
util/TemplateString: new utility library
2018-06-03 12:13:47 +02:00
Max Kellermann
65bbb0e0aa
release v0.20.17
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlqAMO0QHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEg8eD/49NlFvlNdkamgYvh7MI1Sn67yKAwQt+N51
W0hVnmXwPoSg76gfWw8J9kVyQy/jEkaCxsPF/UuEbH5jzqAC0y8hwYVRkJaRc9wN
ZfwHvLHeaUxQweoguEwRSREy4ZC4ImQOK+eAxI1R43mqxxyhko1Akc1NmRVWzYfv
/FGmAjTi1U6FR/yDpdSFn1NdlPmIgZ4WDuRsDT2NrshX/Bb32FiyZBytvek2P8n/
QNgXv18E4yWXSb+zBYhPy/eaKhGasyjI3cbht1F0hNW9Yo/BsFxDuwXrX1vNBaOS
E3Dux4s/nfcJ4RMRjmrkFwXImCvxt7+AGfh8RYBXuwqMExXz2kZjIs4ZVvO7Nu9A
pFDJQwRIojXMfk73LU/MEpmNNEXhvfQLYkrM7poSqYaOr8SWMszqSgNnnfq6+flB
sJbstgAStI6lL0jy0HrtMTvPVEiAGh6wCvMy/r2G9XUAyw76ccOg7MaIldn0MHJv
A51+GfRTi4ILH0ReL1BGAg9nG97uFmRAWGkfkhtyD540xGRk7x5R8/ml4zFogHN6
SbrV0NPdwk+uFd0y2znQT2gWyjc0id4WEKEoHX+Gl6c5qtPIfrq+PQPyk9kR+u+i
AxwqMoKQer6Ji5qnsvCiKSkaGGiVNivrZ11jDWNCZaKjmvlKlvj/P5GxbPpORorq
v4ru/4vNXQ==
=v4t8
-----END PGP SIGNATURE-----
Merge tag 'v0.20.17'
release v0.20.17
2018-02-11 13:22:43 +01:00
Max Kellermann
0f8d223c7f
protocol/ArgParser: move strtof()/strtod() switch to util/NumberParser.hxx
2018-02-09 22:54:22 +01:00
Max Kellermann
97f670658f
util/StringFormat: new utility library
2018-01-24 13:28:28 +01:00
Max Kellermann
be137a191e
util/FormatString: remove obsolete Windows fallback
...
Since 7d353bbe2a
, _GNU_SOURCE is always
defined, which implies __USE_MINGW_ANSI_STDIO and thus switches to
the mingw implementations of the printf() family. That's
standards-compliant, unlike Microsoft's CRT implementations.
2018-01-24 13:22:43 +01:00
Max Kellermann
fe1f3df36e
util/StringBuffer: add "noexcept"
2018-01-24 12:52:05 +01:00
Max Kellermann
3ca80a7336
util/RefCount, db/simple/Mount: remove obsolete libc++ workarounds
...
No longer a problem with NDK r16.
2018-01-19 23:19:46 +01:00
Max Kellermann
3e2e0d062b
util/OptionParser: support option values
2018-01-17 11:14:57 +01:00
Max Kellermann
c45fe3517c
util/OptionParser: add struct Result
...
Prepare for option values.
2018-01-17 11:08:05 +01:00
Max Kellermann
735a371249
util/OptionParser: pass array of OptionDefs to constructor
2018-01-17 10:24:06 +01:00
Max Kellermann
5ab086e337
util/OptionParser: loop in ParseNext() until a new option is found
2018-01-16 11:25:18 +01:00
Max Kellermann
68f660dbcc
util/OptionParser: collect remaining arguments
...
Allow the caller to use a simple "for" loop without checking
arguments.
2018-01-16 11:08:23 +01:00
Max Kellermann
0066f7a818
util/{Const,Writable}Buffer: add constructor with two pointers
2018-01-16 11:06:33 +01:00
Max Kellermann
65059f2add
util/{Const,Writable}Buffer: eliminate static method Null(), use nullptr cast instead
2018-01-16 11:04:51 +01:00
Max Kellermann
23dff4f209
util/OptionParser: use ConstBuffer<const char*> to store argv/argc
2018-01-16 10:22:06 +01:00
Max Kellermann
4a304bf34e
util/OptionParser: make string pointers "const"
2018-01-16 10:20:53 +01:00
Max Kellermann
36a6405e8b
util/OptionParser: add "constexpr"
2018-01-16 10:20:52 +01:00
Max Kellermann
42c1fe963b
util/OptionParser: add "noexcept"
2018-01-16 10:13:39 +01:00
Max Kellermann
465b154fc0
util/OptionParser: use C++11 initializers
2018-01-16 10:12:48 +01:00
Max Kellermann
a0c4102b5a
util/OptionDef: add "constexpr"
2018-01-16 10:11:35 +01:00
Max Kellermann
90cc32f6f8
util/RefCount: remove obsolete class
2017-12-22 16:37:30 +01:00
Max Kellermann
300a619991
Merge branch 'v0.20.x'
2017-12-22 16:10:05 +01:00
Max Kellermann
412c0a965c
util/WStringAPI: fix indent
2017-12-21 18:45:26 +01:00
Ilya ilyxa Tyshchenko
2becf79223
correct action for compile on Solaris 11.3 X86
2017-12-21 18:42:36 +01:00
Max Kellermann
1d559bf00c
util/SliceBuffer: add "noexcept"
2017-12-20 14:41:03 +01:00
Max Kellermann
3d960b5e55
util/RuntimeError: add FormatInvalidArgument()
2017-12-19 11:56:29 +01:00
Max Kellermann
edee8a3446
Compiler.h: add gcc_returns_nonnull, gcc_returns_twice
2017-12-18 23:00:13 +01:00
Max Kellermann
6246d36fe6
Merge branch 'v0.20.x'
2017-12-16 20:56:06 +01:00
Max Kellermann
dfaf08743c
*: check defined(_WIN32) instead of defined(WIN32)
...
Only _WIN32 is defined by the compiler, and WIN32 is not standardized
and may be missing.
Closes #169
2017-12-12 10:22:20 +01:00
Max Kellermann
2670e13cbd
util/{Const,Writable}Buffer: add static_assert to FromVoid()
2017-11-10 19:43:17 +01:00
Max Kellermann
49784513b1
util/{Const,Writable}Buffer, ...: rename IsEmpty() to empty(), imitating STL
2017-11-10 19:24:33 +01:00
Max Kellermann
034bb13e1c
util/HugeAllocator: add missing "static inline"
...
Fixes the non-Linux build.
2017-10-26 09:01:06 +02:00
Max Kellermann
c8a2a557db
util/HugeAllocator: remove obsolete class HugeAllocation
2017-09-21 21:52:08 +02:00
Max Kellermann
7b2b965415
util/SliceBuffer: use class HugeArray
2017-09-21 21:48:08 +02:00
Max Kellermann
c3cfa18ebe
util/HugeAllocator: add template class HugeArray
2017-09-21 21:47:52 +02:00
Max Kellermann
b46835e15e
util/HugeAllocator: HugeAllocator() returns WritableBuffer<void>
2017-09-21 21:47:49 +02:00
Max Kellermann
3e5ce3c92c
util/{Const,Writable}Buffer: add static method FromVoidFloor()
2017-09-21 21:45:39 +02:00
Max Kellermann
e5c9b4cd75
util/{Const,Writable}Buffer: add operator==(nullptr_t)
2017-09-21 20:34:36 +02:00
Max Kellermann
8753e558f2
util/HugeAllocator: move MADV_DONTFORK setting to HugeForkCow()
...
Enforcing MADV_DONTFORK is a surprising limitation for this library
which aims to be generic.
2017-09-21 19:36:33 +02:00
Max Kellermann
56a9bf459d
util/SliceBuffer: use C++11 initializers
2017-09-19 19:48:04 +02:00
Max Kellermann
11dbba3503
util/HugeAllocator: document std::bad_alloc
2017-09-19 19:45:52 +02:00
Max Kellermann
8662427d48
util/HugeAllocator: use std::exchange()
2017-09-19 19:42:21 +02:00
Max Kellermann
821480d329
util/HugeAllocator: make constructor explicit
2017-09-19 19:42:19 +02:00
Max Kellermann
c196710fae
util/WStringCompare: relicense to BSD-2
2017-09-13 16:43:41 +02:00
Max Kellermann
e4f62483ff
util/StringView: add default constructors
...
It was implicitly deleted since commit
db23c2f27b
2017-09-13 12:59:31 +02:00
Max Kellermann
8d9347edc5
Util/WStringCompare: use struct WStringView
2017-09-13 11:47:48 +02:00
Max Kellermann
eff821c1ca
Util/StringView: move struct WStringView to separate header
2017-09-13 11:22:59 +02:00
Max Kellermann
3bcd6ecbad
util/Exception: update API documentation
2017-09-13 10:49:34 +02:00
Max Kellermann
e76f4c2ae9
util/DeleteDisposer: convert struct to class
2017-09-13 10:35:51 +02:00
Max Kellermann
f46ac45d69
util/*: update include guards
2017-09-13 10:35:11 +02:00
Max Kellermann
1d1259a86d
util/AllocatedString: add method data()
2017-09-13 10:34:12 +02:00
Max Kellermann
101f08ca75
util/Cast: make the "member" pointer const
2017-09-13 10:32:55 +02:00
Max Kellermann
3b7f9827ab
Util/IterableSplitString: add wchar_t specialization
2017-09-12 19:12:09 +02:00
Max Kellermann
f98bf39005
Util/IterableSplitString: add template class BasicIterableSplitString
2017-09-12 19:12:09 +02:00
Max Kellermann
9e7df54ccd
Util/StringView: add struct TStringView
2017-09-12 19:12:09 +02:00
Max Kellermann
db23c2f27b
util/StringView: allow casting from BasicStringView to StringView
2017-09-12 19:08:47 +02:00
Max Kellermann
9744f437d8
Util/CharUtil: add wchar_t overloads
...
Needed for WStringView.
2017-09-12 18:22:02 +02:00
Max Kellermann
01f84b0e53
util/StringView: add struct WStringView
2017-09-12 17:17:13 +02:00
Max Kellermann
5dbdd36263
util/StringView: add struct BasicStringView
2017-09-12 17:17:13 +02:00
Max Kellermann
96b557c1f0
util/StringView: remove methods SetEmpty(), Empty()
2017-09-12 17:17:13 +02:00
Max Kellermann
ebdb7c8de2
util/WStringAPI: add StringIsEqualIgnoreCase() overload
2017-09-12 17:17:13 +02:00
Max Kellermann
1fda842ee6
util/StringView: use StringAPI.hxx
2017-09-12 17:00:42 +02:00
Max Kellermann
f71e20d0ce
util/StringView: use value_type
2017-09-12 17:00:38 +02:00
Max Kellermann
988680de33
util/StringView: remove unnecessary operator= overloads
...
These will be generated by the compiler automatically.
2017-09-12 17:00:02 +02:00
Max Kellermann
cdf92c6300
util/StringView: remove redundant template parameters
2017-09-12 16:57:19 +02:00
Max Kellermann
be5b726c0a
util/StringView: remove Literal()
...
This is not necessary, because a strlen() on a literal gets optimized
away by the compiler.
2017-09-12 16:55:10 +02:00
Max Kellermann
fe9ffcb9d2
Merge branch 'v0.20.x'
2017-08-08 19:30:30 +02:00
Max Kellermann
a4019cb6aa
util/StringBuffer: use std::array::const_iterator
2017-08-07 16:18:43 +02:00
Max Kellermann
b0703b92c3
util/FormatString: pass the allocated buffer to AllocatedString::Donate()
...
.. and not the stack buffer. This made the AllocatedString destructor
crash.
Closes #52
2017-08-03 00:25:30 +02:00
Max Kellermann
501a4af914
util/StringUtil: move strip functions to StringStrip.cxx
2017-07-05 17:20:02 +02:00
Max Kellermann
dad7d7e798
util/TruncateString: rename CopyString() to CopyTruncateString()
2017-07-05 17:15:58 +02:00
Max Kellermann
4b94ae8040
util/StringUtil: move CopyString() to TruncateString.cxx
2017-07-05 17:11:34 +02:00
Max Kellermann
b04679b429
util/WritableBuffer: add method MoveFront()
2017-07-05 17:10:59 +02:00
Max Kellermann
19358d1c42
util/Exception: add more utility functions
2017-07-05 17:08:26 +02:00
Max Kellermann
8679074be7
util/Exception: move code to AppendNestedMessage()
2017-07-05 17:07:43 +02:00
Max Kellermann
ba09e22c30
util/Exception: add GetFullMessage(std::exception)
2017-07-05 17:07:41 +02:00
Max Kellermann
6515b9727d
util/Exception: catch std::nested_exception
2017-07-05 17:07:40 +02:00
Max Kellermann
4af8e5bdb5
util/Exception: include cleanup
2017-07-05 17:07:39 +02:00
Max Kellermann
2db8cf477b
util/Exception: add "fallback" and "separator" parameters
2017-07-05 16:59:40 +02:00
Max Kellermann
3cfefa53f7
util/Exception: rename FullMessage() to GetFullMessage()
2017-07-05 12:25:55 +02:00
Max Kellermann
bce89feb13
util/Manual: drop prefix from include guard
2017-07-05 12:25:32 +02:00
Max Kellermann
88f5220acf
util/Manual: drop support for gcc 4.6
2017-07-05 12:25:20 +02:00
Max Kellermann
3e87ac75a1
util/Manual: use C++11 initializer
2017-07-05 12:12:41 +02:00
Max Kellermann
9237f2a80c
util/{Const,Writable}Buffer: add array constructor
2017-07-05 12:09:27 +02:00
Max Kellermann
61aca389c4
util/{Const,Writable}Buffer: add typedef value_type
2017-07-05 12:08:34 +02:00
Max Kellermann
80438c4876
util/BindMethod: add BIND_FUNCTION()
2017-07-05 12:04:29 +02:00
Max Kellermann
70ac4fa96b
util/AllocatedString: implement AllocatedString<wchar_t>::Duplicate()
2017-07-05 10:26:39 +02:00