#include #include #include #include #include #include #include #include "util/map.h" int entry_tak(int argc, char **argv) { if (argc == 2 && strcmp(argv[1], "-h") == 0) { fprintf(stderr, "Gebruik: tak [BESTAND]...\n" "\n" "Schakel BESTAND(en) aaneen naar standaard uitvoer omgekeerd..\n"); return 0; } for (int i = argc-1; i >= 1; i--) { const char *fname = argv[i]; struct map *map = open_map(fname); char *lstart, *lend; lend = &map->addr[map->sb.st_size - 1]; while (lend > map->addr) { if (*lend == '\n') { lend--; } lstart = lend; while (*lstart != '\n' && lstart != map->addr) { lstart--; } if (lstart != map->addr) { lstart++; } printf("%.*s\n", lend - lstart + 1, lstart); lend = lstart-1; } close_map(map); } return 0; }