#include "declaracao.h"
#include "cmd.h"
-#include "base.h"
-#include "contribuinte.h"
-#include "conjuge.h"
-#include "rendimento.h"
-#include "isento.h"
-#include "pagamento.h"
-#include "bem.h"
-#include "dependente.h"
-#include "calcula.h"
-#include "gera.h"
static int readline_support = 1;
size_t lsz = 0;
FILE *f;
int r;
+ int rc = 0;
int n = 1;
f = fdopen(fd, "r");
if (!f)
return -errno;
- while ((r = getline(&line, &lsz, f)) > 0) {
+ while (getline(&line, &lsz, f) > 0) {
r = cmd_run(dec, line);
if (r < 0) {
fprintf(stderr, "Não foi possível executar comando na linha %d: %s\n",
- n, strerror(-r));
+ n, dec->error ?: strerror(-r));
+ rc = r;
}
n++;
}
free(line);
- return r;
+ fclose(f);
+ return rc;
}
static int ttyprocess(struct declaracao *dec)
r = cmd_run(dec, line);
if (r < 0) {
fprintf(stderr, "Não foi possível executar comando: %s\n",
- strerror(-r));
+ dec->error ?: strerror(-r));
}
free(line);
}
usage();
cmd_init();
- base_cmd_init();
- contribuinte_cmd_init();
- conjuge_cmd_init();
- rendimento_cmd_init();
- isento_cmd_init();
- pagamento_cmd_init();
- bem_cmd_init();
- dependente_cmd_init();
- calcula_cmd_init();
- gera_cmd_init();
- sistema_cmd_init();
+ dec_cmd_init();
if (argc > 1)
filename = argv[1];