]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - command.c
com_ff(): Avoid "unsigned i".
[paraslash.git] / command.c
index 6adb945555d32e101fdd24bc7255133e33f0bd1b..45840755a37aef29c32afa7e425c3bcb4c443c7a 100644 (file)
--- a/command.c
+++ b/command.c
@@ -663,8 +663,7 @@ EXPORT_SERVER_CMD_HANDLER(nomore);
 static int com_ff(struct command_context *cc, struct lls_parse_result *lpr)
 {
        long promille;
-       int ret, backwards = 0;
-       unsigned i;
+       int i, ret, backwards = 0;
        char c, *errctx;
 
        ret = lls(lls_check_arg_count(lpr, 1, 1, &errctx));
@@ -672,7 +671,7 @@ static int com_ff(struct command_context *cc, struct lls_parse_result *lpr)
                send_errctx(cc, errctx);
                return ret;
        }
-       if (!(ret = sscanf(lls_input(0, lpr), "%u%c", &i, &c)))
+       if (!(ret = sscanf(lls_input(0, lpr), "%i%c", &i, &c)))
                return -E_COMMAND_SYNTAX;
        if (ret > 1 && c == '-')
                backwards = 1; /* jmp backwards */
@@ -682,10 +681,14 @@ static int com_ff(struct command_context *cc, struct lls_parse_result *lpr)
                goto out;
        ret = 1;
        promille = (1000 * mmd->current_chunk) / mmd->afd.afhi.chunks_total;
+       /*
+        * We need these casts because without them the expression on the right
+        * hand side is of unsigned type.
+        */
        if (backwards)
-               promille -= 1000 * i / mmd->afd.afhi.seconds_total;
+               promille -= 1000 * i / (int)mmd->afd.afhi.seconds_total;
        else
-               promille += 1000 * i / mmd->afd.afhi.seconds_total;
+               promille += 1000 * i / (int)mmd->afd.afhi.seconds_total;
        if (promille < 0)
                promille = 0;
        if (promille > 1000) {