summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>2018-04-30 17:35:13 -0300
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>2018-09-15 16:46:50 -0300
commita99b09340e6b9c46268dfe2685d6997dd751212e (patch)
tree50d42f13d0e157dcd807baba4632f7f99dccf50b
parent302af818ba107d261fbc5dda69a2bc2f3a01b7cb (diff)
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.
-rw-r--r--lib/declaracao.h1
-rw-r--r--lib/gera.c3
2 files changed, 3 insertions, 1 deletions
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) {