Max Kellermann
1eae9339f2
db/Interface: CollectUniqueTags() allows multiple "groups"
...
Instead of passing tag and group, pass an array of tags. To support a
nested return value, return a nested std::map of std::maps. Each key
specifies the tag value, and each value may be another nesting level.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/408
2019-06-16 10:39:29 +02:00
Max Kellermann
1a7e3bb358
util/StringUtil: add StringArrayContainsCase() overload with StringView
2019-06-11 19:29:40 +02:00
Max Kellermann
72a0aeb265
util/NumberParser: add overload with StringView
2019-06-06 13:26:30 +02:00
Max Kellermann
e556cd20f7
util/NumberParser: add noexcept
2019-06-06 13:26:30 +02:00
Max Kellermann
76eb550011
util/StringView: add method Split()
2019-06-06 12:54:42 +02:00
Max Kellermann
d651d1abfd
util/SparseBuffer: move #endif to the bottom
2019-05-22 10:43:07 +02:00
Max Kellermann
a48604d2e3
util/SparseBuffer: remove bogus noexcept
from constructor
...
The HugeArray constructor can throw std::bad_alloc, and so can
SparseBuffer's constructor.
2019-05-08 22:34:33 +02:00
Max Kellermann
98e6a861ca
util/HugeAllocator: import std::swap()
2019-05-08 22:33:41 +02:00
Max Kellermann
2c6dd04d19
util/HugeAllocator: add noexcept
2019-05-08 22:32:50 +02:00
Max Kellermann
214ddee2f5
util/Time*: move to time/
2019-05-08 15:47:58 +02:00
Max Kellermann
af9840daf7
util/Clamp: remove redundant inline
keywords from constexpr
functions
2019-03-12 11:54:51 +01:00
Max Kellermann
f6c0688684
util/ByteOrder: remove redundant inline
keywords from constexpr
functions
2019-03-08 10:23:14 +01:00
Max Kellermann
c176d94598
system/ByteOrder: move to util/
2019-03-08 10:21:10 +01:00
Max Kellermann
05aa9f72a9
util/StringView: add SkipPrefix(), RemoveSuffix()
2019-02-19 11:51:32 +01:00
Max Kellermann
5cf889b676
util/WStringView: add missing include
2019-01-22 08:38:03 +01:00
Max Kellermann
b02fee7309
util/PrintException: support "const char *"
2019-01-21 21:19:35 +01:00
Max Kellermann
424f75c9e1
util/OffsetPointer: remove redundant inline
keywords from constexpr
functions
2019-01-21 21:19:09 +01:00
Max Kellermann
f6e1176f97
util/CharUtil: remove redundant inline
keywords from constexpr
functions
2019-01-21 21:18:23 +01:00
Max Kellermann
e4700c0a27
util/Cast: remove redundant inline
keywords from constexpr
functions
2019-01-21 21:17:58 +01:00
Max Kellermann
7104ac963b
util/AllocatedArray: import std::swap
2018-12-28 17:18:41 +01:00
Max Kellermann
2cb36590b2
util/AllocatedArray: add noexcept
2018-12-28 17:17:28 +01:00
Max Kellermann
53a4de35c4
util/DynamicFifoBuffer: add noexcept
2018-12-28 17:06:01 +01:00
Max Kellermann
ce49d99c2f
check.h: remove obsolete header
...
Since we switched from autotools to Meson in commit
94592c1406
, we don't need to include
`config.h` early to properly enable large file support. Meson passes
the required macros on the compiler command line instead of defining
them in `config.h`.
This means we can include `config.h` at any time, whenever we want to
check its macros, and there are no ordering constraints.
2018-11-19 16:33:49 +01:00
Max Kellermann
f5c9071494
*: copyright year 2018
2018-10-31 17:54:59 +01:00
Max Kellermann
d0349880da
util/StringCompare: add StringAfterPrefixIgnoreCase()
2018-10-29 14:34:29 +01:00
Max Kellermann
94592c1406
build with Meson instead of autotools
...
So long, autotools! This is my last MPD related project to migrate
away from it. It has its strengths, but also very obvious weaknesses
and weirdnesses. Today, many of its quirks are not needed anymore,
and are cumbersome and slow. Now welcome our new Meson overlords!
2018-10-14 23:41:38 +02:00
Max Kellermann
608d232373
util/SliceBuffer: re-add line which got lost in the last commit
2018-09-23 19:33:34 +02:00
Max Kellermann
1702e98fdf
util/SliceBuffer: move code to DiscardMemory()
2018-09-23 19:15:28 +02:00
Max Kellermann
728e4e9a38
util/StringCompare: add StringEndsWithIgnoreCase(), StringStartsWithIgnoreCase()
2018-09-06 19:52:43 +02:00
Max Kellermann
2d6f9f9a9c
Util/WStringAPI: non-Windows implementation of _wcs*cmp()
2018-09-06 19:49:45 +02:00
Max Kellermann
c2e2e5543e
util/WStringAPI: add wcscoll() wrapper
2018-09-06 19:39:28 +02:00
Max Kellermann
349d8eb248
util/WStringCompare: add "noexcept"
2018-09-06 19:35:09 +02:00
Max Kellermann
94b96bde9b
util/WStringCompare: wcpcpy() and wcsdup() are available on Android
2018-09-06 19:33:50 +02:00
Max Kellermann
45ffc864c5
util/StringCompare: add more function attributes
2018-09-06 19:23:13 +02:00
Max Kellermann
eee91aa4ea
util/Exception: update copyright
2018-08-21 08:20:52 +02:00
Max Kellermann
855750c784
util/{Const,Writable}Buffer: add method SetEnd()
2018-08-21 08:20:17 +02:00
Max Kellermann
2156fc64f4
util/StringStrip: more API documentation
2018-08-20 16:30:46 +02:00
Max Kellermann
441440101d
util/StringStrip: add more "nonnull" attributes
2018-08-20 16:28:43 +02:00
Max Kellermann
ec54754e22
Compiler.h: move to util/
2018-08-20 16:19:17 +02:00
Max Kellermann
489e11072e
util/WritableBuffer: add ConstBuffer cast operator
2018-08-20 15:36:50 +02:00
Max Kellermann
5e2af15e94
util/Manual: add static method Cast()
2018-08-20 15:35:43 +02:00
Max Kellermann
3fbb54e0a4
util/IterableSplitString: use operator==(nullptr_t)
2018-08-20 15:35:09 +02:00
Max Kellermann
fe6de14faf
util/StringView: add ConstBuffer cast constructors
2018-08-20 15:34:07 +02:00
Max Kellermann
e85b9960f0
util/StringCompare: use StringAPI.hxx
2018-08-20 15:33:16 +02:00
Max Kellermann
75c836fbd9
util/StringAPI: use StringCompare() in StringIsEqual()
2018-08-20 15:31:09 +02:00
Max Kellermann
94b1025780
util/RuntimeError: fix typo
2018-08-20 15:22:24 +02:00
Max Kellermann
36ca9d01fb
util/ForeignFifoBuffer: shift the buffer in MoveFrom() on demand
...
The API documentation says "move as much data as possible", and if
there is room at the head of the buffer, we should use that if the
room after the tail is not large enough.
2018-08-20 15:21:05 +02:00
Max Kellermann
3bceed1b53
util/ForeignFifoBuffer: add "noexcept"
2018-08-20 14:53:39 +02:00
Max Kellermann
90de2c4bd6
util/Exception: move code to NestCurrentException()
2018-08-20 14:52:54 +02:00
Max Kellermann
9d63c8220b
util/Cast: reverse operands in ContainerAttributeOffset()
...
The result shall be positive.
2018-08-20 14:23:02 +02:00
Max Kellermann
edd9d16c84
util/Cast: move OffsetPointer() to OffsetPointer.hxx
2018-08-20 13:46:18 +02:00
Max Kellermann
ec373eba5d
util/BindMethod: add "noexcept"
2018-08-20 13:45:41 +02:00
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
Max Kellermann
979f1b6c39
release v0.20.9
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlkz5jkQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEubuD/kBXMcV4XawqGNNtSHdrY8CxSL8wJMCMJQl
aMgRkKLPRml8Hj9FNNG9pjXBuT+qUgPX7t9gBEiT7c+sV3fHH40gUf1js5GIsEPm
BAVfvww5EhmQWWVhPTLk1iZ4jp6E96mDmIG1znwo7etSZHXU8RJfR7woBi3SPJ9f
OPcrimskNuWpAWeaEIKi/1Iwzy8d9VK9Ttb73gA3M5zSm7ioXzt3YClpwLRM8JU6
QeUJchy6VwXnygswjUNmbhPc3GsD2FyUZ4OtJ0hodnqqajfldBxhcHUnQk4zZULr
1nLSyOuA9bwLuFohH1T6HiY9z8PFzgqdIHvsjOJgZ4gQa69PVNjal2tUEUav9zFv
aK4LvTVPnIk+hqRbtLpV7/rPKuClrC9BO4oYdBGBDNY4hqVpvRA9obP1s00aOi+K
UhYqLqg7yeIEeTlUxFOhXJCKAEL69BuXT5ihJtDlB/dCUzv37sEch/4WDgs7uc+O
9kJYlElvozw57mbczsee/PCSnSWrLCq/qG/bNEUUQOTueWNuifh3PL62UXGgfbEH
01hJDyLr6ETSmWn7rjTfLJiHThX/EQQvOhs+35fbCyry65z4tFwrilGDmFVUWGPq
/6QEpY1D6q4fkoma/iWOZoTkfKewatAPGMGWoJaGhCnfQFz4VTFtS2bDtuUctQ16
jnXnPFxqBw==
=0SSp
-----END PGP SIGNATURE-----
Merge tag 'v0.20.9'
release v0.20.9
2017-06-04 12:57:05 +02:00
Max Kellermann
a057b4f6d8
*: add lost of "noexcept" specifications
2017-06-04 12:46:48 +02:00
Max Kellermann
cdd2d4cc1d
util/StringView: add method EndsWith()
2017-05-17 12:39:01 +02:00
Max Kellermann
907fb257cd
util/StringAPI: add StringToken(), StringIsEqualIgnoreCase(), StringCollate()
2017-05-16 23:04:27 +02:00
Max Kellermann
60bd60db03
util/String{Compare,API}: add more "noexcept"
2017-05-16 23:02:36 +02:00
Max Kellermann
0fcc28a108
util/String{Compare,API}: indent with tabs
2017-05-16 23:01:43 +02:00
Max Kellermann
ab8005f03e
util/ScopeExit: include cleanup
2017-05-16 22:56:30 +02:00
Max Kellermann
5e8f578e78
util/ConcatString: return the end pointer
2017-05-16 11:56:56 +02:00
Max Kellermann
a4b1633e11
util/ConcatString: use std::copy_n() instead of memcpy()
2017-05-16 11:56:19 +02:00
Max Kellermann
fea211a109
util/Alloc: move template functions to ConcatString.hxx
2017-05-16 11:32:55 +02:00
Max Kellermann
59e4f1ee0f
*: remove lots of GCC 4.8 fallback code
...
We can remove those C++11 and C++14 kludges because we require GCC 4.9
now.
2017-05-16 11:29:15 +02:00
Max Kellermann
86a0a42a8d
util/StringView: add "noexcept"
2017-05-16 10:27:14 +02:00
Max Kellermann
662842126d
util/SplitString: add "noexcept"
2017-05-16 10:23:50 +02:00
Max Kellermann
66e3801b1e
util/MimeType: add "noexcept"
2017-05-16 10:23:38 +02:00
Max Kellermann
a30cf60422
util/FormatString: add "noexcept"
2017-05-16 10:22:52 +02:00
Max Kellermann
c2b8b818c7
util/DivideString: add "noexcept"
2017-05-16 10:22:36 +02:00
Max Kellermann
4284b0e2b8
util/ByteReverse: add "noexcept"
2017-05-16 10:21:59 +02:00
Max Kellermann
9def9b35b9
util/Exception: add "noexcept"
2017-05-16 10:20:17 +02:00
Max Kellermann
4faef28cc5
release v0.20.7
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlkaFL0QHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEr4ID/9iAQC+7fFv06uLOm48Ufu+PgoD8uJkAwF5
QuLQkc85g9urn+bu9N7Qs7Vypp7aLyGcJKY0jyA8wxkOj24pUC3GYk80daUt561V
5s20FnoS/Uoman3CSJL94IfCUBxejizE6vgIIHTc5bb6U0qIsPub/8JTTE2Ih7uP
nvFZ5uBQ+YTc7at+iIH9123eUMKkitkh8osNblovqQT9v42++Tm4ztAytRHBjwUA
Itew5HhlvahbLKqFs/7vmICh/YX1FcOV7cV+erEWYfkH0KCI2bhSle4u2d0CBOvD
VJlDnBCo9bM7WKcPYqJiFFFXA0CRk06wbkkkAtwF4zjp8xos7aQcq4FyQnYL8KXo
5lijIhRwBURBd+nt8oA9kuEhBt/T75otcemJkzVaYappHTJCLjhxSGcPt8mw+nE9
9WQzsp/MIVzg9l5g3D9S/43xM7uhvn98Tn1Qf2s8YRd2o8CZeOhW+X3RvbCvVPv2
mOlx4sFAv8DOJ3KxMdqiJT+PmylPyJluQdqH+tMc8BdPg/kpSpYIPTuSjjRqK1yh
ld5do0HtAAwiHtvXfk5YVFjJSpO0c8yVn6xci2Cl4k/5ZHj2UE1ln+N5vCea2BRF
2J3HAjROwtcwY3lU1jFnEAogf24KWiFJqhhC0EqBGUdlrM8Dn37P5cEWWjROIMNK
lPEdovokNw==
=CdDy
-----END PGP SIGNATURE-----
Merge tag 'v0.20.7'
release v0.20.7
2017-05-15 23:01:49 +02:00
Max Kellermann
788e3b31e1
*: remove "pure" and "const" attributes from throwing functions
...
The "pure" and "const" attributes are not so well-defined, and a
recent clang version implements an optimization which pushes the
definition's boundary beyond what I believed it was. clang now
assumes that functions declared "pure" cannot throw exceptions, even
if they lack the "noexcept" specification.
When compiled with this new clang version, MPD will crash randomly if
an exception happens to get thrown by such as "pure" function
(https://github.com/MusicPlayerDaemon/MPD/issues/41 ).
This commit removes all such misplaced "pure" and "const" attributes,
closing #41 .
2017-05-08 17:25:06 +02:00
Max Kellermann
71f0ed8b74
*: add "noexcept" to many, many function prototypes
...
This eliminates some overhead, because the compiler doesn't need to
consider these functions throwing.
2017-05-08 14:44:49 +02:00
Max Kellermann
d68772d45a
util/{Foreign,Static}FifoBuffer: update API documentation
2017-04-24 20:19:14 +02:00
Max Kellermann
52cb425e33
util/StaticFifoBuffer: add method GetCapacity()
2017-04-24 20:18:44 +02:00
Max Kellermann
ed3220f37f
util/{Foreign,Static}FifoBuffer: use C++11 initializers
2017-04-24 20:16:18 +02:00
Max Kellermann
f6e428ac22
Merge branch 'v0.20.x'
2017-04-24 11:44:27 +02:00
Max Kellermann
38da76bbe0
util/ScopeExit: copy enabled tag in move constructor
2017-04-12 13:11:43 +02:00
Max Kellermann
e26d49efb7
release v0.20.6
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAljCzQcQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEnIXD/9ltsmg3VC81NHOmcUehFgUaLyNh8o2iEr9
tQfdydQxfTXBIGztMoPsPz71da8BIqAgMTCTGAEpTUXIW6ViGkgsoDlR2fAOagG2
ybHn2q3WsPERJvkGZ4xIo0ti0pLLy7wrFpmShgOKuwb6YqOgSV+rbu/CaQanxVJE
S599vo6rV/OI4KFSYWJbfafifN/Mqmzfl/D/tB5xaMvhas60XZ6pZTp/xH8OlnML
8qkgPmN3gJe7DPq6L3rdwKobJuS1X6NLHSp1DyGVRy68B0sd3tMmbOocMeyi1OlE
1z/n/M+dcSUhdHAh/Pg0wrvH0UpUlJ11blSDiWB9gqr9oOvCZO+OcPCnk0QJrqq+
qselDNWBLvVPESbxlPO4OUbV6jxPPhVgz18RYl6JaJeUFjXkuiytI/t6jsbVM3+f
ZC1UgO+TznCuDjjMj35RP9QDkUQpuH6CK4+tyxbH7Fe4KQi02FQdtK8Q/CnESBLl
alTLYQk7VlwL1oMgezoZfTLDbsihRrEO6Y0cp/pObUrEjQ65706UGUf61PRQGBM9
DlEPqfuH8TMgksxDIrkt68pWjyCXhhUCA+RsyFJoMp7Xq6Gy2pZUn2yKCmTXLte/
v5xW9FuiSvKUKlvYbfk/q3u/GTCJELf0eY3y0Eryqp6nOEZHmzz8HOF7Bs2PxM3B
eU/fEKWxVQ==
=21bM
-----END PGP SIGNATURE-----
Merge tag 'v0.20.6'
release v0.20.6
2017-03-10 17:02:32 +01:00
Max Kellermann
42a3a87f13
util/HugeAllocator: paranoid check for sysconf()<0
...
Just in case.
2017-03-01 21:50:26 +01:00
Ben Boeckel
9dfedbe619
ReusableArray: fix build error on GCC7
...
GCC7 outputs the following error without this change:
src/util/ReusableArray.hxx:61:35: error: no matching function for call to ‘swap(size_t&, const size_t&)’
std::swap(capacity, src.capacity);
which can be resolved by just using an rvalue-reference rather than a
const rvalue-reference.
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
2017-03-01 19:38:41 +01:00
Max Kellermann
29d03ab937
release v0.20.5
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlirVtMQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEgbaD/9tgcgcnbiWGkNDMf0qfqfaiY80wA4HbSBT
qbKzan/kuiPXL6xcgw8YRYdAjyaIyw//f1q0SL8/LKvVQ4CrlTEQzOQUzrAOe02n
m35/6YKZVzziMRwuSZY4oQ4WH7SE87gthYIykRt59adznr2QNtQe53SnXd8ukGtf
l8xlLNuIiEwIo5PZ8ObEZH1dUP1PWtfJlxQfbJ2JhZTOR/qPfrpIzSK4GVY0ZXdz
EO6BIZyDgPfeZCPBZqiKmw4vcdIHBhG9ZgtOhX3YATV7ZSYqmjrUcjzEsoyQlOaH
rhe/whl272TQYdj95//BnqI899NVSNRYg6XXGlCB5TXqFscoDCW6JXvVAaTfB0Yg
vMV7ZYX8auu2i013O51yoj8/ofNmOjqbX9eui+gJx6Xb6Zr9Ttma5woYRh14NXwd
15KObGCd1LADpiOZ2XQ8Snlu8QlZ+PXr8RpLh9uSwDe7heemMRKqDZEf3AxfP3wO
GUOK4EHfZ5kZQHlWLA3u59Zopo1ZJjL6EJUTG3Qk+n/Wob/S2F/v5IFIdyaEFTKI
hrcTEQ/EmXZ9vc5Iw/LnIM49pO3kZXKQ9bSrZoi0kjk2AN6XBMmJNoYv/+huc2U9
JiCcyM8olCWcSQnPGjoHWxBGLhxNXtR+WYu/tEEq3+D2PFdkfOap3ApP1qdi+JPd
JFps/sOkgQ==
=4+OJ
-----END PGP SIGNATURE-----
Merge tag 'v0.20.5'
release v0.20.5
2017-02-20 21:59:40 +01:00
Max Kellermann
bc1c927952
util/TimeFormat: suppress -Wunused on Windows
2017-02-20 21:44:01 +01:00
Max Kellermann
4146475c73
util/ChronoUtil: new utility library for std::chrono
2017-02-11 22:23:33 +01:00
Thomas Zander
51147203be
free() require cstdlib to be included
2017-01-31 21:21:37 +01:00
Max Kellermann
4f01387edf
util/StringBuffer: new utility class
2017-01-17 22:03:42 +01:00
Max Kellermann
6eea56861b
AUTHORS, ...: update my email address
2017-01-17 11:54:55 +01:00
Max Kellermann
d842d21be0
util/ReusableArray: add method GetCapacity()
2017-01-11 20:37:12 +01:00
Max Kellermann
3514fd2433
util/ReusableArray: add move constructor/operator
2017-01-11 20:37:12 +01:00
Max Kellermann
6778ff27ea
util/ReusableArray: use C++11 initializers
2017-01-11 20:33:01 +01:00
Max Kellermann
6c6947b01f
util/UriUtil: add uri_get_path()
2017-01-08 11:05:58 +01:00
Max Kellermann
44493ca0c4
util/TimeParser: add "pure" attribute
2017-01-08 10:41:08 +01:00
Max Kellermann
42acf78b09
util/TimeParser: wrapper for strptime()
...
Move code from SongFilter.cxx.
2017-01-07 22:11:45 +01:00
Max Kellermann
a34dfd55be
util/HugeAllocator: remove deprepcated dynamic exception specifications
2017-01-04 10:32:21 +01:00
Max Kellermann
5900253b85
update copyright year
2017-01-03 20:48:59 +01:00
Max Kellermann
52652cb609
command/{Player,Error}: extract messages from nested exceptions
2016-12-29 14:46:13 +01:00
Max Kellermann
219a756abc
Compiler.h: drop gcc_alignas(), use plain C++11 alignas()
2016-11-18 08:56:16 +01:00
Max Kellermann
2f76f9da89
configure.ac: enable C++14
2016-11-18 08:41:47 +01:00
Max Kellermann
22dcca9832
util/Error: remove obsolete class
2016-11-10 12:58:26 +01:00
Max Kellermann
06909f4f00
util/Error: remove explicit move constructor, allow copying
...
The C++ compiler will auto-generate move and copy
constructors/operators for us.
2016-09-08 10:34:02 +02:00