X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=command.c;fp=command.c;h=45840755a37aef29c32afa7e425c3bcb4c443c7a;hp=6adb945555d32e101fdd24bc7255133e33f0bd1b;hb=18ab74be0bd8b5b086ab54b96e1ab0a7e0c14a04;hpb=7e2f19e8178fa3ef85e3d1f6851eeea86a08291d diff --git a/command.c b/command.c index 6adb9455..45840755 100644 --- 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) {