| Commit message (Collapse) | Author | Files | Lines |
|
|
|
Duplicate the music_dir variable: one encoded in UTF-8, and another
one using the configured filesystem character set. This fixes an
ancient MPD bug.
|
|
Shortcut for map_directory_fs(db_get_root()).
|
|
Yet another common support case.
|
|
This is a common support case, and hopefully, the new error message
will allow the user to understand the error without requiring support.
|
|
Use stat() instead of g_file_test() to detect other types of errors,
such as "permission denied".
|
|
|
|
|
|
If a song with an absolute path points inside the music directory,
print only the relative part. This happens when partial songs from a
playlist file were loaded.
|
|
|
|
This fixes an inconsistency in the stored playlist subsystem: when
obtaining the list of playlists (listplaylist, listplaylistinfo), the
file names in the playlist directory are converted to UTF-8 (according
to filesystem_charset), but when saving or loading playlists, the
filesystem_charset setting was ignored.
|
|
Don't allocate the file name before the playlist_dir==NULL check.
|
|
After we've been hit by Large File Support problems several times in
the past week (which only occur on 32 bit platforms, which I don't
have), this is yet another attempt to fix the issue.
|
|
Try to be as portable as possible, use GLib path name functions and
macros.
|
|
|
|
The GLib functions are more portable.
|
|
Added another glue function in main().
|
|
This updates the copyright header to all be the same, which is
pretty much an update of where to mail request for a copy of the GPL
and the years of the MPD project. This also puts all committers under
'The Music Player Project' umbrella. These entries should go
individually in the AUTHORS file, for consistancy.
|
|
Use GLIB_CHECK_VERSION() instead of manually checking
GLIB_MAJOR_VERSION, ...
|
|
When there are duplicate slashes in the song paths, eliminate them;
example:
/var/lib/mpd/music//foo.mp3
becomes:
/var/lib/mpd/music/foo.mp3
The slash is only detected at the border between the music_directory
and the local part.
|
|
When the user configures a music_directory with a trailing slash, it
may break playlist loading, because MPD expects a double slash. Chop
off the trailing slash.
|
|
Some code will be a little bit simpler if the dot is part of the
string literal.
|
|
Use config_get_path() instead in mapper.c.
|
|
Without a music_directory, MPD is an excellent streaming client.
|
|
|
|
Renamed functions, types, variables.
|
|
g_get_user_special_dir() was introduced with GLib 2.14. Don't use it
in older versions.
|
|
|
|
Don't use fixed static buffers. GLib allocates a new string for us
anyway, let's just return this one instead of copying it.
|
|
|
|
|
|
|
|
Don't use fixed stack buffers.
|
|
Don't use fixed stack buffers.
|
|
Don't pass a static buffer to map_spl_utf8_to_fs().
|
|
If no music_directory is configured, fall back to the XDG music
directory, determined by
g_get_user_special_dir(G_USER_DIRECTORY_MUSIC).
|
|
Only include headers which are really needed. os_compat.h aimed to
make MPD easily portable, but was never actually made portable.
|
|
When save_absolute_paths_in_playlists was enabled in mpd.conf, MPD
broke all playlists when manipulated using the "playlistdelete"
command. The reason was that map_directory_child_fs() was used, which
doesn't accept slashes in the file name. Use the new map_uri_fs()
function instead.
|
|
In map_directory_child_fs(), the result of utf8_to_fs_charset() was
never used, because it passed the unmodified "name" parameter to
pfx_dir().
|
|
Make map_directory_child_fs() refuse the names "." and "..". This is
currently the interface where an attacker may inject a manipulated
path (through the "update" command).
|
|
Added the function map_spl_utf8_to_fs() which replaces
utf8_to_fs_playlist_path().
|
|
g_error() is fatal by default. Use g_warning() for non-fatal
initialization errors.
|
|
Due to an off-by-one bug in map_fs_to_utf8(), the function returned
database paths with a leading slash.
|
|
Clients which have authenticated via unix socket may add local files
to the MPD playlist, provided that they own the file.
|
|
Moved the musicDir variable and its initialization code from path.c to
mapper.c.
|
|
The mapper library maps directory and song objects to file system
paths. With this central library, the code mixture in path.c should
be cleaned up, and we will be able to add neat features like aliasing.
|