N: ls
P: AFS_READ
D: List audio files.
-U: ls [-l[s|l|v|m]] [-p] [-a] [-r] [-d] [-s{p|s|l|n|f|c|i|y|b|d|a}] [pattern...]
+U: ls [-l=mode] [-p] [-a] [-r] [-d] [-s=order] [pattern...]
H: Print a list of all audio files matching pattern.
H:
H: Options:
H:
-H: -l Change listing mode. Defaults to short listing if not given.
+H: -l=mode Change listing mode. Defaults to short listing if not given.
H:
-H: -ls: short listing mode
-H: -ll: long listing mode (equivalent to -l)
-H: -lv: verbose listing mode
-H: -lp: parser-friendly mode
-H: -lm: mbox listing mode
-H: -lc: chunk-table listing mode
+H: Available modes:
+H: s: short listing mode
+H: l: long listing mode (equivalent to -l)
+H: v: verbose listing mode
+H: p: parser-friendly mode
+H: m: mbox listing mode
+H: c: chunk-table listing mode
H:
H: -p List full paths. If this option is not specified, only the basename
H: of each file is printed.
H:
H: -d Print dates as seconds after the epoch.
H:
-H: -s Change sort order. Defaults to alphabetical path sort if not given.
-H:
-H: -sp: by path
-H: -sl: by last played time
-H: -ss: by score (implies -a)
-H: -sn: by num played count
-H: -sf: by frequency
-H: -sc: by number of channels
-H: -si: by image id
-H: -sy: by lyrics id
-H: -sb: by bit rate
-H: -sd: by duration
-H: -sa: by audio format
+H: -s=order Change sort order. Defaults to alphabetical path sort if not given.
+H:
+H: Possible values for order:
+H: p: by path
+H: l: by last played time
+H: s: by score (implies -a)
+H: n: by num played count
+H: f: by frequency
+H: c: by number of channels
+H: i: by image id
+H: y: by lyrics id
+H: b: by bit rate
+H: d: by duration
+H: a: by audio format
---
N: lsatt
P: AFS_READ
i++;
break;
}
+ /*
+ * Compatibility: Prior to 0.5.5 it was necessary to specify
+ * the listing mode without the '=' character as in -lv, for
+ * example. Now the variant with '=' is preferred and
+ * documented but we still accept the old way to specify the
+ * listing mode.
+ *
+ * Support for the legacy syntax can be dropped at 0.6.0
+ * or later.
+ */
if (!strncmp(arg, "-l", 2)) {
- if (!*(arg + 2)) {
- mode = LS_MODE_LONG;
- continue;
- }
- if (*(arg + 3))
- return -E_AFT_SYNTAX;
- switch(*(arg + 2)) {
+ arg += 2;
+ if (*arg == '=')
+ arg++;
+ switch (*arg) {
case 's':
mode = LS_MODE_SHORT;
continue;
case 'l':
+ case '\0':
mode = LS_MODE_LONG;
continue;
case 'v':
flags |= LS_FLAG_UNIXDATE;
continue;
}
+ /* The compatibility remark above applies also to -s. */
if (!strncmp(arg, "-s", 2)) {
- if (!*(arg + 2) || *(arg + 3))
- return -E_AFT_SYNTAX;
- switch(*(arg + 2)) {
+ arg += 2;
+ if (*arg == '=')
+ arg++;
+ switch (*arg) {
case 'p':
sort = LS_SORT_BY_PATH;
continue;
struct i9e_completion_result *cr)
{
char *opts[] = {
- "--", "-l", "-ls", "-ll", "-lv", "-lp", "-lm", "-lc", "-p",
- "-a", "-r", "-d", "-sp", "-sl", "-ss", "-sn", "-sf", "-sc",
- "-si", "-sy", "-sb", "-sd", "-sa", NULL
+ "--", "-l", "-l=s", "-l=l", "-l=v", "-l=p", "-l=m", "-l=c",
+ "-p", "-a", "-r", "-d", "-s=p", "-s=l", "-s=s", "-s=n", "-s=f",
+ "-s=c", "-s=i", "-s=y", "-s=b", "-s=d", "-s=a", NULL
};
if (ci->word[0] == '-')
i9e_complete_option(opts, ci, cr);
The command
- para_client -- ls -lv
+ para_client -- ls -l=v
gives you a verbose listing of your audio files also showing which
attributes are set.