Commit Briefs
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.
use canonpath instead of realpath(3)
so we get the same behaviour with `add' and `load'
use getprogname(3) instead of __progname
might help with portability, see for e.g. GitHub issue #1
avoid unnecessary initialization
we're just gonna memcpy all over path again a couple of lines before; a smart compiler will probably ignore the initialization anyway.