Max Kellermann
605af61a0f
db/simple: eliminate UpdateFileInArchive() if archive API is disabled
...
Reduce some unnecessary overhead.
2015-03-01 00:25:30 +01:00
Max Kellermann
77e163e5b8
Mapper: use Path::IsAbsolute()
2015-02-28 23:50:18 +01:00
Max Kellermann
0e00b9009d
fs/Path: pass Path to Relative()
2015-02-28 23:45:16 +01:00
Max Kellermann
a6dd998d31
fs/AllocatedPath: use PathTraitsFS::Relative()
...
Eliminate duplicate code.
2015-02-28 23:30:53 +01:00
Max Kellermann
cdd0ccc67a
fs/Path: rename RelativeFS() to Relative()
2015-02-28 23:19:34 +01:00
Max Kellermann
a918821868
fs/Traits: add missing dereference in RelativePathImpl()
2015-02-28 23:19:34 +01:00
Max Kellermann
c637b96f10
Win32Main: use TCHAR where appropriate
2015-02-28 23:15:46 +01:00
Max Kellermann
44b9197354
Mapper: use class Path
2015-02-28 23:00:27 +01:00
Max Kellermann
7a8f96b1dd
FileCommands: use PathTraitsFS typedefs
2015-02-28 23:00:26 +01:00
Max Kellermann
f4f21f462d
fs/CheckFile: convert path to UTF-8 for error message
2015-02-28 23:00:26 +01:00
Max Kellermann
d09b8b5bd7
fs/FileInfo: use GetFileAttributesEx() on WIN32
2015-02-28 23:00:26 +01:00
Max Kellermann
ee327db517
fs/FileSystem: remove unused WIN32 port of StatFile()
2015-02-28 23:00:26 +01:00
Max Kellermann
90a61b6bab
fs/FileInfo: new library providing GetFileInfo()
...
Replaces StatFile(), with a portable data object.
2015-02-28 23:00:26 +01:00
Max Kellermann
00583bc4a8
FileCommands: skip special files completely
...
Previously, MPD printed the time stamp without printing the file
name. That made no sense.
2015-02-28 23:00:26 +01:00
Max Kellermann
2d06a8e880
storage/FileInfo: rename to StorageFileInfo
2015-02-28 23:00:26 +01:00
Max Kellermann
e1a434edbc
fs/Path: make IsAbsolute() const
2015-02-28 23:00:26 +01:00
Max Kellermann
6b3b1cbd99
fs/FileSystem: use GetFileAttributes() on WIN32 if possible
2015-02-27 19:15:31 +01:00
Max Kellermann
4dd861ee23
fs/FileSystem: merge CheckAccess() into PathExists()
...
PathExists() should better do what CheckAccess() does, and
CheckAccess() doesn't do what its name implies.
2015-02-27 19:13:46 +01:00
Max Kellermann
4f0f81a047
fs/DirectoryReader: use FindFirstFile(), FindNextFile() on WIN32
2015-02-26 18:11:02 +01:00
Max Kellermann
e3908c8de6
fs/Traits: add constant CURRENT_DIRECTORY
2015-02-25 19:53:35 +01:00
Max Kellermann
81c49fba03
fs/AllocatedPath: add nullptr_t constructor
2015-02-25 19:53:35 +01:00
Max Kellermann
eb174d5ba3
fs/{Allocated,}Path,Charset: use PathTraitsFS typedefs
2015-02-25 19:17:45 +01:00
Max Kellermann
4c899e9c5a
fs/FileSystem: remove unused FOpenModes
2015-02-25 19:17:45 +01:00
Max Kellermann
00b0f6ad51
fs/io/File{Reader,OutputStream}: convert path to UTF-8 for error message
2015-02-25 19:10:51 +01:00
Max Kellermann
fe1e467a49
db/ExcludeList: use the TextFile class instead of stdio.h
2015-02-25 16:25:26 +01:00
Max Kellermann
73cb538d72
configure.ac: enable STRICT mode on Windows
2015-02-25 16:01:30 +01:00
Max Kellermann
64b9e7fd48
util/DynamicFifoBuffer: adjust include guard
2015-02-16 00:53:59 +01:00
Max Kellermann
12de22d3bb
net/StaticSocketAdress: new class wrapping struct sockaddr_storage
2015-02-13 21:16:43 +01:00
Max Kellermann
821bc6d777
system/ByteOrder: use GCC built-ins if available
2015-02-12 11:05:02 +01:00
Max Kellermann
6e66a5b77b
net/Resolver: relax size check in LocalAddressToString()
...
Handles abstract sockets on Linux.
2015-02-10 22:47:26 +01:00
Max Kellermann
cf5c10bbe6
net/Resolver: move code to LocalAddressToString()
2015-02-10 22:46:04 +01:00
Max Kellermann
4e30e74739
net/SocketAddress: light wrapper for struct sockaddr
2015-02-10 22:06:06 +01:00
Max Kellermann
42890b9acf
system/{Resolver,Socket{Error,Util}}: move to new library libnet.a
2015-02-10 22:06:06 +01:00
Max Kellermann
33a27379f9
Listen: add "override"
2015-02-10 22:05:57 +01:00
Max Kellermann
0cf57cc7ca
event/ServerSocket: remove obsolete macro DEFAULT_PORT
2015-02-10 20:27:45 +01:00
Max Kellermann
68fcbaf4c8
event/ServerSocket: remove obsolete typedef
2015-02-10 20:24:23 +01:00
Max Kellermann
9c83d3c78c
fs/io/FileOutputStream: use CREATE_ALWAYS instead of TRUNCATE_EXISTING
...
Fixes yet another breakage of creating the database+state file on
Windows.
2015-02-10 13:41:09 +01:00
Max Kellermann
676dfabc91
command/{Queue,File}Commands: drop "file:///" prefix for absolute paths
...
Requiring this prefix makes the client's intention very clear, but it
was too hard to understand why this prefix was needed. Initially, my
intention was to differentiate from broken clients which prefix relate
URIs with a slash; once MPD allowed that. In the past few years
however, MPD has disallowed that, and there was no significant
breakage (except for the "add /" special case which some clients
apparently still do). So I figure it's about time to define that an
URI that begins with a slash points to an arbitrary file on the file
system.
2015-02-09 07:55:06 +01:00
Max Kellermann
60e6d1d61b
fs/Charset: convert #ifdef to regular "if"
2015-02-09 07:44:21 +01:00
Max Kellermann
975e275030
fs/Charset: change FixSeparators() API to use std::string&&
2015-02-08 17:52:01 +00:00
Max Kellermann
afcd5670e3
Listen: remove C-style "void"
2015-02-07 12:15:10 +00:00
Max Kellermann
b17b53955c
configure.ac: raise protocol version to 0.20.0
...
A few protocol feature have been added to the 0.20 branch, and thus we
should raise the protocol version in the server greeting.
2015-02-06 17:16:57 +01:00
Max Kellermann
ff2b427cc1
release v0.19.9
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJU1OdDAAoJECNuiljG20USazsQAKZuhjJJ8vjYCB7G/NGoi9tv
dImBQnQDiQTdE57kxa46loknbPc5/cSAYnLbR4PjQfMBqArtE6sAkAk72LKlYNqt
qMOEKPCBjv8ZjiGDbvL/X+WSKbrpm8iOf3Gu5BRIuWrMK/oXQMe5A028Ziyye//X
XfMKdPWkZFL6h/qGO082eCnCiTJaSRLwP6HSNF2pqv+JuFF7hyLkZvTVXo/ms85E
ezrx3Kjf8TuNX041uuso7qqUsD/sY2jZRZ26qfzJ1ODwJmgIfbXzat+ODFVNne55
E1nh5zpwIUxZ2+d6eJEzwLR3+FpmltPc1YLo2mnetD6f59SzpXjAycPLo1VoOhbQ
s4iXQEzNI2LwDebI3eiMXQaLIorHOGex3L6JYkO5LAqUkPrv/PBCJFJs8ixjCRbl
KL27WmWYiV0xfdCz4TtAxEt48LGMMjDfaSK4Hzo3vN3vZtIEy2p/pS9MhXDdxC8I
vql533N+A9fi2I+7bPauwX5ElOYvGTkDeKqKXDox/jR0zio55APst7IW9OIUCKxo
an98430jeNPhs1CNqxVIJNciC8Q4REmafki7UQiKYDBQjHyq3r6Bp547lnDhUtii
P9PNTyOoJXhV5yEP3upnWCxwH6Vy7IxBnwrEO7aEHs88Ea54iqlZ9XB8TzUw4G/1
I7T7a8yOopRopb04vhr2
=fd8f
-----END PGP SIGNATURE-----
Merge tag 'v0.19.9'
2015-02-06 17:15:31 +01:00
Max Kellermann
5761800197
release v0.19.9
2015-02-06 17:08:25 +01:00
Max Kellermann
0eebacc521
release v0.18.23
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJU1OZDAAoJECNuiljG20USZeYQAJQ6S63jPBlfcUs+08d3Qe22
tlVYcBrH4zJiMqcgzzcCjslDTTWJNri5nO5Ryisklav2luvN+arvQIK/1XcIgjEH
vNLfqPv7LGg1cfIXYDn5yd7j+WQxytZ+fAXL9lGY+fQptRsybPAPP3WCvdXguoir
HWIHID3C2ndP58DmxYaRi+ewnpDdJgl051tqGVVTFkFBVpUVz+oaPlxJVO7Nj1tF
qSWXASWSJGvxJyaGs6aOxNuD0qpoFubnb+esfukTdjOFCcHl6X1CNn7GcoOGRvES
areN9/HlxZSogtv9eoSiwERwraNKKHpPR/8BaBDAT0phUH6ZqS1O69ZIZYQrKyPw
uls4XdEZBItIUn2Vl/zGyyUGMSNoVwbt0CpDPjJqtzPMBG5tQC2dEGyBAT2+uwAM
SAneXyYjW+kop4L8QfBav0eWvmXOEOqxCcRYDygvjil/lD/Pg2LhhznHieMhYTQv
7VmptpHrj41Ea0Mda83lIcBobUGwOxzV63WvHL5gXnPMcNG7yrLZno4ITQUXALxy
66ApaW52SmO1SFhP4NNNqxqlzoesSkVtwMfVY+CwRzX4LINTq8wLTdvTSrN9Xy38
XzwxgihtPT5fT73jQGnUyNjCRt7FlkCIO4KJ5UZNg03IwlVvXtD16GHsRmU7DOHP
lnt8vrRVShy32UCa0IxM
=wfFE
-----END PGP SIGNATURE-----
Merge tag 'v0.18.23' into v0.19.x
2015-02-06 17:07:47 +01:00
Max Kellermann
4a5528697d
release v0.18.23
2015-02-06 17:04:14 +01:00
Max Kellermann
d38034bb5c
fs/io/FileOutputStream: don't auto-delete file on WIN32
...
The file handle is never reset to INVALID_HANDLE_VALUE, and thus the
destructor will assume the operation shall be cancelled and will
delete the temporary file.
This was a major breakage for saving the database file and the state
file.
2015-02-06 14:36:55 +01:00
Max Kellermann
a62fe30546
SongPrint: let CPP concatenate string literals
2015-02-06 13:06:38 +01:00
Max Kellermann
b3fe3e8b3d
TagBuilder: allow adding duplicate tag types in Complement()
...
Build a table of pre-existing tag types before adding new items. The
old way would check HasType() each time, which would return true after
the first instance of that tag type had been added, preventing
duplicate tag types to be merged.
This broke duplicate tag types loaded from the state file, because
this code path uses TagBuilder::Complement().
2015-02-06 12:25:34 +01:00
Max Kellermann
25ebb427da
tag/Rva2: convert pointers to references
2015-02-04 15:57:32 +01:00