Max Kellermann
97f670658f
util/StringFormat: new utility library
2018-01-24 13:28:28 +01:00
Max Kellermann
bbc5212436
fs/AllocatedPath: make the nullptr_t constructor public
2018-01-17 12:17:41 +01:00
Max Kellermann
c4f7740b80
fs/Path: replace method Null() with nullptr_t constructor
2018-01-17 12:16:21 +01:00
Max Kellermann
5a728a069e
fs/AllocatedPath: drop obsolete GCC check
2017-12-27 08:50:55 +01:00
Max Kellermann
914df18bf9
Main, ...: catch any exception, not just std::runtime_error
2017-12-19 10:56:23 +01:00
Max Kellermann
6246d36fe6
Merge branch 'v0.20.x'
2017-12-16 20:56:06 +01:00
Max Kellermann
dfaf08743c
*: check defined(_WIN32) instead of defined(WIN32)
...
Only _WIN32 is defined by the compiler, and WIN32 is not standardized
and may be missing.
Closes #169
2017-12-12 10:22:20 +01:00
Max Kellermann
49784513b1
util/{Const,Writable}Buffer, ...: rename IsEmpty() to empty(), imitating STL
2017-11-10 19:24:33 +01:00
Max Kellermann
c00b6ff999
fs/FileSystem: use UniqueFileDescriptor in TruncateFile()
2017-08-10 19:40:47 +02:00
Max Kellermann
df5cc3f0f6
fs/FileSystem: OpenFile() returns UniqueFileDescriptor
2017-08-10 19:34:52 +02:00
Max Kellermann
501a4af914
util/StringUtil: move strip functions to StringStrip.cxx
2017-07-05 17:20:02 +02:00
Max Kellermann
979f1b6c39
release v0.20.9
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlkz5jkQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEubuD/kBXMcV4XawqGNNtSHdrY8CxSL8wJMCMJQl
aMgRkKLPRml8Hj9FNNG9pjXBuT+qUgPX7t9gBEiT7c+sV3fHH40gUf1js5GIsEPm
BAVfvww5EhmQWWVhPTLk1iZ4jp6E96mDmIG1znwo7etSZHXU8RJfR7woBi3SPJ9f
OPcrimskNuWpAWeaEIKi/1Iwzy8d9VK9Ttb73gA3M5zSm7ioXzt3YClpwLRM8JU6
QeUJchy6VwXnygswjUNmbhPc3GsD2FyUZ4OtJ0hodnqqajfldBxhcHUnQk4zZULr
1nLSyOuA9bwLuFohH1T6HiY9z8PFzgqdIHvsjOJgZ4gQa69PVNjal2tUEUav9zFv
aK4LvTVPnIk+hqRbtLpV7/rPKuClrC9BO4oYdBGBDNY4hqVpvRA9obP1s00aOi+K
UhYqLqg7yeIEeTlUxFOhXJCKAEL69BuXT5ihJtDlB/dCUzv37sEch/4WDgs7uc+O
9kJYlElvozw57mbczsee/PCSnSWrLCq/qG/bNEUUQOTueWNuifh3PL62UXGgfbEH
01hJDyLr6ETSmWn7rjTfLJiHThX/EQQvOhs+35fbCyry65z4tFwrilGDmFVUWGPq
/6QEpY1D6q4fkoma/iWOZoTkfKewatAPGMGWoJaGhCnfQFz4VTFtS2bDtuUctQ16
jnXnPFxqBw==
=0SSp
-----END PGP SIGNATURE-----
Merge tag 'v0.20.9'
release v0.20.9
2017-06-04 12:57:05 +02:00
Max Kellermann
a057b4f6d8
*: add lost of "noexcept" specifications
2017-06-04 12:46:48 +02:00
Max Kellermann
4faef28cc5
release v0.20.7
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlkaFL0QHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEr4ID/9iAQC+7fFv06uLOm48Ufu+PgoD8uJkAwF5
QuLQkc85g9urn+bu9N7Qs7Vypp7aLyGcJKY0jyA8wxkOj24pUC3GYk80daUt561V
5s20FnoS/Uoman3CSJL94IfCUBxejizE6vgIIHTc5bb6U0qIsPub/8JTTE2Ih7uP
nvFZ5uBQ+YTc7at+iIH9123eUMKkitkh8osNblovqQT9v42++Tm4ztAytRHBjwUA
Itew5HhlvahbLKqFs/7vmICh/YX1FcOV7cV+erEWYfkH0KCI2bhSle4u2d0CBOvD
VJlDnBCo9bM7WKcPYqJiFFFXA0CRk06wbkkkAtwF4zjp8xos7aQcq4FyQnYL8KXo
5lijIhRwBURBd+nt8oA9kuEhBt/T75otcemJkzVaYappHTJCLjhxSGcPt8mw+nE9
9WQzsp/MIVzg9l5g3D9S/43xM7uhvn98Tn1Qf2s8YRd2o8CZeOhW+X3RvbCvVPv2
mOlx4sFAv8DOJ3KxMdqiJT+PmylPyJluQdqH+tMc8BdPg/kpSpYIPTuSjjRqK1yh
ld5do0HtAAwiHtvXfk5YVFjJSpO0c8yVn6xci2Cl4k/5ZHj2UE1ln+N5vCea2BRF
2J3HAjROwtcwY3lU1jFnEAogf24KWiFJqhhC0EqBGUdlrM8Dn37P5cEWWjROIMNK
lPEdovokNw==
=CdDy
-----END PGP SIGNATURE-----
Merge tag 'v0.20.7'
release v0.20.7
2017-05-15 23:01:49 +02:00
Max Kellermann
788e3b31e1
*: remove "pure" and "const" attributes from throwing functions
...
The "pure" and "const" attributes are not so well-defined, and a
recent clang version implements an optimization which pushes the
definition's boundary beyond what I believed it was. clang now
assumes that functions declared "pure" cannot throw exceptions, even
if they lack the "noexcept" specification.
When compiled with this new clang version, MPD will crash randomly if
an exception happens to get thrown by such as "pure" function
(https://github.com/MusicPlayerDaemon/MPD/issues/41 ).
This commit removes all such misplaced "pure" and "const" attributes,
closing #41 .
2017-05-08 17:25:06 +02:00
Max Kellermann
71f0ed8b74
*: add "noexcept" to many, many function prototypes
...
This eliminates some overhead, because the compiler doesn't need to
consider these functions throwing.
2017-05-08 14:44:49 +02:00
Max Kellermann
cd522f524d
fs/Traits: allow base to end with a slash in Relative()
...
Fixes false negatives:
http://foo/dav/example.ogg mismatches http://foo/dav/
.. because StringAfterPrefix() returns just "example.ogg", without
trailing slash (it existed, but was eaten already by the base
matcher).
2017-02-24 13:50:29 +01:00
Max Kellermann
329c3ab21b
fs/FileInfo: use std::chrono::system_clock
2017-02-10 23:48:21 +01:00
Max Kellermann
8aae9766e5
fs/io/*: make constructors "explicit"
2017-01-04 10:41:04 +01:00
Max Kellermann
288b98ccbf
fs/io/GunzipReader: use C++11 initializer
2017-01-04 10:37:34 +01:00
Max Kellermann
bde50b1be8
fs/io/{GunzipReader,GzipOutputStream: remove deprepcated dynamic exception specifications
2017-01-04 10:33:24 +01:00
Max Kellermann
5900253b85
update copyright year
2017-01-03 20:48:59 +01:00
Max Kellermann
6caf53d1c2
fs/FileSystem: RenameFile() throws exception on error
2016-12-04 19:59:33 +01:00
Max Kellermann
dee6e498d9
fs/CheckFile: use IsAccessDenied()
2016-12-04 19:56:25 +01:00
Max Kellermann
22dcca9832
util/Error: remove obsolete class
2016-11-10 12:58:26 +01:00
Max Kellermann
f4bb18b05e
fs/AllocatedPath: remove the obsolete class Error overload
2016-11-10 12:55:08 +01:00
Max Kellermann
07a51957ee
fs/FileInfo: remove the obsolete class Error overloads
2016-11-10 12:55:08 +01:00
Max Kellermann
37c4470f10
fs/CheckFile: use FileInfo(Path) instead of GetFileInfo()
2016-11-10 12:55:08 +01:00
Max Kellermann
403f0f8c64
SongLoader, ...: include cleanup
2016-11-07 09:01:57 +01:00
Max Kellermann
2f2b394d72
fs/StandardDirectory: no /etc/passwd lookups on Android
...
This doesn't make sense on Android; there is no home directory for
users.
2016-10-26 17:00:17 +02:00
Max Kellermann
ba181ae9df
fs/io/FileOutputStream: work around -Wunused
2016-10-26 17:00:17 +02:00
Max Kellermann
d84f96a571
fs/io/FileOutputStream: add mode CREATE_VISIBLE
2016-09-04 13:16:37 +02:00
Max Kellermann
f600e226da
fs/io/FileOutputStream: add mode APPEND_OR_CREATE
2016-09-04 13:16:33 +02:00
Max Kellermann
d775f13a03
fs/io/FileOutputStream: merge all classes into one, add enum Mode
...
Prepare to add more modes.
2016-09-04 12:57:41 +02:00
Max Kellermann
b630afdeda
fs/io/BufferedOutputStream: add wchar_t overloads
2016-09-04 12:57:41 +02:00
Max Kellermann
c39c259078
fs/io/BufferedOutputStream: add Write(char)
2016-09-04 12:57:41 +02:00
Max Kellermann
889be6e29d
fs/io/FileReader: add methods GetSize(), GetPosition()
2016-08-27 12:20:59 +02:00
Max Kellermann
d15f64ae5d
fs/io/BufferedReader: add method Reset()
2016-08-27 12:09:57 +02:00
Max Kellermann
a07117ea55
fs/io/FileReader: add method Rewind()
2016-08-27 12:09:17 +02:00
Max Kellermann
8748b2dc3f
fs/io/BufferedReader: add ReadFull(size_t)
2016-08-16 12:09:04 +02:00
Max Kellermann
5f66af3712
fs/io/BufferedReader: add missing Consume() call
2016-08-16 11:47:31 +02:00
Max Kellermann
31ae50b137
fs/io/BufferedReader: add method ReadFull()
2016-08-16 08:46:44 +02:00
Max Kellermann
07e58ae64f
fs/io/FileReader: add missing include
2016-08-16 07:58:44 +02:00
Max Kellermann
a88d18148c
fs/io/FileOutputStream: change #if to #ifdef
2016-08-16 07:49:30 +02:00
Max Kellermann
1cf43a9dc9
fs/io/FileOutputStream: add missing include
2016-08-16 07:49:01 +02:00
Max Kellermann
196ce8426b
fs/io/FileOutputStream: decouple from the FileSystem library
2016-08-15 22:42:44 +02:00
Max Kellermann
6a95c34a81
fs/io/FileOutputStream: use C++11 initializers
2016-08-15 22:34:53 +02:00
Max Kellermann
ea0e6d9824
fs/FileSystem: RemoveFile() throws exception on error
2016-08-15 22:25:15 +02:00
Max Kellermann
14d3da0e18
fs/FileSystem: remove unused FOpenModes
2016-08-15 22:21:34 +02:00
Max Kellermann
2bca3cd247
fs/FileSystem: add TruncateFile()
2016-08-15 22:13:38 +02:00
Max Kellermann
fc3e0dfcd1
fs/AllocatedPath: add method FromUTF8Throw()
2016-04-21 14:27:32 +02:00
Max Kellermann
6513ff92a7
fs/Charset: throw exception on error
2016-04-21 14:23:55 +02:00
Max Kellermann
7530770842
fs/AllocatedPath: add FromFS() with pointer range
2016-04-21 14:21:24 +02:00
Max Kellermann
11ea72e240
fs/AllocatedPath: make constructor "explicit"
2016-04-21 14:20:56 +02:00
Max Kellermann
bec6fa4ad7
lib/icu/Converter: throw exception on error
2016-04-21 14:03:27 +02:00
Max Kellermann
b9f535cd49
lib/icu/Win32: throw exception on error
2016-04-21 10:15:40 +02:00
Max Kellermann
01b68db30e
lib/icu/Converter: Create() throws exception on error
2016-04-13 10:04:19 +02:00
Max Kellermann
9b85446808
util/StringPointer: rename typedef pointer to pointer_type
2016-04-12 22:53:06 +02:00
Max Kellermann
1aee89f5ea
*: include cleanup (using iwyu)
2016-03-01 22:08:13 +01:00
Max Kellermann
1d67aa7bf2
update copyright year to 2016
2016-02-26 17:54:05 +01:00
Max Kellermann
98bd4dfe04
fs/io/FileReader: add method Skip()
2016-02-19 18:18:25 +01:00
Max Kellermann
f3503e0026
fs/DirectoryReader: use C++ exceptions instead of class Error
2015-12-29 12:56:26 +01:00
Max Kellermann
826a654c95
fs/DirectoryReader: use C++11 initializer
2015-12-29 12:56:26 +01:00
Max Kellermann
e6e7d6dbd6
fs/io/Reader: use C++ exceptions instead of class Error
2015-12-18 01:08:16 +01:00
Max Kellermann
e4a06da14e
fs/io/OutputStream: use C++ exceptions in Write()
2015-12-16 10:24:43 +01:00
Max Kellermann
36d6ead65c
fs/io/GzipOutputStream: use C++ exceptions in constructor
2015-12-16 10:14:56 +01:00
Max Kellermann
7eae3bc8c5
fs/io/FileOutputStream: use C++ exceptions in Commit()
2015-12-16 00:33:33 +01:00
Max Kellermann
24b2198668
fs/io/FileOutputStream: use C++ exceptions in constructor
2015-12-16 00:33:30 +01:00
Max Kellermann
733989a284
util/StringUtil: move comparison functions to StringCompare.cxx
2015-11-06 09:20:18 +01:00
Max Kellermann
38e86af75c
fs/Traits: use StringAfterPrefix() in Relative()
2015-10-19 10:56:13 +02:00
Max Kellermann
3fa4dad418
lib/icu/Converter: remove GLib implementation
...
We don't need this anymore: Win32 doesn't use this library at all, and
everything else has either iconv() or libicu.
2015-06-26 16:51:18 +02:00
Max Kellermann
0756607e32
lib/icu/Converter: add iconv() implementation
2015-06-26 16:49:25 +02:00
Max Kellermann
58996b841a
config/Global: allow calling config_get_string() with one argument
...
default_value defaults to nullptr.
2015-06-26 08:06:40 +02:00
Max Kellermann
2a086d20c6
fs/Glob: remove GLib implementation
...
I suppose there is no non-WIN32 operating system that doesn't have
fnmatch(). So let's remove the GLib implementation.
2015-06-26 07:56:34 +02:00
Max Kellermann
8d11577ff2
lib/icu/{Converter,Collate}: return AllocatedString
2015-06-25 23:44:16 +02:00
Max Kellermann
d551d40886
fs/NarrowPath: use the WideCharToMultiByte() wrapper
2015-06-23 13:20:11 +02:00
Max Kellermann
aecfcaa8a2
lib/icu/Win32: wrappers for WideCharToMultiByte(), MultiByteToWideChar()
2015-06-23 13:20:11 +02:00
Max Kellermann
d814a01f2a
fs/Path: include cleanup
2015-06-23 12:35:13 +02:00
Max Kellermann
4c0916df79
fs/Path: use base class StringPointer
2015-06-23 12:34:45 +02:00
Max Kellermann
60aa8c527b
fs/Path: use method c_str() internally
2015-06-23 12:34:43 +02:00
Max Kellermann
9f7c3b8ea6
fs/Config: remove charset auto-detection via GLib
...
The default is always UTF-8.
2015-06-22 22:35:54 +02:00
Max Kellermann
73bd6af0f9
fs/Charset: hard-code Windows to ACP
...
Don't define HAVE_FS_CHARSET, and make GetFSCharset() return "ACP"
instead of "UTF-8". Ignore the configuration setting, which had no
effect anyway.
2015-06-22 22:20:10 +02:00
Max Kellermann
2aa54c5365
fs/Glob: use PathMatchSpec() on Windows
2015-06-22 22:12:08 +02:00
Max Kellermann
bc8542503d
fs/Glob: use fnmatch() if available
2015-06-22 22:12:08 +02:00
Max Kellermann
a6aea4ba58
fs/Glob: make constructor "explicit"
2015-06-22 22:12:08 +02:00
Max Kellermann
50eac9b49e
db/update/ExcludeList: move class Pattern to fs/Glob.hxx
2015-06-22 22:12:08 +02:00
Max Kellermann
cfd26f53f0
fs/io/FileOutputStream: fix wrong #ifdef WIN32
2015-03-25 17:28:27 +01:00
Max Kellermann
7f3518333d
Mapper: don't use C-style prototypes
2015-03-24 22:03:17 +01:00
Max Kellermann
f1f871f103
fs/io/FileOutputStream: add method Tell()
2015-03-24 22:00:10 +01:00
Max Kellermann
6387b52896
fs/io/FileOutputStream: seek end-of-file in AppendFileOutputStream ctor
2015-03-24 21:59:34 +01:00
Max Kellermann
7f6e1fbc8d
fs/io/FileOutputStream: add class AppendFileOutputStream
2015-03-23 22:51:33 +01:00
Max Kellermann
06827cfcf1
fs/io/FileOutputStream: move code to new class BaseFileOutputStream
2015-03-23 22:36:03 +01:00
Max Kellermann
6dc3097998
fs/io/FileOutputStream: make "path" const
2015-03-23 22:35:56 +01:00
Max Kellermann
cd35271698
fs/io/BufferedOutputStream: add code comments
2015-03-23 22:03:25 +01:00
Max Kellermann
b31d171ae8
*: doxygen fixups
2015-03-17 11:21:43 +01:00
Max Kellermann
65ff72cdf8
fs/Traits: enable _UNICODE on Windows
...
Use wchar_t for everything on Windows. Solves a lot of filesystem
charset problems.
2015-03-05 10:15:10 +01:00
Max Kellermann
983078992d
fs/NarrowPath: new utility class
2015-03-05 10:07:07 +01:00
Max Kellermann
2f41eba100
fs/Path: reimplement GetSuffix() using GetBase() and StringFindLast()
2015-03-05 10:07:07 +01:00
Max Kellermann
830a1bd130
fs/File{System,Info}: fix regular file check
...
Don't use FILE_ATTRIBUTE_NORMAL, it's a "magic" value for something
else. To check if a file is a regular file, we need to check if it's
NOT a directory (or a device).
2015-03-05 10:07:07 +01:00
Max Kellermann
5c5ea8a254
fs/Path: use the "const_pointer" typedef
2015-03-05 10:07:07 +01:00
Max Kellermann
6887d5d347
fs/Traits: use TCHAR on Windows
2015-03-05 08:58:04 +01:00
Max Kellermann
39c9669445
fs/Traits: add macro PATH_LITERAL()
2015-03-05 08:58:04 +01:00
Max Kellermann
44565e22a0
fs/Traits: use string.h API wrappers
2015-03-05 08:58:04 +01:00
Max Kellermann
cd08e5c7da
fs/io/FileOutputStream: use class FileDescriptor
2015-03-03 23:04:25 +01:00
Max Kellermann
57ad3aca8e
input/file: use class FileReader
2015-03-03 21:48:45 +01:00
Max Kellermann
a5760670ef
fs/io/FileReader: add method GetFileInfo()
2015-03-03 21:41:11 +01:00
Max Kellermann
f04a3ec201
fs/io/FileReader: add move constructor
2015-03-03 21:41:10 +01:00
Max Kellermann
40a587bbaf
system/FileDescriptor: new wrapper class for a file descriptor
2015-03-03 17:14:30 +01:00
Max Kellermann
dd5daa0767
fs/io/FileReader: add method Seek()
2015-03-03 14:29:36 +01:00
Max Kellermann
b0983e8708
fs/Traits: add Find()
2015-03-03 12:44:07 +01:00
Max Kellermann
dfcfeeb550
fs/Traits: use std::char_traits
2015-03-03 12:28:47 +01:00
Max Kellermann
87a8a3e22f
PlaylistFile: move memchr() call to class Path
2015-03-02 21:48:37 +01:00
Max Kellermann
7ce96585f5
fs/Path: add method GetSuffix()
...
Type-safe wrapper for uri_get_suffix().
2015-03-01 01:09:53 +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
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
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
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
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
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
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
6cdb2a4896
fs/io/BufferedReader: count line numbers
...
Replaces the dirty code in config/ConfigFile.cxx.
2015-01-21 23:43:32 +01:00
Max Kellermann
1c3f5517fa
config/Option: convert to strictly-typed enum
2015-01-21 23:30:00 +01:00
Max Kellermann
eaf0662b75
fs/io/FileOutputStream: add static method Create()
2015-01-14 19:44:28 +01:00
Max Kellermann
b043b2a761
fs/AllocatedPath: add operator==
2015-01-13 10:42:29 +01:00
Max Kellermann
8b217d5313
fs/io/FileOutputStream: use O_TMPFILE if available
...
The Linux feature allows writing new files to an invisible file, and
then replace the old file. This preserves the old file if we get
interrupted by some event.
2015-01-06 19:38:55 +01:00
Max Kellermann
81df45a893
fs/io/File{Reader,OutputStream}: use OpenFile()
2015-01-05 23:13:35 +01:00
Max Kellermann
712ed555e6
Copyright year 2015
2015-01-01 19:48:13 +01:00
Max Kellermann
412bedb697
Merge branch 'v0.19.x'
2014-12-26 14:40:32 +01:00
Max Kellermann
95f84afd33
fs/Traits, ...: work around -Wtautological-pointer-compare
...
New in clang 3.6.
2014-12-26 14:34:03 +01:00
Max Kellermann
940cab8620
Merge branch 'v0.18.x' into v0.19.x
2014-12-26 14:28:52 +01:00
Max Kellermann
53f4044890
util/{ASCII,UriUtil}, ...: work around -Wtautological-pointer-compare
...
New in clang 3.6.
2014-12-26 13:43:32 +01:00
Max Kellermann
b227fddec7
fs/Path: add methods GetBase() and GetDirectoryName()
2014-12-02 06:45:57 +01:00
Max Kellermann
bc00c38f9d
lib/icu/Converter: add ICU-based backend
2014-12-01 21:56:48 +01:00
Max Kellermann
6eb1caa417
fs/Config: add HAVE_GLIB check
2014-11-30 20:35:26 +01:00
Max Kellermann
41efc1376e
fs/Config: swap #if/#else
2014-11-30 20:34:32 +01:00
Max Kellermann
87c88fcb27
fs/Charset: move code to wrapper class IcuConverter
...
Prepare for a ICU-based backend without GLib.
2014-11-30 00:31:13 +01:00
Max Kellermann
4f80a129f1
fs/Charset: return std::string from PathFromUTF8()
...
Don't expose pointer that requires the caller to invoke g_free(),
because that's GLib-only.
2014-11-30 00:28:27 +01:00
Max Kellermann
6987f2ba82
fs/Charset: use macro HAVE_FS_CHARSET internally
2014-11-30 00:27:58 +01:00
Max Kellermann
563db580ae
fs/Charset: add DeinitFSCharset()
2014-11-29 23:47:48 +01:00
Max Kellermann
125daea16a
fs/Charset: add macro HAVE_FS_CHARSET
2014-11-29 23:36:44 +01:00
Max Kellermann
fd2c6b8a4b
fs/Charset: return Error on SetFSCharset() failure
...
Don't abort the process, let the caller decide instead.
2014-11-29 23:36:44 +01:00
Max Kellermann
5b1db917bc
fs/Config: remove bogus WIN32 check
2014-11-29 23:36:44 +01:00
Max Kellermann
16a99ad515
Compiler.h: exclude clang from GCC_CHECK_VERSION()
2014-11-28 19:33:09 +01:00
Max Kellermann
b3f5b4932c
configure.ac: add macro MPD_ENABLE_AUTO_PKG
...
Simplify the definition of many build options.
2014-11-21 22:19:57 +01:00
Max Kellermann
dc03f003ac
release v0.18.18
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUa62OAAoJECNuiljG20US1CkP/3YaAg76hJDaeFAyi7/10lOs
yI8tPmpQk8S+nuclsBJeIr+9xNRsjb1ebW4tI9uBRxqMT10SF7rMCH/qAmgnS9tQ
6M48hF0o9xegjz4x5BosEJjXtiekYN068Xi/hk+H27guVy14f6Xx7oRpdr5oI/O0
F83D1V2+vs6FuOyn42UQQNHVlYMac5SScHoSFomnwRYWI2wb2ay4H5Dlykb5BUl0
tTjJ2lYwN18vUoMxjmCNS+bLd7jag6FZ/PXntB1zXe22R17eAIuFZAMKaQvnQtUi
QZjFPhpd+mBsZLfokB3belyNNb4F6qSG2W6lZrFRB+SU/LqnY2AL/dxPJD9eiufs
5jEIOw9hNBBKo217+hkPwp5pAF50u11tKXUXbKGeR42zAO0zll/+g2afVwoqdAfD
llPDyQyXiB3tmA1bgJD7u9gaud3UaaXoxajPb5LnmklzGxiN5u1rnoo+E5ppBvQ4
31wPHGpzsjxEC7Xn9hErPP17jYXY1HT/xRb8XZNrFqJVZxSyjqQlDWomhCWDcvPc
Du1PyKaQ08zgElEM5trwC9RjJxQdr0sckQcTnYC/0ksfJ7Nhh8M2yepEI/gmWbnO
JBQ7YzpQhE9oMMH8jzVLLdC44yF6QvXcGQ3D9eUfwvPk9Z70mHlNI3Q6kbZ76U5j
RHLp+oSaxFUXfPdciZaw
=GO+k
-----END PGP SIGNATURE-----
Merge tag 'v0.18.18' into v0.19.x
2014-11-18 21:38:44 +01:00
Florent Le Coz
7e7b403043
Construct a Null AllocatedPath if the filename conversion into UTF8 failed
2014-11-11 17:15:19 +01:00
Max Kellermann
c48733e34f
fs/Charset: work around clang's -Wunused-const-variable
...
MPD_PATH_MAX_UTF8 is only used by GLib-specific code currently.
2014-10-25 00:07:25 +02:00
Max Kellermann
f618065f7c
fs/Traits: use value_type
2014-10-10 19:51:44 +02:00
Max Kellermann
cf06ba6d13
fs/AllocatedPath: add method Steal()
2014-09-28 18:12:20 +02:00
Max Kellermann
a8d800572e
fs/AllocatedPath: API documentation grammar fixes
2014-09-28 18:06:18 +02:00
Max Kellermann
b373c53ce4
*: add missing Compiler.h includes
...
Necessary for "final" on gcc 4.6.
2014-08-30 00:46:52 +02:00
Max Kellermann
8283f23651
fs/io/TextFile: add method Check()
2014-08-11 22:53:48 +02:00
Max Kellermann
7cc25f91ff
fs/io/Reader: add "nonnull" attribute
2014-08-11 22:49:08 +02:00
Max Kellermann
486b5b6bfc
fs/io/TextFile: use AutoGunzipReader
...
Several MPD subsystems can now read gzipped files; for example, the
database file can be gzipped.
2014-08-11 21:48:25 +02:00
Max Kellermann
88a2f128ec
fs/io/AutoGunzipReader: new class
2014-08-11 21:48:25 +02:00
Max Kellermann
45c139cfb3
fs/io/PeekReader: new utility class
2014-08-11 21:48:25 +02:00
Max Kellermann
3a111e5d74
fs/io/GzipOutputStream,GunzipReader: move zlib_domain to src/lib/zlib/Domain.cxx
2014-08-11 21:48:25 +02:00
Max Kellermann
a67a881715
input/GunzipInputStream: new class
2014-08-08 20:11:29 +02:00
Max Kellermann
aa2e4d92e0
fs/io/BufferedReader: new class to replace class TextFile
...
The new class is pluggable, to prepare for gzipped database files.
For now, the TextFile class remains, and will be refactored away
later.
2014-08-07 19:38:25 +02:00
Max Kellermann
0ea66a1275
fs/io/Reader: new interface
2014-08-07 19:38:25 +02:00
Max Kellermann
aafff8fd5c
fs/output, fs/TextFile: move to fs/io/
2014-08-07 19:38:25 +02:00
Max Kellermann
bbea6564fc
fs/output/FileOutputStream: use open_cloexec()
...
Support operating systems that don't have O_CLOEXEC.
2014-08-07 18:16:11 +02:00
Max Kellermann
59d38f876a
util/StringUtil: add StripRight() overload with "end" argument
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
17b316b94b
fs/StandardDirectory: pass writable string to ParseConfigLine()
...
Eliminate the std::string overhead.
2014-08-07 16:07:52 +02:00
Max Kellermann
c9a71a7176
fs/GzipOutputStream: new class wrapping zlib
2014-08-06 16:35:10 +02:00
Max Kellermann
0d0ccacdf3
fs/OutputStream: new infrastructure for writing to files
2014-07-30 22:12:02 +02:00
Mantas Mikulėnas
cd289843f7
fs/StandardDirectory: look for cache dir in environment, not user-dirs
...
The XDG cache directory is part of the "base directories" spec like
$XDG_CONFIG_HOME, not "user directories".
2014-07-11 08:09:19 +02:00
Max Kellermann
36ca57a54e
fs/StandardDirectory: add GetUserCacheDir()
...
Move code from CreateConfiguredDatabase() and add XDG support. This
implements an automatic Linux fallback for the setting "db_file" if
none was specified.
2014-03-01 22:51:51 +01:00
Max Kellermann
5268f55344
java/File: add method ToAbsolutePath() returning AllocatedPath
2014-03-01 20:53:39 +01:00
Max Kellermann
58771fc41c
Android: obtain music directory from Environment.getExternalStoragePublicDirectory()
2014-03-01 18:48:20 +01:00
Max Kellermann
8fe004e98e
fs/Charset: use "UTF-8" instead of "utf-8" as the default value
...
The upper-case name seems to be the canonical one.
2014-02-23 22:03:40 +01:00
Max Kellermann
1709ab6810
fs/TextFile: use custom allocation instead of GString
2014-02-17 23:04:10 +01:00
Max Kellermann
ce925ba56f
fs/Charset: disable if GLib is disabled
2014-02-17 22:48:26 +01:00
Max Kellermann
ec8873b178
Mapper: move check_directory() to the filesystem library
2014-02-07 23:25:47 +01:00
Max Kellermann
d744c997d8
fs/Traits: add function Relative()
...
Move code from Path::RelativeFS() and make it generic.
2014-02-07 19:08:51 +01:00
Max Kellermann
c310941f69
fs/AllocatedPath: add conversion constructor from Path
2014-01-30 23:36:57 +01:00
Max Kellermann
c02f146791
fs/DirectoryReader: GetEntry() returns Path, not AllocatedPath
...
Reduce overhead, don't duplicate the string.
2014-01-30 22:20:57 +01:00
Max Kellermann
0bd01824f6
fs/AllocatedPath: add Build() overlays with Path arguments
2014-01-30 22:15:13 +01:00
Max Kellermann
197b503f3e
Config*: move to config/
2014-01-24 00:20:01 +01:00
Max Kellermann
4f83c60296
copyright year 2014
2014-01-13 22:31:55 +01:00
Denis Krjuchkov
5d85792178
fs: implemented standard directories API
2013-12-08 17:24:43 +06:00
Denis Krjuchkov
acba9c0f61
TextFile: move to fs subsystem
2013-12-08 04:15:27 +06:00
Denis Krjuchkov
38afc89407
fs/FileSystem.hxx: don't define CheckAccess() with mode on Windows
2013-12-05 15:05:01 +06:00
Denis Krjuchkov
06d7169674
fs/FileSystem.hxx: add CheckAccess without mode parameter
2013-12-05 15:05:01 +06:00