// Lee el nombre de un archivo de la entrada, y resume los enteros que tiene.
#include <stdio.h>

#include "int_array.h"

#define PATH_SIZE 256

// Quita el salto de línea que deja fgets, si lo hay.
static void remove_newline(char *text) {
    for (int i = 0; text[i] != '\0'; i++) {
        if (text[i] == '\n') {
            text[i] = '\0';
            return;
        }
    }
}

int main(void) {
    char path[PATH_SIZE];
    if (fgets(path, PATH_SIZE, stdin) == NULL) {
        fprintf(stderr, "Falta el nombre del archivo\n");
        return 1;
    }
    remove_newline(path);

    struct int_array *array = int_array_read_file(path);
    if (array == NULL) {
        fprintf(stderr, "No se pudo leer %s\n", path);
        return 1;
    }

    long total = 0;
    for (size_t i = 0; i < array->count; i++) {
        total = total + array->items[i];
    }
    printf("%zu enteros, suma %ld\n", array->count, total);

    int_array_free(array);
    return 0;
}
