Max Kellermann
05dcac55f9
lib/fmt: add meson.build
2022-11-28 22:18:46 +01:00
Max Kellermann
2aa42d2647
lib/fmt/ToBuffer: new library
2022-11-28 22:18:46 +01:00
Max Kellermann
dc8e0c9c5c
archive/zzip: add missing include
2022-11-28 22:18:45 +01:00
Max Kellermann
96ae659fdf
system/FmtError: new library
...
Replaces the Format*() functions in system/Error.hxx.
2022-11-28 21:56:12 +01:00
Max Kellermann
124e75c286
thread/Thread, fs: add missing WIN32 includes
2022-11-28 21:56:11 +01:00
Max Kellermann
25da798e7a
system/Clock: compile only on Windows
2022-11-28 21:16:49 +01:00
Max Kellermann
88d5347d94
Log, client/Response, io/BufferedOutputStream: remove unnecessary libfmt include
2022-11-28 20:44:48 +01:00
Max Kellermann
7f3868727b
Log, client/Response, io/BufferedOutputStream: drop support for libfmt < 7
...
Remove some compatibility code.
2022-11-28 20:17:16 +01:00
Max Kellermann
3103e8d719
fs/StandardDirectory: update #ifdef for GetEnvPath()
...
Fixes regression from a38eabc8bc
2022-11-28 20:17:16 +01:00
Max Kellermann
cfbd751742
fs/StandardDirectory: pass Path to IsValidDir()
2022-11-28 18:48:10 +01:00
Max Kellermann
a38eabc8bc
fs/StandardDirectory: move code to GetExistingEnvDirectory()
2022-11-28 18:43:45 +01:00
Max Kellermann
9669ea6a12
fs/StandardDirectory: add noexcept
2022-11-28 18:27:06 +01:00
Max Kellermann
863a28daa3
fs/StandardDirectory: eliminate global variable "home_prefix"
2022-11-28 18:27:06 +01:00
Max Kellermann
ea5bcfed8b
fs/StandardDirectory: pass std::string_view to ParseConfigLine()
2022-11-28 17:11:17 +01:00
Max Kellermann
f6f3c4c25b
fs/StandardDirectory: pass const string to ParseConfigLine()
2022-11-28 17:07:29 +01:00
Max Kellermann
8fe29f5728
release v0.23.11
...
-----BEGIN PGP SIGNATURE-----
iQJBBAABCgArFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmOE2gINHG1heEBibGFy
Zy5kZQAKCRAjbopYxttFEiugD/9OKEBR9tfrJvtVGuO2INtaMeAzlZ9swFYCkphF
i2R7H9/9E0AvtgyFi/6EDNgFCBbnUzSIGbtdc78EwHE6GxeK/Q9G1fo9AC+6I8Ww
2ScEV9NKIMGTbsRvoomKnGZWpvNTpadPlLa02bckXpKK3wQUPhLb8RAH3newZ0RC
OXs+mzSRReRKpjUBxZsI+6f+aajM6/PoiOmBbrNbYbsSlkpKtLeW8ptkQxPME12B
QD9e7yf9ZndYfoHJdmmPxfvIGIEDATCs8MzY8tFUYkhdbEk0C0aRZQTODQS3DATp
0wrmlJzmceiN2nhKjthg1bvC+jobPywIuDZdrEuyFumN/EZxldKAUCezduV+Dohm
UPkQp5yiSTZRZVYQMEOSW6cMndC7URFrtn643+jV7SGkTmmV6nVOyg4e9GR1BakT
rY0nZGr7dwEInODkA5lXMhph3u8aZa2Mfo5B8m2aloGVHYOX1t3bH07ym5oJiviq
eiQx/bMpaS6ECCSnmHPGDl0NHHWDiPGv96EyPO2N9oeWiNuZz/Fla0N99Mi/JbVI
EpSHF89F+bfiw5qIeet93ZrXjwQjMuC6zofZ1jbVFek2eKszCZSNdx233VLz170G
edyN5Vxy3r24YBy/nrZVXPRxsj65KOxF1TZ9SzHKmfnuU45a+JZjZuWz5yedPn2/
3fy7oA==
=eLEd
-----END PGP SIGNATURE-----
Merge tag 'v0.23.11'
release v0.23.11
2022-11-28 17:00:38 +01:00
Max Kellermann
a8b0c55818
input/curl: make proxy verify setting optional
...
These settings do not work if CURL was compiled with
CURL_DISABLE_PROXY, and cause error "An unknown option was passed in
to libcurl".
Fixes regression by commit 7ab0dfc8ce
2022-11-28 16:14:01 +01:00
Max Kellermann
e9f6a3482c
db/Configured: add default "cache_directory" setting
2022-11-28 14:24:52 +01:00
Max Kellermann
5d2e80f188
db/Configured: use GetAppCacheDir() instead of GetUserCacheDir()
2022-11-28 14:20:15 +01:00
Max Kellermann
cfd4d5b13e
StateFileConfig: use GetAppCacheDir() instead of GetUserCacheDir()
2022-11-28 14:20:14 +01:00
Max Kellermann
06514aec63
fs/StandardDirectory: add GetAppCacheDir()
2022-11-28 14:19:30 +01:00
Max Kellermann
4ded1ae67b
fs/FileSystem: add CreateDirectoryNoThrow()
2022-11-28 14:19:08 +01:00
Max Kellermann
1da974e3fa
fs/StandardDirectory: use PACKAGE_NAME from version.h
2022-11-28 14:05:34 +01:00
Max Kellermann
94f06f0946
fs/StandardDirectory: use mode=0777 in mkdir() call
...
Of course, mode=0700 is more secure, but allowing other users access
to new directories is a choice the user should make via umask(). If
the user-chosen umask allows everybody access, MPD should probably
respect that.
2022-11-28 14:04:47 +01:00
Max Kellermann
d9eec8a455
fs/StandardDirectory: do not use $RUNTIME_DIRECTORY on Android
...
This is systemd specific, and Android doesn't have systemd.
2022-11-28 10:44:50 +01:00
Max Kellermann
eaecbcafb2
PlaylistFile: disallow backslash in playlist names on Windows
...
The function spl_valid_name() should verify playlist names and prevent
path traversal, but it failed to do so on Windows, because it forgot
to check for backslashes.
This buggy piece of code was already present when stored playlists
were initially implemented in 2006 by commit 08003904d7
, and
even during the many rounds of code refactoring, nobody ever bothered
to verify it. D'oh!
(Thanks, Paul Arzelier)
2022-11-28 09:53:49 +01:00
Max Kellermann
73b5d0a9b9
system/Error: truncate the snprintf() return value
...
snprintf() does not return the (truncated) length actually written,
but the length that would be needed if the buffer were large enough.
This API usage mistake in FormatLastError() can lead to overflow of
the stack buffer, crashing the process (Windows only).
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1676
2022-11-28 09:42:37 +01:00
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
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
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
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
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
970ccf043b
util/SortList: enable the std::predicate kludge for macOS as well
...
Sigh.
2022-11-11 19:30:58 +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
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
Max Kellermann
84fd401d21
util/IntrusiveList: add method splice()
2022-11-11 10:05:20 +01:00
Max Kellermann
b5d224496f
util/IntrusiveList: iterators are bidirectional
2022-11-11 09:20:09 +01:00
Max Kellermann
78d8b5f73c
util/OptionalCounter: add operator+= and operator-=
2022-11-10 16:55:04 +01:00
Max Kellermann
5670d98c54
util/IntrusiveList: move code to IntrusiveListNode::Connect()
2022-11-10 16:52:34 +01:00
gd
440c676be2
EventLoop: added assert(IsInside()) in Insert(CoarseTimerEvent &) and AddIdle(DeferEvent &)
...
Like AddDefer(DeferEvent &), Insert(FineTimerEvent &), these methods don't lock to update EventLoop::again
2022-11-10 15:35:14 +01:00
Max Kellermann
e820222c5b
lib/nfs/Manager: use IntrusiveForwardList instead of boost::intrusive::slist
2022-11-10 12:08:23 +01:00
Max Kellermann
1786eef8e6
util/IntrusiveForwardList: new class
2022-11-10 12:07:59 +01:00
Max Kellermann
5f2fa1dbe3
RemoteTagCache: use IntrusiveList instead of boost::intrusive::list
2022-11-10 12:06:00 +01:00
Max Kellermann
77d257de27
input/cache: use IntrusiveList instead of boost::intrusive::list
2022-11-10 12:05:09 +01:00
Max Kellermann
89d950e9a7
output/httpd: use IntrusiveList instead of boost::intrusive::list
2022-11-10 12:02:54 +01:00
Max Kellermann
4041d87c34
lib/nfs/Cancellable: use IntrusiveList instead of boost::intrusive::list
2022-11-10 12:01:11 +01:00
Max Kellermann
b3c5e6a3cc
event/Loop: use IntrusiveList instead of boost::intrusive::list
2022-11-10 11:57:57 +01:00
Max Kellermann
1da8faa285
client/List: use IntrusiveList instead of boost::intrusive::list
2022-11-10 11:08:11 +01:00
Max Kellermann
988f5d1b5d
util/StringSplit: add SplitWhile()
2022-11-09 19:23:19 +01:00
Max Kellermann
3ab3d5555e
util/StringSplit: reimplement without std::distance()
...
Avoid including <iterator>.
2022-11-09 19:23:10 +01:00
Max Kellermann
2e5d46c399
util/StringSplit: add constexpr
2022-11-09 19:23:05 +01:00
Max Kellermann
7600ad7cac
util/StringSplit: add Partition()
2022-11-09 19:22:54 +01:00
Max Kellermann
485ad583a0
util/CharUtil: add IsLowerAlphaNumericASCII()
2022-11-09 19:21:43 +01:00
Max Kellermann
bbc82a9892
io/FileDescriptor, net/SocketDescriptor: make lots of methods "const"
...
Only the file descriptor value itself is const, but the file itself
may be readable/writable.
2022-11-09 19:19:20 +01:00
Max Kellermann
69596106d3
io/FileDescriptor: add pread() wrapper
2022-11-09 19:18:41 +01:00
Max Kellermann
a0a11be79b
Merge branch 'v0.23.x'
2022-11-08 14:36:09 +01:00
Max Kellermann
32bddfabea
archive/plugins/meson.build: do not generate empty library
...
If no archive library was found, return from the "plugins" directory
without creating "libarchive_plugins.a". Empty static libraries are
unsupported on some operating systems such as macOS.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1650
2022-11-03 20:36:00 +01:00
gd
a1359f2388
TagBuilder: skip unnecessary preperation if there are no items to add
2022-11-01 17:55:42 +02:00
gd
ab687481cc
Tag: skip tag pool lock if there are no items
2022-11-01 15:37:54 +02:00
Max Kellermann
0efbd4df8b
lib/gcrypt: use std::size_t
2022-10-29 07:31:25 +02:00
gd
caaa050e60
curl input plugin - added config options: verbose, low_speed_limit, low_speed_time, tcp_keepalive, tcp_keepidle, tcp_keepintvl
2022-10-22 13:49:58 +03:00
gd
160f793e2a
Added connect_timeout configuration to curl input plugin
2022-10-16 12:13:51 +03:00
Max Kellermann
1429d6bfb9
playlist/cue/Parser: use Split()
2022-10-15 08:33:51 +02:00
Max Kellermann
ced6a5ae07
playlist/cue/Parser: remove always-failing assert()
...
Not the assert() here fails, but the illegal src[-1] call. Yet
another regression from commit 21e4c25e61
2022-10-15 08:32:37 +02:00
Max Kellermann
d6d0f78e93
release v0.23.10
...
-----BEGIN PGP SIGNATURE-----
iQJBBAABCgArFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmNJ2e0NHG1heEBibGFy
Zy5kZQAKCRAjbopYxttFEjBYEACk4QtVnD52sGtz0CwThFYzekvkZHOBcP2fYOH7
rVcQaNmV7Fpnv+iz+k7zrqhs/A8FgQq6KUNpUn3gzxae4KsA7i1yEpopIqfzRh71
eVrjTGijMirddehsxKbkjZ1TZy5S+SkZ+Bu965qzXUZuIrErKm4m5xqkIxXBHMEc
twK9BSCqlTT2vpND5cmX90T/NBDgZd3uQxQP2ohWjVXvg9ou2gtns18ZdYUVRTym
rLqRLfx1rG1lS8hzKqUqt9YxbWSD606T4giC2vYg2+2OFA9VFh3TNCSaFgWEJMZe
ou6iaX+aSoCP+H6nktxfYravwdmHvBseRtrOouxPd8Br2k1eSQGXEVlZVTKrpBME
OZnncEGqN27GggYH1RyVZ6showJ7G05HOhGFDDs8ABR0EbAbNkGvhrjl8cGXONYH
ScTBbvqkTrhRMOOSmiAp7X1eLJ4QICAfhCV85YzSV93u69egO1MQLYzVYUurOOyt
TuT+XbUD+Irk3DrHvhxs/IE+ciIvilFsvCmeNjCAyH4ZPvvHt/AIskQNyF3Jj720
XKjtq6rMF9bizut/kboPgsVQoFbnj7ncCaIZ90h27obeqqiXajTx7ixJldvwDbrp
yKQY6xDdm7DZChqYF0KKWWzLt2BoAzqVPW3zgRfJRqb9HtQ+ZVJuljvV8bBVFKN1
zIA4Nw==
=GQl1
-----END PGP SIGNATURE-----
Merge tag 'v0.23.10'
release v0.23.10
2022-10-14 23:56:33 +02:00
Max Kellermann
76b25a1377
output/alsa: add nullptr check for snd_pcm_name() return value
...
It is not explicitly documented whether snd_pcm_name() is allowed to
return NULL:
https://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html#ga5031edc0422df8db1f70af056a12dd77
But apparently this is legal:
0222f45d11/src/pcm/pcm.c (L2761-L2762)
That's ... surprising!
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1645
2022-10-14 23:14:30 +02:00
Max Kellermann
ccc3ee663b
java/File: remove assertions to work around -Wtautological-pointer-compare
2022-10-14 23:00:35 +02:00
Max Kellermann
0626661764
android/Context: fix typo in assert() variable name
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1644
2022-10-14 22:59:39 +02:00
jcorporation
2937a55582
add precondition for mount/unmount in commands response
2022-10-07 13:59:54 +02:00
gd
cd093a6014
Added new optional argument MODE to command 'save' to be able to append or replace an existing playlist
2022-10-02 11:19:36 +03:00
Max Kellermann
3e25916b37
time/Parser: remove unused library
2022-09-30 18:17:03 +02:00
Max Kellermann
5f9438dae6
storage/curl: include cleanup
2022-09-30 18:16:46 +02:00
BurroCargado
99e65c58ce
storage/curl: make timestamp parsing more robust
...
According to the latest WebDAV specification (RFC4918),
timestamp string in the getlastmodified property is formatted
as rfc1123-date, such as "Sun, 06 Nov 1994 08:49:37 GMT".
However, to process responses from servers in the older style
format specified in RFC2518, timestamps in the HTTP-date format
had better be accepted.
As described in the libcurl api documentation, curl_getdate() can handle
timestamp strings in HTTP-date formats, including rfc1123-date.
https://www.rfc-editor.org/rfc/rfc4918#section-15.7
https://www.rfc-editor.org/rfc/rfc2518.html#section-13.7
https://curl.se/libcurl/c/curl_getdate.html
2022-09-29 18:19:30 +02:00
BurroCargado
df71b07e9d
storage/curl: fix can't get timestamp of remote file
2022-09-29 18:19:03 +02:00
Max Kellermann
2694195215
storage/curl: add noexcept
and [[gnu::pure]]
2022-09-29 18:18:18 +02:00
Max Kellermann
b0d6c0e7cb
Merge branch 'v0.23.x'
2022-09-28 13:08:34 +02:00
Max Kellermann
76efea3aa7
decoder/ffmpeg: add libfmt formatter for AVSampleFormat
...
Fixes compiler warning because formatting unscoped enums is deprecated
since libfmt 9.
2022-09-28 11:34:33 +02:00
Max Kellermann
ac7bf12743
event/Loop: move call to FlushClockCaches()
2022-09-28 10:03:39 +02:00
Max Kellermann
db21e20c99
event/Loop: improve API doc wording
2022-09-28 09:55:35 +02:00
Max Kellermann
56adb27b44
event/Loop: push new idle events to the back of the list
2022-09-28 09:47:36 +02:00
Max Kellermann
520e96b6e8
event/Loop: rename parameter
2022-09-28 09:45:58 +02:00
Max Kellermann
45599e7840
Merge branch 'v0.23.x'
2022-09-27 20:40:41 +02:00
Max Kellermann
8d9b0c42cb
Merge branch 'reflection' of https://github.com/jcorporation/MPD
2022-09-27 20:35:17 +02:00
jcorporation
7ab0dfc8ce
Sets the curl proxy ssl verify options to the values of the host configuration options
...
This fixes #1616
2022-09-27 20:26:50 +02:00
Max Kellermann
2c11095eed
lib/icu/Compare: use StringStartsWith() for improved code clarity
...
Also fixes the inverted strncmp() call.
2022-09-27 20:23:10 +02:00
jcorporation
07a0369b74
Add pcre status to config response
2022-09-27 20:10:35 +02:00
jcorporation
868a06eaf9
Add starts_with to filter expressions
2022-09-27 19:45:15 +02:00
Max Kellermann
512cd7b0de
Merge branch 'ConsumeMode' of https://github.com/jcorporation/MPD
2022-09-21 11:36:25 +02:00
Max Kellermann
352c598916
command/other: use if-with-initializer
2022-09-20 22:07:10 +02:00
Max Kellermann
661aee29da
Merge branch 'reflection' of https://github.com/jcorporation/MPD
2022-09-20 21:07:06 +02:00
jcorporation
0439df05cc
Add playlist_directory to config command response
2022-09-20 21:04:25 +02:00
jcorporation
eb3baf7e99
Cast enum to unsigned
2022-09-20 20:27:25 +02:00
jcorporation
48a936ef5b
Add ConsumeMode oneshot, closes #925
2022-09-20 20:26:49 +02:00
Max Kellermann
5a7d2be77d
Merge remote-tracking branch 'jcorporation/idle'
2022-09-20 15:11:41 +02:00
Anthony DeRossi
9ab9b97f20
encoder/flac: only set a serial number for oggflac
...
This fixes a bug introduced in 87fa6bca
where the FLAC encoder fails to
initialize unless libFLAC is built with Ogg support. When libFLAC is
built without Ogg support, FLAC__stream_encoder_set_ogg_serial_number
unconditionally returns false.
2022-09-16 17:58:41 -07:00
jcorporation
310a146a55
OutputCommands get ride of global mixer idle events
2022-09-06 21:58:18 +02:00
Max Kellermann
0e201ffdcc
archive/iso9660: simplify std::span initializer
2022-09-06 21:16:28 +02:00
Max Kellermann
d5d25d78da
Merge branch 'v0.23.x'
2022-09-06 21:15:42 +02:00
Max Kellermann
84f43ccde8
LogInit: default to stderr on Windows
...
Don't require "log_file" setting, for "--no-config" operation.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1600
2022-09-06 21:04:53 +02:00
Max Kellermann
38704c9cf3
LogInit: improve systemd/journald comment
2022-09-06 21:03:56 +02:00
Max Kellermann
3b05c89765
archive/iso9660: fix off-by-one assertion failure
...
Calling data[fill] could trigger an assertion failure if
fill==data.size(), even if we call it only to take the address.
Instead of doing that, this commit changes the code to pointer
arithmetic.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1556
2022-09-06 20:28:33 +02:00
jcorporation
4f8b4c605e
player/Control: Change idle events from global to partition scope
2022-08-28 11:33:14 +02:00
Max Kellermann
4f041694d3
release v0.23.9
...
-----BEGIN PGP SIGNATURE-----
iQJBBAABCgArFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmL+ZuYNHG1heEBibGFy
Zy5kZQAKCRAjbopYxttFEmxjD/4sJEq9DroRRK2qnVL1c6rwdzAL05LQwXGfWMCY
/eIfoYGgu+PPN65Xf/A7qEvsXXSpuDzq0jTzdmtSvQwfKgg5jy72Qn+LN0dmoSRn
mqQoqPFFxr7URf7QhL/6/EKcKYSexu/dxLnnuOC/yB/32WB+JINGNLWABrCpFMW0
4kbVSC6t/e07bfBxNoYKx+kSxX88n82v5LNjkPctx0oU0gRoyRZds273uuKHOIYQ
KFHHuaW9eNT0x/JrrsBD0ASXcp/9CfyVvyoag4bqJIc6Bg4fJTEZ9QPy9SUF2R8L
0QCG2DBqFoht7Xqyo7qe5vYy2lww/flVrH/UwB1V7xfWzbuv3qUYs2pRnFmPKjQx
23FRBkmC3tWmno+pZFaYmzprRKQK7WS9DJUzaQ8DCjNVpncadNPDRvz13BZjVLAE
LeAFxPZ3B3yrDIjNRGl9LEySMJs7M4jrqzXQZuWS3+O9IZV19ajGczWmFCyQOyu4
F7bj9tfy1yhUjMYOiUIxXsWvxZSVIo8wK1payCJzvKTobnUUeDfDucnD/lpVRMF8
HyJsaZrXwFIClBmK8nCh3LiB5Dh9nxl8xjtmrCiPVzGZvj5qnzMkZWF+C4wxblnZ
XTVmHFrpdcI3nK4BzLVrxF+3A08gPkIHta9boqrMhfX4gPWkKmD1vH/+u2OD2BIY
I2MASg==
=tk1U
-----END PGP SIGNATURE-----
Merge tag 'v0.23.9'
release v0.23.9
2022-08-18 18:23:12 +02:00
Max Kellermann
40bc60d6ae
Main: load Android mpd.conf from ExternalFilesDir
...
See also https://github.com/MusicPlayerDaemon/MPD/issues/1061
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1570
2022-08-18 18:17:43 +02:00
Max Kellermann
7778210269
Main: move code to TryReadConfigFile()
2022-08-18 18:12:21 +02:00
Max Kellermann
6229210d51
Main: move code to LoadConfigFile()
2022-08-18 18:11:49 +02:00
Max Kellermann
5d0d5b5d97
Android/Context: allow type=nullptr in GetExternalFilesDir()
2022-08-18 18:11:49 +02:00
Max Kellermann
1aa3c1e543
java/String: add static method Optional()
2022-08-18 18:10:16 +02:00