command: omitting the range end is possible

When the range end is missing, then the maximum possible value is
assumed.
This commit is contained in:
Max Kellermann 2009-10-18 01:24:49 +02:00
parent e7c267db4f
commit d69e0ab53a
3 changed files with 19 additions and 1 deletions

1
NEWS
View File

@ -9,6 +9,7 @@ ver 0.16 (20??/??/??)
- "addid" with negative position is deprecated
- "load" supports remote playlists (m3u, pls, xspf, lastfm://)
- allow changing replay gain mode on-the-fly
- omitting the range end is possible
* input:
- lastfm: obsolete plugin removed
* tags:

View File

@ -67,6 +67,20 @@
successful command executed in the command list.
</para>
</section>
<section>
<title>Ranges</title>
<para>
Some commands (e.g. <link
linkend="command_delete"><command>delete</command></link>)
allow specifying a range in the form
<parameter>START:END</parameter> (the <varname>END</varname>
item is not included in the range, similar to ranges in the
Python programming language). If <varname>END</varname> is
omitted, then the maximum possible value is assumed.
</para>
</section>
</chapter>
<chapter>

View File

@ -221,7 +221,7 @@ check_range(struct client *client, unsigned *value_r1, unsigned *value_r2,
if (*test == ':') {
value = strtol(++test, &test2, 10);
if (*test2 != '\0' || test == test2) {
if (*test2 != '\0') {
va_list args;
va_start(args, fmt);
command_error_v(client, ACK_ERROR_ARG, fmt, args);
@ -229,6 +229,9 @@ check_range(struct client *client, unsigned *value_r1, unsigned *value_r2,
return false;
}
if (test == test2)
value = G_MAXUINT;
if (value < 0) {
command_error(client, ACK_ERROR_ARG,
"Number is negative: %s", s);