summaryrefslogtreecommitdiff
path: root/src/directory_save.c
AgeCommit message (Collapse)Author
2012-02-13directory.h: move DIRECTORY_DIR to directory_save.cMax Kellermann
2012-01-24directory: replace songvec with doubly linked listMax Kellermann
2012-01-24directory: add function directory_get_song(), ...Max Kellermann
Wrap songvec_find() and other songvec methods.
2012-01-24directory: replace dirvec with doubly linked listMax Kellermann
Random access is not needed, and a linked list is easier to manage: we don't need to (re-)allocate the pointer array.
2012-01-24directory: simplify constructors and clarify API documentationMax Kellermann
Pass only the "name" to a directory, instead of the full (relative) path.
2011-09-10directory_save: pass const pointer to _save()Max Kellermann
2011-01-29copyright year 2011Max Kellermann
2010-07-25directory_save: duplicate the playlist nameMax Kellermann
The function playlist_metadata_load() will overwrite the input buffer before using the "name" parameter; since "name" points to the same buffer, we'll get a corrupted string.
2010-07-21update: store playlist files in databaseMax Kellermann
Don't open the music directory for each "lsinfo" call. Get the list of playlist files from the memory database.
2009-12-31Update copyright notices.Avuton Olrich
2009-11-12include config.h in all sourcesMax Kellermann
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-11-07database: I/O error handling in db_save()Max Kellermann
Check ferror() instead of the fprintf() return value.
2009-11-01song_save: load one song at a timeMax Kellermann
Changed songvec_load() to song_load(). Added start and end markers for each song. Removed the "key" line, it's redundant.
2009-11-01directory_save: partially revert the g_str_has_prefix() patchMax Kellermann
2009-11-01database: use strcmp() instead of g_str_has_prefix()Max Kellermann
2009-11-01text_file: allocate line buffers dynamicallyMax Kellermann
Use a single GString buffer object in all functions loading the database. Enlarge it automatically for long lines. This eliminates the maximum line length for tag values. There is still an upper limit of 512 kB to prevent denial of service, but that's reasonable I guess.
2009-11-01directory_save: allocate directory object earlier, assign mtimeMax Kellermann
Allocate the directory object after the "directory:" line. Assign the mtime from the input file to this new object, instead of to the parent directory.
2009-11-01directory_save: free directory on errorMax Kellermann
Fix a minor memory leak in the error handler.
2009-11-01directory_save: abort on duplicate subdirectoryMax Kellermann
The old code tried to recover, but what's the point of that? If a directory is duplicate, something is wrong with the database file.
2009-11-01directory_save: moved code to directory_load_subdir()Max Kellermann
2009-07-05song_save: use GError for error handlingMax Kellermann
2009-07-05song_save: no CamelCaseMax Kellermann
Renamed functions.
2009-03-13all: Update copyright header.Avuton Olrich
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-02directory: directory_load() returns GErrorMax Kellermann
Do error reporting with GLib's GError library in this library, too.
2009-02-28directory: added "mtime" propertyMax Kellermann
Remember the modification time of each directory. This is important for archives (which are virtual directories right now), but may also be useful for an automatic update mechanism.
2009-02-27directory: moved DIRECTORY_* string constantsMax Kellermann
Moved some of them to to directory_save.c, and others to database.c.
2009-01-04directory: added directory_is_root()Max Kellermann
directory_is_root() is cheaper than isRootDirectory(directory_get_path()).
2009-01-03don't include utils.h when it isn't usedMax Kellermann
2008-12-29removed os_compat.hMax Kellermann
Only include headers which are really needed. os_compat.h aimed to make MPD easily portable, but was never actually made portable.
2008-12-28utils: removed myFgets()Max Kellermann
Replaced myFgets() with fgets() + g_strchomp().
2008-10-28utils: use g_str_has_prefix() instead of prefixcmp()Max Kellermann
Remove duplicated code from MPD.
2008-10-20path: replaced mpd_basename() with g_path_get_basename()Max Kellermann
GLib's g_path_get_basename() is much more reliable than mpd_basename(). The latter could be tricked into an assertion failure.
2008-10-09directory: don't query database during loadMax Kellermann
Don't use db_get_directory() and traverse the full path with every directory being loaded. Just see if the current parent contains the entry. Everything else would be invalid anyway..
2008-10-09directory: check the absolute path of a subdirectory while loadingMax Kellermann
A manipulated database could trigger an assertion failure, because the parent didn't match. Do a proper check if the new directory is within the parent's. This uses FATAL() to bail out, so MPD still dies, but it doesn't crash.
2008-10-09directory: moved dirvec struct declaration to dirvec.hMax Kellermann
No idea why it was created in directory.h, but it should be in dirvec.h.
2008-10-09diretory: moved code to directory_save.c, directory_print.cMax Kellermann
Remove clutter from directory.c. Everything which saves or loads to/from the hard disk goes to directory_save.c, and code which sends directory information to the client is moved into directory_print.c.