X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=lib%2Fconjuge.c;h=5b6b05ee2e0c289670acbc39ff5acf391bc50298;hb=0e0f6f1266e18e02328daa805cf9e7be377ac664;hp=a0631b249c29da620e099c65efe71c229c8b0661;hpb=687bc57d97d703decd2a41f224a3de0b41f5881d;p=cascardo%2Fdeclara.git diff --git a/lib/conjuge.c b/lib/conjuge.c index a0631b2..5b6b05e 100644 --- a/lib/conjuge.c +++ b/lib/conjuge.c @@ -36,20 +36,15 @@ static int conjuge_parse(struct declaracao *dec, char **args) { int r = 0; - dec->conjuge.cpf = strdup(args[1]); - + r += set_string(args[1], &dec->conjuge.cpf); r += set_llong(args[2], &dec->conjuge.base); r += set_llong(args[3], &dec->conjuge.imposto); r += set_llong(args[4], &dec->conjuge.isento); r += set_llong(args[5], &dec->conjuge.exclusivo); r += set_llong(args[6], &dec->conjuge.rendpj_exigibilidade_suspensa); r += set_llong(args[7], &dec->conjuge.total); - r += set_int(args + 7, 2, &dec->conjuge.entregou); + r += set_int(args[8], &dec->conjuge.entregou); - if (!dec->conjuge.cpf) { - conjuge_free(dec); - return -ENOMEM; - } if (r < 0 || dec->conjuge.base < 0 || dec->conjuge.imposto < 0 || dec->conjuge.isento < 0 || dec->conjuge.exclusivo < 0 || dec->conjuge.rendpj_exigibilidade_suspensa < 0 || @@ -64,8 +59,10 @@ static int run_conjuge(struct declaracao *dec, char **args, int argc) { struct conjuge *conjuge; int r; - if (argc != 9) + if (argc != 9) { + dec_set_error(dec, "Esperados %d argumentos, recebidos %d.\n", 9, argc); return -EINVAL; + } r = conjuge_parse(dec, args); if (r < 0) return r; @@ -74,7 +71,9 @@ static int run_conjuge(struct declaracao *dec, char **args, int argc) void conjuge_salva(struct declaracao *dec, FILE *f) { - fprintf(f, "conjuge \"%s\" %lld %lld %lld %lld %lld %lld %lld %lld %d\n", + if (!dec->conjuge.cpf) + return; + fprintf(f, "conjuge \"%s\" %lld %lld %lld %lld %lld %lld %d\n", dec->conjuge.cpf, dec->conjuge.base, dec->conjuge.imposto, dec->conjuge.isento, dec->conjuge.exclusivo,