declara: retorna 0 se, e somente se, houverem erros
[cascardo/declara.git] / src / declara.c
index f5faa00..995dc31 100644 (file)
@@ -37,21 +37,23 @@ static int fileprocess(struct declaracao *dec, int fd)
        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, dec->error ?: strerror(-r));
+                       rc = r;
                }
                n++;
        }
        free(line);
        fclose(f);
-       return r;
+       return rc;
 }
 
 static int ttyprocess(struct declaracao *dec)