aboutsummaryrefslogtreecommitdiffstats
path: root/src/directory_save.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* directory: replace songvec with doubly linked listMax Kellermann2012-01-241-1/+3
|
* directory: add function directory_get_song(), ...Max Kellermann2012-01-241-2/+2
| | | | Wrap songvec_find() and other songvec methods.
* directory: replace dirvec with doubly linked listMax Kellermann2012-01-241-5/+2
| | | | | Random access is not needed, and a linked list is easier to manage: we don't need to (re-)allocate the pointer array.
* directory: simplify constructors and clarify API documentationMax Kellermann2012-01-241-15/+5
| | | | | Pass only the "name" to a directory, instead of the full (relative) path.
* directory_save: pass const pointer to _save()Max Kellermann2011-09-101-3/+3
|
* copyright year 2011Max Kellermann2011-01-291-1/+1
|
* directory_save: duplicate the playlist nameMax Kellermann2010-07-251-2/+9
| | | | | | 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.
* update: store playlist files in databaseMax Kellermann2010-07-211-0/+9
| | | | | Don't open the music directory for each "lsinfo" call. Get the list of playlist files from the memory database.
* Update copyright notices.Avuton Olrich2009-12-311-1/+1
|
* include config.h in all sourcesMax Kellermann2009-11-121-0/+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.
* database: I/O error handling in db_save()Max Kellermann2009-11-071-17/+12
| | | | Check ferror() instead of the fprintf() return value.
* song_save: load one song at a timeMax Kellermann2009-11-011-5/+15
| | | | | Changed songvec_load() to song_load(). Added start and end markers for each song. Removed the "key" line, it's redundant.
* directory_save: partially revert the g_str_has_prefix() patchMax Kellermann2009-11-011-2/+2
|
* database: use strcmp() instead of g_str_has_prefix()Max Kellermann2009-11-011-3/+3
|
* text_file: allocate line buffers dynamicallyMax Kellermann2009-11-011-22/+23
| | | | | | | 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.
* directory_save: allocate directory object earlier, assign mtimeMax Kellermann2009-11-011-12/+13
| | | | | | 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.
* directory_save: free directory on errorMax Kellermann2009-11-011-1/+3
| | | | Fix a minor memory leak in the error handler.
* directory_save: abort on duplicate subdirectoryMax Kellermann2009-11-011-7/+9
| | | | | 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.
* directory_save: moved code to directory_load_subdir()Max Kellermann2009-11-011-49/+63
|
* song_save: use GError for error handlingMax Kellermann2009-07-051-1/+4
|
* song_save: no CamelCaseMax Kellermann2009-07-051-1/+1
| | | | Renamed functions.
* all: Update copyright header.Avuton Olrich2009-03-131-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.
* directory: directory_load() returns GErrorMax Kellermann2009-03-021-16/+43
| | | | Do error reporting with GLib's GError library in this library, too.
* directory: added "mtime" propertyMax Kellermann2009-02-281-2/+9
| | | | | | 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.
* directory: moved DIRECTORY_* string constantsMax Kellermann2009-02-271-0/+4
| | | | Moved some of them to to directory_save.c, and others to database.c.
* directory: added directory_is_root()Max Kellermann2009-01-041-2/+2
| | | | | directory_is_root() is cheaper than isRootDirectory(directory_get_path()).
* don't include utils.h when it isn't usedMax Kellermann2009-01-031-1/+0
|
* removed os_compat.hMax Kellermann2008-12-291-0/+3
| | | | | Only include headers which are really needed. os_compat.h aimed to make MPD easily portable, but was never actually made portable.
* utils: removed myFgets()Max Kellermann2008-12-281-4/+6
| | | | Replaced myFgets() with fgets() + g_strchomp().
* utils: use g_str_has_prefix() instead of prefixcmp()Max Kellermann2008-10-281-6/+6
| | | | Remove duplicated code from MPD.
* path: replaced mpd_basename() with g_path_get_basename()Max Kellermann2008-10-201-1/+4
| | | | | | GLib's g_path_get_basename() is much more reliable than mpd_basename(). The latter could be tricked into an assertion failure.
* directory: don't query database during loadMax Kellermann2008-10-091-2/+2
| | | | | | 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..
* directory: check the absolute path of a subdirectory while loadingMax Kellermann2008-10-091-0/+4
| | | | | | | 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.
* directory: moved dirvec struct declaration to dirvec.hMax Kellermann2008-10-091-1/+0
| | | | | No idea why it was created in directory.h, but it should be in dirvec.h.
* diretory: moved code to directory_save.c, directory_print.cMax Kellermann2008-10-091-0/+101
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.