Max Kellermann
ad4e597f74
util/Error: use FormatMessage() instead of g_win32_error_message()
2014-12-05 00:10:44 +01:00
Max Kellermann
4b70f9d213
util/DivideString: add option "strip"
2014-12-04 23:05:44 +01:00
Max Kellermann
4e2f4e2091
util/StringUtil: add ToUpperASCII()
...
Replaces g_ascii_strup() and allows building the Vorbis encoder
without GLib.
2014-12-04 17:43:01 +01:00
Max Kellermann
e69bef3ce3
util/SplitString: new utility class
...
Replaces GLib's g_strsplit().
2014-12-04 09:14:28 +01:00
Max Kellermann
050f0c3d8f
util/SplitString: rename to DivideString
2014-12-03 21:38:06 +01:00
Max Kellermann
849b0563ce
util/Alloc: add fallback for gcc 4.6
2014-11-28 19:44:32 +01:00
Max Kellermann
d93172bee8
Compiler.h: add macro CLANG_OR_GCC_VERSION()
2014-11-28 19:09:56 +01:00
Max Kellermann
25429af122
Compiler.h: add macro GCC_OLDER_THAN()
2014-11-28 19:09:52 +01:00
Max Kellermann
b19d3629b9
util/Manual: use GCC_CHECK_VERSION
2014-11-28 19:00:26 +01:00
Max Kellermann
84c519df09
util/Alloc: remove bogus "unused" attribute
2014-11-27 18:21:50 +01:00
Max Kellermann
303d67aed2
release v0.19.2
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUVifPAAoJECNuiljG20USJbYP/2SjixBWtHjHn1wF9K3tRzs3
7GGSBxxBpJVZCTg/PGRJ9m2BNJvocBPhw3WN7PU29xi5kBxDy5yvBcc58OzYHz28
HVZymj8zhdiDqULHPn6b9px6f4Oe8+1xh9q6gwR8rZsRAXKYDrC0GPDMGBeSkWo1
ycnSVTcZ4CjfkM2/jfnCc79q4mC+k2BR5T9OYRnznThVMx+gimMwLFYBjNNdh1MT
ugAxXVtpDs2aTR8fqu/ADGLJosfTjzGdqQ3eowOqVXmsmVIttBGruZdKyrN9KAtU
FfPf60zZ3I8qKppArfEoJAejNyGbhIg1AqX7J7IxHMI+zjlo2kGnEcVFJaG5zZb/
GQThrzGXRPFLlvVDtzfALmBNo3gN0y4I73exlpRCupaxZdFaD5UUPlaLak8r9bt5
30YBBxs7ydIPqs25AwZ9f94NT2QrKityLv+O+Q8lz8AfurqJnuOwEo/HuT4Bxv47
pSx86TtokknyN0A3lw5ttIMbTqN5eNHjJY4PulGJPEPfKjn9p4NLtLrZjT4fnnKG
GKXYcMzeOhMKszbHzOR7dcjI0uKXyx4r7LE4SdL+3msCYbyXDTbCirdusZ1pZDC3
ttkSf+a/dILHZagEAN37t53/NlsAjxjJzenKD4H6Eprxm6er24kSWu+W410b3Bw0
jYLYGXCWVZyJ5dqpTcYb
=NiFd
-----END PGP SIGNATURE-----
Merge tag 'v0.19.2'
2014-11-02 14:06:05 +01:00
Max Kellermann
674091424e
util/UriUtil: add uri_get_suffix() overload that ignores query string
2014-11-02 11:53:31 +01:00
Max Kellermann
eab32f2e5d
util/UriUtil: add uri_get_suffix() overload that ignores query string
2014-11-01 12:45:47 +01:00
Max Kellermann
1178f2c1ab
Util/Alloc: add xstrcatdup(), replacing g_strconcat()
2014-10-25 01:24:10 +02:00
Max Kellermann
063d369672
util/StaticFifoBuffer: make Shift() public
2014-10-19 00:49:08 +02:00
Max Kellermann
8ed4124184
util/DynamicFifoBuffer: make the "Range" type public
...
Export it from the protected base class. This fixes a build failure
on Mac OS X.
2014-10-11 20:28:08 +02:00
Max Kellermann
464767c5fd
db/upnp/Util: move caturl() to util/UriUtil.cxx
2014-10-10 22:43:40 +02:00
Max Kellermann
b70bf938c2
util/UTF8: add SequenceLengthUTF8()
2014-10-10 22:11:38 +02:00
Max Kellermann
d5cf41e043
util/UTF8: new library
2014-10-10 22:11:38 +02:00
Max Kellermann
a9f6556454
Merge branch 'v0.18.x'
2014-08-16 08:25:10 +02:00
François Revol
40280fa6cf
util: Fix header for strcasecmp
...
According to POSIX and both OSX and Linux manpages,
strcasecmp comes from strings.h, not string.h.
Most OSes also have them available in string.h,
but we just fixed the headers on Haiku and it now
only provides them in strings.h.
We might want to fall back to string.h for other
OSes though...
cf.
http://pubs.opengroup.org/onlinepubs/009695399/functions/strcasecmp.html
http://linux.die.net/man/3/strcasecmp
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/strcasecmp.3.html
2014-08-16 06:51:13 +02:00
Max Kellermann
c597538b40
util/HugeAllocator: implement on Windows
2014-08-11 23:06:45 +02:00
Max Kellermann
2ccfb71d12
util/CharUtil: add ToLowerASCII()
2014-08-11 18:42:05 +02:00
Max Kellermann
5ac2a69940
input/TextInputStream: move ReadBufferedLine() to util/TextFile.hxx
2014-08-07 19:38:25 +02:00
Max Kellermann
e88dd9b08b
util/DynamicFifoBuffer: make GetCapacity() and Clear() public
2014-08-07 19:21:09 +02:00
Max Kellermann
67958f7fa7
util/{Static,Foreign}FifoBuffer: lazy shift
...
Reduce the number of unnecessary memmove() calls.
2014-08-07 16:11:00 +02:00
Max Kellermann
ab9c527274
util/StaticFifoBuffer: fix indent
2014-08-07 16:08:55 +02:00
Max Kellermann
59d38f876a
util/StringUtil: add StripRight() overload with "end" argument
2014-08-07 16:08:02 +02:00
Max Kellermann
74aafe6a10
util/StringUtil: use IsWhitespaceOrNull() in StripRight()
...
The null byte is whitespace, too.
2014-08-07 16:08:02 +02:00
Max Kellermann
f860a2fbd6
util/StringUtil: move code to StripRight()
2014-08-07 16:08:02 +02:00
Max Kellermann
87bcf739ee
util/StringUtil: rename strchug_fast() to StripLeft()
2014-08-07 16:08:02 +02:00
Max Kellermann
db6db51742
util/CharUtil: add IsWhitespaceFast()
2014-08-07 16:08:02 +02:00
Max Kellermann
981be7956b
util/CharUtil: make IsWhitespace*() "constexpr"
2014-08-07 16:08:02 +02:00
Max Kellermann
8c10aa575c
util/CharUtil: fix indent
2014-08-07 16:08:02 +02:00
Max Kellermann
cf16d81fa4
util/ForeignFifoBuffer: add method Swap()
2014-08-07 09:02:24 +02:00
Max Kellermann
2beb763b4f
util/ForeignFifoBuffer: add method MoveFrom()
2014-08-07 08:53:02 +02:00
Max Kellermann
08fee9a284
util/ForeignFifoBuffer: add method GetAvailable()
2014-08-06 22:55:59 +02:00
Max Kellermann
f89da17827
util/DynamicFifoBuffer: move code to new base class ForeignFifoBuffer
2014-08-06 17:39:07 +02:00
Max Kellermann
ea26da0be7
util/FifoBuffer: rename to StaticFifoBuffer
2014-08-06 17:29:05 +02:00
Max Kellermann
c8858f85d8
util/Error: add method FormatLastError()
2014-07-30 22:10:31 +02:00
Max Kellermann
d1bc46ffad
util/Error: add SetLastError() overload with "DWORD code" parameter
2014-07-30 22:08:26 +02:00
Max Kellermann
32e5848f34
util/Error: add "printf" attributes
2014-07-30 22:02:46 +02:00
Max Kellermann
f9e63dfd65
util/DynamicFifoBuffer: fix typo in API documentation
2014-07-30 20:53:09 +02:00
Max Kellermann
d8558a3af3
util/Cast: add "const" overload
2014-07-14 17:08:57 +02:00
Max Kellermann
72eedb1c98
util/Cast: add missing include
2014-07-14 17:08:41 +02:00
Max Kellermann
3c5cf9500d
util/Cast: fix indent
2014-07-14 16:44:43 +02:00
Max Kellermann
7a1f3177c9
util/Cast: reimplement as template without macro
2014-07-14 16:24:07 +02:00
Max Kellermann
f8da8b0261
util/Cast: add const overloads
2014-07-14 16:02:02 +02:00
Max Kellermann
393cb7fd7d
util/Cast: suppress "unused function" warning by using "inline"
2014-07-14 15:58:12 +02:00
Max Kellermann
e74e1256d4
util/Cast: fix indent
2014-07-14 15:57:48 +02:00
Max Kellermann
211aea1441
util/ConstBuffer: add method skip_front()
2014-06-26 22:25:03 +02:00
Max Kellermann
74a46788cd
util/ConstBuffer: wrap assert() in NDEBUG check
...
Fixes build failure because assert.h was not included.
2014-06-26 13:31:48 +02:00
Max Kellermann
7213c26798
util/ConstBuffer: add method Contains()
2014-06-23 22:30:01 +02:00
Max Kellermann
3ca0a39a35
db/simple: use class boost::intrusive::list
...
Remove the C list_head library and use type-safe C++ instead.
2014-06-16 18:39:16 +02:00
Max Kellermann
7fb9bebd46
util/{Const,Writable}Buffer: add front(), back(), pop_{front,back}(), shift()
2014-04-24 09:50:19 +02:00
Max Kellermann
3b8a9dd6ec
util/{Const,Writable}Buffer: add typedef reference_type
2014-04-24 09:47:59 +02:00
Max Kellermann
a68acf5c66
util/ConstBuffer: add FromVoid(), ToVoid() to "void" specialization
...
Provide the full API.
2014-03-18 12:09:17 +01:00
Max Kellermann
328860c8ba
util/CircularBuffer: add method GetSpace()
2014-03-16 00:28:42 +01:00
Max Kellermann
89ac111853
util/CircularBuffer: add method GetSize()
2014-03-16 00:27:18 +01:00
Max Kellermann
3d4f588a7f
util/CircularBuffer: rename GetSize() to GetCapacity()
2014-03-15 23:12:20 +01:00
Max Kellermann
f660d30138
util/CircularBuffer: new buffer class
2014-03-15 18:35:52 +01:00
Max Kellermann
1e06c66c77
java: new helper library for the Android port
2014-03-01 18:48:20 +01:00
Max Kellermann
4ba7427fa0
util/{Const,Writable}Buffer: add operator[]
2014-03-01 07:49:13 +01:00
Max Kellermann
9dc5335e3e
util/{Const,Writable}Buffer: add template specialization for "void"
...
Omit a few methods that are not applicable.
2014-03-01 07:37:58 +01:00
Max Kellermann
d333de1980
util/ConstBuffer: remove cast operator ConstBuffer<void>
...
This was bugged, because it did not scale the "size".
2014-03-01 07:37:20 +01:00
Max Kellermann
6ba1fe7568
UriUtil: support ftp:// URLs in uri_remove_auth()
2014-02-24 19:59:53 +01:00
Max Kellermann
fb5fbb8088
util/Tokenizer: relicense to BSD-2
2014-02-19 10:41:48 +01:00
Max Kellermann
2b21312b36
util/StringUtil: add StringEndsWith()
...
Replaces g_str_has_suffix().
2014-02-18 09:18:42 +01:00
Max Kellermann
579e48edbb
util/StringUtil: add function Strip()
...
Replaces g_strstrip().
2014-02-17 22:37:43 +01:00
Max Kellermann
d05ae4b444
util/HugeAllocator: relicense to BSD-2
2014-02-10 13:32:50 +01:00
Max Kellermann
56f082c9d4
util/PeakBuffer: fix nullptr dereference when peak_size==0
2014-01-15 11:24:29 +01:00
Max Kellermann
fe7cda57e4
util/PeakBuffer: fix nullptr dereference when peak_size==0
2014-01-14 23:07:04 +01:00
Max Kellermann
4f83c60296
copyright year 2014
2014-01-13 22:31:55 +01:00
Max Kellermann
139122c57f
Merge branch 'v0.18.x'
2014-01-08 22:14:12 +01:00
Max Kellermann
27ca0db7a6
util/Alloc: new library replacing GLib's g_malloc()
2014-01-07 23:35:18 +01:00
Max Kellermann
da80f91e1c
Directory: make some code generic, move to VarSize.hxx
2014-01-07 23:10:56 +01:00
Max Kellermann
0d20130d07
util/Cast: new utility library
2014-01-06 18:21:45 +01:00
Max Kellermann
afc70c120e
util/UriUtil: uri_get_suffix() fails if name begins with dot
...
A file called ".jpg" is not a JPEG file with an empty name; it is
merely a hidden file.
2013-12-29 17:40:51 +01:00
Max Kellermann
86e72ffefb
util/Clamp: generic Clamp() function
2013-12-22 21:08:06 +01:00
Max Kellermann
d86cd4e4b4
util/fifo_buffer: remove obsolete library
2013-12-19 12:17:09 +01:00
Max Kellermann
a191db84f2
util/Error: add missing <algorithm> include
...
For std::move().
2013-12-19 10:58:20 +01:00
Max Kellermann
52dca859c7
util/PeakBuffer: use IsEmpty() instead of IsNull()
...
The DynamicFifoBuffer methods never return nullptr when the buffer is
empty or full; instead, they return an empty buffer. This bug caused
an endless loop.
2013-12-19 10:30:26 +01:00
Max Kellermann
f544316314
util/{Domain,Error}: relicense to BSD 2-clause
2013-12-16 22:42:01 +01:00
Max Kellermann
ecdebb315f
util/PeakBuffer: use DynamicFifoBuffer instead of struct fifo_buffer
...
Switch to the C++ version.
2013-12-15 23:07:08 +01:00
Max Kellermann
1f523be72d
util/PeakBuffer: return ConstBuffer<void>
2013-12-15 23:07:08 +01:00
Max Kellermann
f2a20a0a80
util/WritableBuffer: add cast methods
2013-12-15 23:01:06 +01:00
Max Kellermann
e5a2efaa65
util/WritableBuffer: fix indent
2013-12-15 22:58:32 +01:00
Max Kellermann
c44cb3246d
util/DynamicFifoBuffer: make constructor "explicit"
2013-12-15 22:35:21 +01:00
Max Kellermann
635d6a19ef
util/Tokenizer, ...: include cleanup
2013-12-15 18:33:26 +01:00
Max Kellermann
777844ae0c
system/SocketError, ...: use strerror() instead of g_strerror()
...
Avoid GLib.
2013-12-15 18:32:07 +01:00
Max Kellermann
e1ec65bd53
UriUtil: add function uri_get_scheme()
...
Replaces g_uri_parse_scheme().
2013-12-15 17:06:10 +01:00
Max Kellermann
635a67afac
util/SplitString: new utility class
...
To replace g_strdup().
2013-12-14 12:58:26 +01:00
Max Kellermann
ad7302a032
util/DynamicFifoBuffer: new class replacing growing_fifo
2013-12-05 11:49:21 +01:00
Max Kellermann
6f47c1ca20
util/ConstBuffer: new utility class
2013-11-29 22:06:04 +01:00
Max Kellermann
af4133e3c9
Util/StringUtil: add StringStartsWith()
...
Replaces GLib's g_str_has_prefix().
2013-11-28 18:48:35 +01:00
Max Kellermann
f90abe9530
include cleanup using iwyu
2013-11-28 11:50:54 +01:00
Denis Krjuchkov
db238cc23f
CommandLine: new command line parser
...
This implementation behaves mostly identical to old parser.
Few observable differences:
- There are no option groups (single group is used for all options)
- Option --stdout is hidden (it has been obsolete for a long time)
- MPD executable name (mpd) is hardcoded for simplicity
2013-11-24 17:29:05 +06:00
Max Kellermann
0b6548a282
util/RefCount: no "constexpr" with libc++
...
Not supported by libc++.
2013-11-11 12:27:16 +01:00
Max Kellermann
faf5821816
util/LazyRandomEngine: make min()/max() static+constexpr
...
Required for building with libc++.
2013-11-11 12:27:15 +01:00
Max Kellermann
44581dbef5
util/UriUtil: add uri_is_child_or_same()
2013-10-29 21:13:40 +01:00
Max Kellermann
3ac7de7a22
util/NumberParser: add ParseFloat()
2013-10-26 13:49:15 +02:00
Max Kellermann
ade66e7ece
util/NumberParser: indent
2013-10-26 13:49:15 +02:00
Max Kellermann
3d12f8d246
UriUtil: uri_remove_auth() returns std::string
2013-10-23 21:58:44 +02:00
Max Kellermann
8f1ec1dfdf
util/NumberParser: utilities for parsing numbers from ASCII strings
2013-10-21 09:48:31 +02:00
Max Kellermann
222dc8a239
Util/ASCII: add StringEqualsCaseASCII() overload with length
...
Replaces GLib's g_ascii_strncasecmp().
2013-10-21 08:42:55 +02:00
Max Kellermann
0e4d2e7277
Util/ASCII: add function StringEqualsCaseASCII()
...
Replaces GLib's g_ascii_strcasecmp().
2013-10-20 23:09:51 +02:00
Max Kellermann
5dc4cbdf82
util/FormatString: new library to replace g_strdup_printf()
2013-10-19 17:24:21 +02:00
Max Kellermann
b39ab76118
Util/CharUtil: new library replacing g_ascii_isX()
2013-10-19 15:36:47 +02:00
Max Kellermann
58fe352fda
util/StringUtil: rename strchug_fast_c() to strchug_fast()
...
Overload the name.
2013-10-18 12:24:47 +02:00
Max Kellermann
f6d74012b7
util/Error: add method SetLastError()
2013-10-17 19:29:38 +02:00
Max Kellermann
5e26e2ab1d
system/ByteOrder: new library for byte ordering / endianess
...
Replacing GLib macros.
2013-10-16 22:09:44 +02:00
Max Kellermann
08eca827b6
util/ByteReverse: use C99 "restrict"
...
Micro-optimization.
2013-10-16 22:07:59 +02:00
Max Kellermann
6b2b5af344
util/byte_reverse: convert to C++
2013-10-16 22:07:52 +02:00
Max Kellermann
509f8dab89
Util/Macros: replacement for GLib's G_N_ELEMENTS()
2013-10-15 22:47:39 +02:00
Max Kellermann
84d20d9e43
util/FifoBuffer: C++ version of the fifo_buffer library
2013-10-15 10:28:52 +02:00
Max Kellermann
be2951b45f
gcc.h: rename to Compiler.h
2013-10-15 09:21:59 +02:00
Max Kellermann
6fd481df97
Mapper, ...: use memcmp() instead of strncmp() where appropriate
...
Micro-optimization.
2013-10-14 22:00:21 +02:00
Max Kellermann
29030b54c9
util/Error: new error passing library
...
Replaces GLib's GError.
2013-09-04 18:14:22 +02:00
Max Kellermann
abe090ec1f
*: remove remaining __cplusplus checks
2013-08-07 19:58:52 +02:00
Max Kellermann
953e3190ca
encoder/lame: use ReusableBuffer instead of AllocatedArray
2013-08-07 18:53:24 +02:00
Max Kellermann
44a0e21795
PcmBuffer: move code to new class ReusableBuffer
...
ReusableBuffer is more generic.
2013-08-07 18:51:21 +02:00
Max Kellermann
66f678023f
util/Manual: add missing include <utility>
2013-08-06 22:34:20 +02:00
Max Kellermann
3f04a4d635
encoder/lame: dynamic output buffer
2013-08-06 09:13:28 +02:00
Max Kellermann
85b77b81ca
*: use gcc.h macros instead of GLib
2013-08-04 23:48:01 +02:00
Max Kellermann
28030d7edb
include cleanup
2013-07-30 08:39:21 +02:00
Max Kellermann
d300e6bf21
util/Manual: work around strict-aliasing warning
2013-04-11 00:01:08 +02:00
Max Kellermann
0921180b90
string_util: convert to C++
2013-04-09 01:08:20 +02:00
Max Kellermann
450c26c471
tokenizer: convert to C++
2013-04-08 23:51:39 +02:00
Max Kellermann
7ec1121cc8
uri: convert to C++
2013-04-08 23:45:31 +02:00
Max Kellermann
762c91b7f1
util/Manual: new template class
2013-01-30 23:48:34 +01:00
Max Kellermann
ba51045d9e
refcount: convert to C++
2013-01-29 23:20:19 +01:00
Max Kellermann
3e03527930
Client: move output buffer code to new class PeakBuffer
2013-01-15 10:59:28 +01:00
Max Kellermann
4fa724461e
util/fifo_buffer: add method _init()
2013-01-15 10:59:28 +01:00
Max Kellermann
f9fc3a42cc
fifo_buffer: move to util/
2013-01-15 01:02:13 +01:00
Max Kellermann
0308ec564e
util/list: don't use GLib
2013-01-08 16:41:36 +01:00
Max Kellermann
5b8b7d1412
util/LazyRandomEngine: lazy wrapper for std::mt19937
2013-01-07 21:27:51 +01:00
Max Kellermann
223b90d0d4
MusicBuffer: return memory to kernel when stopping playback
...
Use the new HugeAllocator as backend for SliceBuffer and call
HugeDiscard() when the last chunk was returned.
2013-01-04 20:48:28 +01:00
Max Kellermann
692b2cfb79
HugeAllocator: new memory allocator
2013-01-04 20:38:06 +01:00
Max Kellermann
447a86c922
SliceBuffer: lazy initialization
...
Avoid page faults on MPD startup. This saves a lot of memory for an
idle MPD.
2013-01-04 20:29:47 +01:00
Max Kellermann
e3a2bd3a1e
MusicBuffer: move code to template class SliceBuffer
2013-01-04 17:12:21 +01:00
Max Kellermann
8e331cfc65
gcc.h: re-add gcc_const and gcc_pure
...
Remove GLib dependency from some headers.
2012-08-02 19:12:18 +02:00
Max Kellermann
123ae985d5
util/list: make safe for C++
2012-08-01 09:59:12 +02:00
Max Kellermann
95d9bb6dfc
pcm_byteswap: move code to libutil
2012-03-21 18:58:19 +01:00
Max Kellermann
c1d0a8b5ce
dsd2pcm: move the bit reversing code to a generic library
...
Instead of doing run-time initialisation, use a constant lookup table.
2012-03-21 08:44:43 +01:00
Max Kellermann
69d3c611aa
util/list: allow typeof() with clang
2012-03-19 20:37:25 +01:00
Max Kellermann
a989140a07
util/list.h: import the Linux kernel's linked list library
2012-01-24 20:49:52 +01:00