- FOR_EACH_COMMAND(i) {
- if (strcmp(audiod_cmds[i].name, argv[1]))
- continue;
- buf = make_message(
- "NAME\n\t%s -- %s\n"
- "SYNOPSIS\n\tpara_audioc %s\n"
- "DESCRIPTION\n%s\n",
- argv[1],
- audiod_cmds[i].description,
- audiod_cmds[i].usage,
- audiod_cmds[i].help
- );
- ret = client_write(fd, buf);
+ if (lls_num_inputs(lpr) == 0)
+ return dump_commands(fd);
+ ret = lls(lls_lookup_subcmd(lls_input(0, lpr), audiod_cmd_suite,
+ &errctx));
+ if (ret < 0) {
+ buf = make_message("%s: %s\nAvailable commands:\n", errctx?
+ errctx : lls_input(0, lpr), para_strerror(-ret));
+ if (client_write(fd, buf) >= 0)
+ dump_commands(fd);
+ free(errctx);