Commit Graph

17615 Commits

Author SHA1 Message Date
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
Max Kellermann 309491a6d8 subprojects: update expat to 2.5.0 2022-11-11 19:22:30 +01:00
Max Kellermann 29143dec87 util/SortList: kludge for Android NDK compatibility 2022-11-11 19:17:13 +01:00
Max Kellermann 0fd4c14043 db/simple/Directory: re-add Song.hxx to fix clang build failure 2022-11-11 19:13:01 +01:00
Max Kellermann 81e1f87e8c db/simple/{Directory,Song}: use IntrusiveList instead of boost::intrusive::list 2022-11-11 19:08:22 +01:00
Max Kellermann a448d04d46 util/SortList: library which sorts linked lists 2022-11-11 19:03:39 +01:00
Max Kellermann 60e640af5a util/IntrusiveList: add single-item splice() overload 2022-11-11 18:29:50 +01:00
Max Kellermann df15c418c7 util/IntrusiveList: fix swap() implementation if second list is empty 2022-11-11 18:29:50 +01:00
Max Kellermann 04ab8ae27b util/IntrusiveList: add type aliases value_type, pointer, reference 2022-11-11 17:15:20 +01:00
Max Kellermann b4a64af15e util/IntrusiveList: constant_time_size is a template argument, not a variable 2022-11-11 17:15:16 +01:00
Max Kellermann 1ccfd1fb67 test/util/TestIntrusiveList: simplify tests 2022-11-11 16:41:24 +01:00
Max Kellermann 838c057231 util/IntrusiveList: use `auto`
Fixes typos in the const_iterator return types, and fixes returning
references to stack values.
2022-11-11 16:33:49 +01:00
Max Kellermann af544bb16f util/IntrusiveList: fix typos 2022-11-11 10:11:42 +01:00