Simplifica set_int e set_string.
[cascardo/declara.git] / lib / pagamento.c
index 959a02c..988790e 100644 (file)
@@ -74,23 +74,18 @@ static struct pagamento * pagamento_new(char **args, int argc)
        struct pagamento *pagamento;
        int r = 0;
        pagamento = malloc(sizeof(*pagamento));
-       pagamento->cnpj = strdup(args[2]);
-       pagamento->nome = strdup(args[3]);
-       /* TODO: consertar set_int para funcionar como set_llong */
-       r += set_int(args, 2, &pagamento->codigo);
+       r += set_int(args[1], &pagamento->codigo);
+       r += set_string(args[2], &pagamento->cnpj);
+       r += set_string(args[3], &pagamento->nome);
        r += set_llong(args[4], &pagamento->pagamento);
        r += set_llong(args[5], &pagamento->reembolso);
-       if (!pagamento->cnpj || !pagamento->nome) {
-               pagamento_free(pagamento);
-               return NULL;
-       }
        if (r < 0 || pagamento->codigo < 0 ||
            pagamento->pagamento < 0 || pagamento->reembolso < 0) {
                pagamento_free(pagamento);
                return NULL;
        }
        if (argc == 7) {
-               r = set_int(&args[5], 2, &pagamento->dependente);
+               r = set_int(args[6], &pagamento->dependente);
        } else {
                pagamento->dependente = 0;
        }