From: Thadeu Lima de Souza Cascardo Date: Mon, 30 Apr 2018 20:35:13 +0000 (-0300) Subject: Utiliza contexto na declaração ao gerar rendimentos. X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fdeclara.git;a=commitdiff_plain;h=f108abceddb1ccefe7bc9192d8ec81e2d91421df Utiliza contexto na declaração ao gerar rendimentos. O número de linhas é utilizado para obter o rendimento cuja linha será gerada. No entanto, com o novo formato de 2018, este método não funciona sempre. A utilização de um ponteiro de uso temporário na declaração resolve o problema, e é menos sujeito a erros. --- diff --git a/lib/declaracao.h b/lib/declaracao.h index 1ffd86e..0dc2c17 100644 --- a/lib/declaracao.h +++ b/lib/declaracao.h @@ -64,6 +64,7 @@ struct declaracao { unsigned long rhash; int verbose; char *error; + void *ctx; }; struct declaracao * declaracao_new(int ano); diff --git a/lib/gera.c b/lib/gera.c index c0f565c..a07319d 100644 --- a/lib/gera.c +++ b/lib/gera.c @@ -787,7 +787,7 @@ static void gera_isento2(struct declaracao *dec, FILE *f, int codigo, int subcodigo, int codigoreal) { struct isento *i; - i = isento_get(dec, codigo, dec->linhas[codigo]); + i = dec->ctx; fprintf(f, "%02d", codigoreal); fprintf(f, "%-11.11s", dec->cpf); /* Titular */ /* Titular (T), Dependente (D), Alimentando (A), FIXME Alimentando */ @@ -1100,6 +1100,7 @@ static int gera(struct declaracao *dec, char *filename) isento = isento_get(dec, codigo, i); \ if (!isento) \ break; \ + dec->ctx = isento; \ W(fn); \ } if (dec->ano <= 2017) {