com_ff(): Simplify code for jumping backwards.
authorAndre Noll <maan@tuebingen.mpg.de>
Tue, 1 May 2018 12:12:08 +0000 (14:12 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Tue, 31 Jul 2018 16:14:36 +0000 (18:14 +0200)
With i being a signed integer, "ff -10" does the right thing. So we
can get of the "backwards" helper variable.

command.c

index 4584075..857d77f 100644 (file)
--- a/command.c
+++ b/command.c
@@ -663,7 +663,7 @@ EXPORT_SERVER_CMD_HANDLER(nomore);
 static int com_ff(struct command_context *cc, struct lls_parse_result *lpr)
 {
        long promille;
-       int i, ret, backwards = 0;
+       int i, ret;
        char c, *errctx;
 
        ret = lls(lls_check_arg_count(lpr, 1, 1, &errctx));
@@ -674,7 +674,7 @@ static int com_ff(struct command_context *cc, struct lls_parse_result *lpr)
        if (!(ret = sscanf(lls_input(0, lpr), "%i%c", &i, &c)))
                return -E_COMMAND_SYNTAX;
        if (ret > 1 && c == '-')
-               backwards = 1; /* jmp backwards */
+               i = -i;
        mutex_lock(mmd_mutex);
        ret = -E_NO_AUDIO_FILE;
        if (!mmd->afd.afhi.chunks_total || !mmd->afd.afhi.seconds_total)
@@ -682,13 +682,10 @@ static int com_ff(struct command_context *cc, struct lls_parse_result *lpr)
        ret = 1;
        promille = (1000 * mmd->current_chunk) / mmd->afd.afhi.chunks_total;
        /*
-        * We need these casts because without them the expression on the right
+        * We need this cast because without it the expression on the right
         * hand side is of unsigned type.
         */
-       if (backwards)
-               promille -= 1000 * i / (int)mmd->afd.afhi.seconds_total;
-       else
-               promille += 1000 * i / (int)mmd->afd.afhi.seconds_total;
+       promille += 1000 * i / (int)mmd->afd.afhi.seconds_total;
        if (promille < 0)
                promille = 0;
        if (promille > 1000) {