Commit Briefs
reset path buffer before writing to it
otherwise path, which is filled by the garbage that's on the stack, may not end with a NUL byte. main_enqueue fails with "malformed data" if the path sent doesn't end with a NUL. (i.e. the fact that in every case the path is NUL-terminated is not relevant. For semplicity, I'm working with paths long PATH_MAX bytes and only checking that path[PATH_MAX-1] is NUL when handling the imsgs.) Issue reported by Dirk-Wilhelm Peters, thanks!
CHANGES for 0.8 (tags/0.8)
skip every non-regular file
not only directories... I guess we can't do much even with sockets, fifos or character devices. (symbolic links are still supported since we follow them)
free the FILE on op_open_callbacks failure
the API is a bit of a shitshow. op_fdopen is just a wrapper around FILE*, but returns void* for don't know what Windows limitation. if op_open_callbacks fails we have to free the stream by ourselves. the documentation implies that this void* pointer is, in fact, a FILE*.
don't change params if they're the same
avoids a sio_stop in the common case of switching from song that needs similar params (such as tracks in the same album.)
s/player_setrate/player_setup
when the function was renamed, the error messages weren't.
use a strictier pledge for `amused add'
now that we're using canonpath instead of realpath(3), we can drop the rpath pledge promise.