aboutsummaryrefslogtreecommitdiffstats
path: root/src/ls.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2010-05-18input/ffmpeg: new input plugin using libavformat's "avio" libraryMax Kellermann1-0/+8
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-11-12include config.h in all sourcesMax Kellermann1-1/+1
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.
2009-10-13input/lastfm: removed obsolete last.fm input pluginMax Kellermann1-3/+0
This has been replaced by the last.fm playlist plugin. The input plugin has never worked well, and was just a playground to experiment with the last.fm radio protocol.
2009-09-24configure.ac: rename HAVE_CURL to ENABLE_CURLMax Kellermann1-1/+1
2009-03-13all: Update copyright header.Avuton Olrich1-6/+7
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.
2009-03-03ls: Print output of supported uri to fp rather than stdout.Avuton Olrich1-1/+1
Since there are no other callers than stdout, this wouldn't be a problem, but since there maybe in the future go ahead and fix it.
2009-03-03cmdline: Print available protocols when --version is run.Avuton Olrich1-0/+20
2009-03-02input_lastfm: new input plugin for last.fm radioMax Kellermann1-0/+3
The lastfm input plugin enables MPD to play lastfm:// URLs. This plugin is not complete yet: it plays only the first song in the last.fm playlist, and the playlist parser isn't even implemented properly.
2009-02-25ls: moved generic URI utilities to uri.cMax Kellermann1-13/+1
"ls" is a bad name for a library which parses URIs. We'll move the rest of the "ls" library later.
2009-01-29added support for the MMS protocolMax Kellermann1-0/+6
This patch implements the MMS protocol, by using libmms. It is quite experimental: it does not support seeking yet, and it is currently using synchronous I/O, which causes MPD to hang while waiting for the server.
2009-01-04ls: renamed functions, no CamelCaseMax Kellermann1-4/+7
2009-01-04ls: removed hasMusicSuffix() and get_archive_by_suffix()Max Kellermann1-35/+0
Determine the suffix manually, and use decoder_plugin_from_suffix() and archive_plugin_from_suffix() instead. This way, song_file_update_inarchive() can be optimized: it does not have to translate its path.
2009-01-04ls: include cleanupMax Kellermann1-6/+4
Don't include headers which are not used. Fix some includes in decoder_thread.c.
2009-01-02list: removed linked list libraryMax Kellermann1-1/+0
It's been superseded by GLib's GSList.
2008-12-31ls.c: include config.h to have HAVE_CURL hereLaszlo Ashin1-0/+1
2008-12-29removed os_compat.hMax Kellermann1-1/+2
Only include headers which are really needed. os_compat.h aimed to make MPD easily portable, but was never actually made portable.
2008-12-27disable archive API without pluginsMax Kellermann1-0/+2
When there are no archive plugins, we do not need the archive API at all. Drop all its overhead.
2008-12-16ls: adding get_archive_by_suffix() functionViliam Mateicka1-0/+15
2008-12-16ls: added uri_has_scheme()Max Kellermann1-0/+4
uri_has_scheme() checks if an URI contains the sub string "://", which makes MPD assume that it is a remote URI.
2008-12-16ls: don't return suffix from parent directory nameMax Kellermann1-1/+1
When a file had no file name extension, getSuffix() could return the extension of the parent directory (if it had one).
2008-12-16ls: reimplement getSuffix() with strrchr()Max Kellermann1-8/+2
The old getSuffix() code was quite wasteful, and can be replaced completely with strrchr().
2008-12-16ls: use boolMax Kellermann1-5/+4
Use the C99 "bool" data type instead of "int".
2008-12-16ls: make printRemoteUrlHandlers() return voidMax Kellermann1-3/+1
printRemoteUrlHandlers() cannot fail, and does not need a return value.
2008-12-16ls: removed isValidRemoteUtf8Url()Max Kellermann1-40/+0
The function didn't do anything useful, it was just several lines obfuscating that it was only forwarding isRemoteUrl()'s return value.
2008-11-01decoder: return const decoder_plugin structsMax Kellermann1-2/+3
The decoder_plugin structs must never change. Don't work with non-const pointers.
2008-10-28utils: use g_str_has_prefix() instead of prefixcmp()Max Kellermann1-2/+1
Remove duplicated code from MPD.
2008-10-26http: use libcurlMax Kellermann1-0/+2
MPD's HTTP client code has always been broken, no matter how effort was put into fixing it. Replace it with libcurl, which is known to be quite stable. This adds a fat library dependency, but only for people who need streaming.
2008-10-22command: added print_spl_list()Max Kellermann1-18/+0
The function print_spl_list() replaces the old function lsPlaylists() from ls.c.
2008-10-22stored_playlist: added spl_list()Max Kellermann1-73/+9
spl_list() provides an interface for enumerating all stored playlists. This separates the internal playlist logic from the protocol specific function lsPlaylists().
2008-10-14ls: removed myStat(), isFile(), isDir()Max Kellermann1-47/+0
The mapper code has replaced these functions.
2008-10-13song: stat file in song_file_update(), don't use isMusic()Max Kellermann1-12/+0
isMusic() used to be a very inefficient function: with every invocation, it did another stat() on the specified file. There is only one caller, do the stat() there manually and use hasMusicSuffix() instead of isMusic().
2008-10-13playlist: don't use isPlaylist() in deletePlaylist()Max Kellermann1-16/+0
The only caller of deletePlaylist() appends PLAYLIST_FILE_SUFFIX, so we can be sure it's already there. We don't need to stat the file, since unlink() does all the checking.
2008-09-26song: removed type SongListMax Kellermann1-0/+1
SongList has been superseded by struct songvec.
2008-09-23start using prefixcmp()Eric Wong1-2/+1
LOC reduction and less noise makes things easier for tired old folks to follow.
2008-09-07ls: don't pass "fd" to lsPlaylists(), printRemoteUrlHandlers()Max Kellermann1-6/+6
Pass the client struct instead of the raw file descriptor.
2008-08-29pass constant pointersMax Kellermann1-3/+3
And again, convert arguments to const.
2008-08-26renamed functions in decoder_list.hMax Kellermann1-1/+1
InputPlugin to decoder_plugin, and no camelCase.
2008-08-26renamed InputPlugin to struct decoder_pluginMax Kellermann1-4/+5
"decoder plugin" is a better name than "input plugin", since the plugin does not actually do the input - InputStream does. Also don't use typedef, so we can forward-declare it if required.
2008-03-26use size_tMax Kellermann1-5/+5
When dealing with in-memory lengths, the standard type "size_t" should be used. Missing one can be quite dangerous, because an attacker could provoke an integer under-/overflow, which may provide an attack vector. git-svn-id: https://svn.musicpd.org/mpd/trunk@7205 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-03-26eliminated duplicate initializationMax Kellermann1-1/+1
Local variables which are never read before the first assignment don't need initialization. Saves a few bytes of text. Also don't reset variables which are never read until function return. git-svn-id: https://svn.musicpd.org/mpd/trunk@7199 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-02-05fix -Wconst warningsMax Kellermann1-17/+17
[ew: cleaned up the dirty union hack a bit] Signed-off-by: Eric Wong <normalperson@yhbt.net> git-svn-id: https://svn.musicpd.org/mpd/trunk@7180 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-01-26fixed -Wshadow warningsMax Kellermann1-17/+18
Signed-off-by: Eric Wong <normalperson@yhbt.net> git-svn-id: https://svn.musicpd.org/mpd/trunk@7143 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-01-03Cleanup #includes of standard system headers and put them in one placeEric Wong1-4/+1
This will make refactoring features easier, especially now that pthreads support and larger refactorings are on the horizon. Hopefully, this will make porting to other platforms (even non-UNIX-like ones for masochists) easier, too. os_compat.h will house all the #includes for system headers considered to be the "core" of MPD. Headers for optional features will be left to individual source files. git-svn-id: https://svn.musicpd.org/mpd/trunk@7130 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-12-28Merge branches/ew r7104Eric Wong1-12/+17
thread-safety work in preparation for rewrite to use pthreads Expect no regressions against trunk (r7078), possibly minor performance improvements in update (due to fewer heap allocations), but increased stack usage. Applied the following patches: * maxpath_str for reentrancy (temporary fix, reverted) * path: start working on thread-safe variants of these methods * Re-entrancy work on path/character-set conversions * directory.c: exploreDirectory() use reentrant functions here * directory/update: more use of reentrant functions + cleanups * string_toupper: a strdup-less version of strDupToUpper * get_song_url: a static-variable-free version of getSongUrl() * Use reentrant/thread-safe get_song_url everywhere * replace rmp2amp with the reentrant version, rmp2amp_r * Get rid of the non-reentrant/non-thread-safe rpp2app, too. * buffer2array: assert strdup() returns a usable value in unit tests * replace utf8ToFsCharset and fsCharsetToUtf8 with thread-safe variants * fix storing playlists w/o absolute paths * parent_path(), a reentrant version of parentPath() * parentPath => parent_path for reentrancy and thread-safety * allow "make test" to automatically run embedded unit tests * remove convStrDup() and maxpath_str() * use MPD_PATH_MAX everywhere instead of MAXPATHLEN * path: get rid of appendSlash, pfx_path and just use pfx_dir * get_song_url: fix the ability to play songs in the top-level music_directory git-svn-id: https://svn.musicpd.org/mpd/trunk@7106 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-05The massive copyright updateAvuton Olrich1-1/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@5834 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-26Replace strdup and {c,re,m}alloc with x* variants to check for OOM errorsEric Wong1-1/+2
I'm checking for zero-size allocations and assert()-ing them, so we can more easily get backtraces and debug problems, but we'll also allow -DNDEBUG people to live on the edge if they wish. We do not rely on errno when checking for OOM errors because some implementations of malloc do not set it, and malloc is commonly overridden by userspace wrappers. I've spent some time looking through the source and didn't find any obvious places where we would explicitly allocate 0 bytes, so we shouldn't trip any of those assertions. We also avoid allocating zero bytes because C libraries don't handle this consistently (some return NULL, some not); and it's dangerous either way. git-svn-id: https://svn.musicpd.org/mpd/trunk@4690 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-20Fix warnings for -Wmissing-prototypesAvuton Olrich1-1/+1
Add -Wmissing-prototypes if compiling with gcc Static where possible git-svn-id: https://svn.musicpd.org/mpd/trunk@4657 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-14Revert leaks from r4311, and also the leak fixes as a result of thatEric Wong1-9/+1
utf8ToFsCharset() and fsCharsetToUtf8() got very broken in r4311, and resulted in several commits to fix those leaks. Unfortunately, not all of those newly introduced leaks were fixed, nor was the result pretty. Also, fixed a double-free in lsPlaylists(). This is very hard to trigger (and therefore exploit) at the moment because we check printDirectoryInfo() beforehand. Intended behavior for utf8ToFsCharset() and fsCharsetToUtf8() as God^H^H^Hshank originally intended is now documented in path.h to prevent future errors like this. mpd could still use some good valgrind testing before the 0.12.0 release. <plug>In addition to reducing heap fragmentation, malloc reductions from mpd-ke greatly reduces the chance of leaks from happening due to programming errors.</plug> git-svn-id: https://svn.musicpd.org/mpd/trunk@4639 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30remove clumsy strncpy useEric Wong1-2/+4
strncpy isn't really safe because it doesn't guarantee null termination, and we have had to work around it in several places. strlcpy (from OpenBSD) isn't great, either because it often leaves errors going unchecked (by truncating strings). So we'll add the pathcpy_trunc() function with is basically strlcpy with a hardcoded MAXPATHLEN as the limit, and we'll acknowledge truncation since we only work on paths and MAXPATHLEN should be set correctly by the system headers[1]. file-specific notes: inputStream_http: eyeballing the changes here, it seems to look alright but I haven't actually tested it myself. ls: don't even bother printing a file if the filename is too long (and when is it ever?) since we won't be able to read it anyways. metadataChunk: it's only metadata, and it's only for showin the user, so truncating it here souldn't be a big issue. memset to zero in init is unecessary, so lets not waste cycles [1] - If the system headers are screwed up, then we're majorly screwed regardless of what we do :x git-svn-id: https://svn.musicpd.org/mpd/trunk@4491 09075e82-0dd4-0310-85a5-a0d7c8717e4f