int main (int argc, char *argv[]) { int i; char *c; if (argc == 1) last_lines (10, NULL); else if (argc >= 2 && argc <= 3) { i = (int) strtol (argv[1], &c, 10); if (*c != '\0') { argc == 2 ? (last_lines (10, argv[1]), 0) : (Error ("Neplatna prikazova riadka\n"), 0); } else { if (i > 0 && *argv[1] == '+') from_line (i, argc == 2 ? NULL : argv[2]); else if (i == 0 && argc == 2) *argv[1] == '-' ? (last_lines (0, NULL)) : (from_line (0, NULL)); else if (i == 0 && argc == 3) *argv[1] == '-' ? (last_lines (0, argv[2])) : (from_line (0, argv[2])); else if (i < 0) last_lines (i * (-1), argc == 2 ? NULL : argv[2]); else Error ("Neplatna prikazova riadka\n"); } } else Error ("Prilis vela argumentov\n"); return EXIT_SUCCESS; }
static void print_last_page(MY_OBJ * obj) { int high = getmaxy(obj->obj.win) - (2 * MARGIN + (obj->obj.bg_task ? 1 : 3)); int wide = getmaxx(obj->text); last_lines(obj, high); print_page(obj, high, wide); }