Não considera ano inválido como valor de imposto.
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Sat, 30 May 2015 15:33:47 +0000 (12:33 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Sat, 30 May 2015 15:33:47 +0000 (12:33 -0300)
Ao considerar qualquer ano diferente de 2015 como valor inválido, o
programa considerava o código de erro como o valor do imposto. Retorna o
erro antes, fazendo com que o comando calcula retorne um erro.

calcula.c

index 1089b8c..bc185e5 100644 (file)
--- a/calcula.c
+++ b/calcula.c
@@ -85,9 +85,6 @@ static long long imposto_simples(struct declaracao *dec)
 {
        struct taxtable *tt;
        long long tr, td;
-       if (dec->ano != 2015) {
-               return -EINVAL;
-       }
        tt = table2015;
        tr = total_rendimento(dec);
        dec->totalrendimento = tr;
@@ -114,9 +111,12 @@ static long long imposto_completa(struct declaracao *dec)
        return imposto(tt, tr);
 }
 
-void calcula(struct declaracao *dec)
+int calcula(struct declaracao *dec)
 {
        long long i_simples, i_completa;
+       if (dec->ano != 2015) {
+               return -EINVAL;
+       }
        i_simples = imposto_simples(dec);
        i_completa = imposto_completa(dec);
        dec->pago = total_pago(dec);
@@ -128,12 +128,12 @@ void calcula(struct declaracao *dec)
                dec->devido = i_simples;
        }
        dec->restituicao = dec->pago - dec->devido;
+       return 0;
 }
 
 static int run_calcula(struct declaracao *dec, char **args, int argc)
 {
-       calcula(dec);
-       return 0;
+       return calcula(dec);
 }
 
 static struct cmd cmd_calcula = {