Michael Herstine
1adc2c0c51
playlist_load_into_queue: log on failure to load song.
...
Log at level error when failing to load a song. Limit the number
of log messages produced to avoid flooding the log file when attempting
to load a large, broken playlist.
Closes #1546
2022-11-26 08:28:10 -08:00
Max Kellermann
a3b32819b1
event/Loop: split InjectBreak() from Break()
2022-11-22 22:30:12 +01:00
Max Kellermann
a57cf443ed
event/Loop: set "again" in AddDefer() only if HAVE_THREADED_EVENT_LOOP
...
Only AddDefer()/AddIdle() calls from within DeferEvents are relevant.
2022-11-22 21:40:52 +01:00
Max Kellermann
d0d095cbcd
util/IntrusiveHashSet: rename "slot" to "bucket"
2022-11-22 21:40:52 +01:00
Max Kellermann
3239fce5c1
util/IntrusiveHashSet: add remove_and_dispose_if()
2022-11-22 21:40:11 +01:00
Max Kellermann
200b770104
util/IntrusiveHashSet: add for_each()
2022-11-22 21:40:04 +01:00
Max Kellermann
3aa959eda7
util/IntrusiveHashSet: add erase_and_dispose()
2022-11-22 21:39:40 +01:00
Max Kellermann
72c047f4f0
util/IntrusiveHashSet: add hash_function(), key_eq()
2022-11-21 09:10:44 +01:00
Max Kellermann
c71958af4b
input/async: pass std::span to AppendToBuffer()
2022-11-17 06:15:58 +01:00
Max Kellermann
ce13d82657
input/async: use std::byte instead of uint8_t
2022-11-17 06:15:19 +01:00
Max Kellermann
73dc8ff6bd
lib/nfs/FileReader: pass std::span to OnNfsFileRead()
2022-11-17 06:15:16 +01:00
Max Kellermann
3278ad2ed8
storage/State: remove obsolete Boost compiler warning workaround
2022-11-17 05:32:29 +01:00
Max Kellermann
2e453ef58a
storage/State: use std::hash() instead of boost::crc
...
Also eliminate the useless std::set.
2022-11-17 05:28:53 +01:00
Max Kellermann
a5d04be21f
storage/State: add noexcept
2022-11-17 05:19:11 +01:00
Max Kellermann
9467df526c
song/StringFilter: add enum Position
...
Replaces two conflicting bools.
2022-11-15 21:55:55 +01:00
Max Kellermann
9ca75589c0
song/StringFilter: simplify GetOperator()
2022-11-15 21:55:55 +01:00
Max Kellermann
c158abe87c
lib/icu/Compare: use StringIsEqualIgnoreCase()
2022-11-15 21:13:01 +01:00
Max Kellermann
53530bd1d5
lib/icu/Canonicalize: convert all punctuation to ASCII
...
To make tag matching easier.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1669
2022-11-15 21:04:16 +01:00
Max Kellermann
d7f545721b
lib/icu/Canonicalize: use unorm2_normalize() instead of u_strFoldCase()
...
unorm2_normalize() can case-fold as well, plus it applies Unicode
normalization which MPD should do for proper string comparisons.
2022-11-15 20:53:29 +01:00
Max Kellermann
8b72cb64b2
lib/icu/CaseFold: rename to IcuCanonicalize() and add flag parameter
...
Prepare for adding more transformations.
2022-11-15 20:53:04 +01:00
Max Kellermann
852df2239e
lib/icu/Transliterator: pass std::basic_string_view<UChar> to constructor
2022-11-15 20:53:03 +01:00
Max Kellermann
5a1fbe60af
test/TestStringFilter: new unit test
2022-11-15 20:52:53 +01:00
Max Kellermann
88e33b7b32
test/TestTagSongFilter: initialize ICU
2022-11-15 20:51:59 +01:00
Max Kellermann
264b3f8543
lib/icu/Collate: clear the global variable in IcuCollateFinish()
...
To allow repeated init/finish cycles.
2022-11-15 20:48:50 +01:00
Max Kellermann
ac2bce8b7b
lib/icu/Transliterator: add missing include
2022-11-15 17:07:54 +01:00
Max Kellermann
9f3faaf3c4
lib/icu/Transliterator: wrapper for UTransliterator
2022-11-15 01:09:27 +01:00
Max Kellermann
7be39e07e1
lib/icu/Normalize: wrapper for unorm2_normalize()
2022-11-15 00:49:25 +01:00
Max Kellermann
154fb4317f
lib/icu/CaseFold: move low-level wrapper to FoldCase.cxx
2022-11-15 00:46:58 +01:00
Max Kellermann
aad5210820
lib/icu/CaseFold: use ToStringView()
2022-11-15 00:36:47 +01:00
Max Kellermann
7c4fca0ae1
util/SpanCast: add ToStringView() template
2022-11-15 00:36:28 +01:00
Max Kellermann
1a6ec716ef
lib/icu/Converter: add noexcept
2022-11-15 00:28:41 +01:00
Max Kellermann
0b22cc962d
Merge branch 'private_users' of https://github.com/bluca/MPD
2022-11-14 23:53:43 +01:00
Max Kellermann
51769c40d8
util/IntrusiveSortedList: new class
2022-11-13 09:08:36 +01:00
Max Kellermann
85ab89a08b
util/IntrusiveHashSet: add missing typename
(to make clang happy)
2022-11-13 08:40:53 +01:00
Max Kellermann
a43062c575
RemoteTagCache: use IntrusiveHashSet instead of boost::intrusive::unordered_set
2022-11-13 08:39:04 +01:00
Max Kellermann
c943e27d51
util/IntrusiveHashSet: new class
...
Incomplete draft implementation, just enough methods for current
needs.
2022-11-13 08:38:53 +01:00
Max Kellermann
fb5d77158a
util/IntrusiveList: add enum LinkMode
...
Compile-time code simplification.
2022-11-13 08:15:47 +01:00
Max Kellermann
3023816491
subprojects/.gitignore: ignore liburing
2022-11-12 12:40:44 +01:00
Max Kellermann
51e17e89f4
subprojects: add liburing.wrap
2022-11-12 12:30:13 +01:00
Max Kellermann
98c24d1a32
Merge branch 'v0.23.x'
2022-11-12 12:29:21 +01:00
Max Kellermann
c2d0f35e7a
storage/meson.build: move StorageState.cxx to "mpd" executable
...
Fixes spurious linker errors.
2022-11-12 12:24:48 +01:00
Max Kellermann
ab99a57997
test/meson.build: reduce test_translate_song. dependencies
2022-11-12 12:17:35 +01:00
Max Kellermann
c8ebaf3521
python/build/meson.py: use "meson setup" instead of the deprecated syntax
2022-11-12 12:10:06 +01:00
Max Kellermann
f1dc1af85d
util/IntrusiveList: use const_cast to eliminate duplicate HookTraits functions
...
I hate const_cast, but what I hate more is duplicate code. Sigh.
2022-11-12 08:45:24 +01:00
Max Kellermann
7b3d870516
util/IntrusiveForwardList: remove unnecessary initializer from hook
2022-11-11 21:14:52 +01:00
Max Kellermann
963ff846ff
test/util/TestIntrusiveForwardList: new unit test
2022-11-11 21:13:41 +01:00
Max Kellermann
48c4081ba1
test/util/TestIntrusiveList: remove unused code
2022-11-11 21:11:22 +01:00
Max Kellermann
970ccf043b
util/SortList: enable the std::predicate kludge for macOS as well
...
Sigh.
2022-11-11 19:30:58 +01:00
Max Kellermann
0c92c12adf
Merge branch 'v0.23.x'
2022-11-11 19:27:22 +01:00
Max Kellermann
52d00f7e30
subprojects: update fmt to 9.1.0
2022-11-11 19:22:39 +01:00