Commit Briefs
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'
drop a local variable
don't need to keep `files' around, res->files is enough. it would have prevented the previous bug (probably.)
fix `amused add' failure introduced in previous commit
don't advance the files pointer, we need the original pointer when receiving the replies.
refactor: group imsg handling
the approach with one-function-per-imsg leads to too much code splatted across the file.
amused monitor: allow to pass a list of event as filter
it's easier / simpler for scripts to do $ amused monitor next,prev,jump rather than $ amused monitor | egrep --line-buffered 'next|prev|jump'
use a more readable strncmp to look for prefixes
also while here stick an `else' before the second clausole. We're supposed to trim out only '> ' and ' ', but the missing else would also trim out ' ' after a '> '!
get rid of realpath during load
it has a non-ignorable cost over NFS (sdk@ reported ~30 seconds to load 64k songs, and up to 5 minutes over wifi!) and don't provide us any real gain: files can still vanish after being imported or may appear later. The only advantage of realpath was that it would clean up the path from segments like "/./" and resolve the ".." components, but that's a minor issue anyway. prodded by, discussed with and tested by sdk@, thanks a lot!
drop now unused #include <sndio.h>
with the recent refactoring, sndio is only visible in player.c
fix argc check
argc can be -1 if we called noarg with argc=0, because optind is 1.
correctly handle arguments for sub-commands
things like "--" should be skipped etc, easier to rely on getopt(3).