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));
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 */
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) {