new.c_cc[VTIME] = 10;
tcsetattr(STDIN_FILENO, TCSANOW, &new);
ft_putstr_fd(term_setup, STDOUT_FILENO);
+ term->top_row = 0;
+ term->y = 1;
return ;
}
ft_putstr_fd(term_size_str, STDOUT_FILENO);
if (read(STDIN_FILENO, buffer, TERMSIZE_BUFFER_SIZE) < 0)
- term->height = ft_atoi(&buffer[2]);
+ return ;
+ term->height = ft_atoi(&buffer[2]) - 1;
i = 0;
while (buffer[i] != ';')
++i;
static const char *print_init_str = ""
"\033[s"
- "\033[1;0H"
+ "\033[2;1H"
;
void print_noncanon(t_vec *database, t_term *term)
ft_putstr_fd(print_init_str, STDOUT_FILENO);
while (i < database->size && i - term->top_row < term->height)
{
- print_entry(ft_vec_access(database, i++));
+ print_entry(ft_vec_access(database, i));
+ if (i - term->top_row < term->height - 1)
+ ft_putchar_fd('\n', STDOUT_FILENO);
+ ++i;
}
ft_putstr_fd(restore_cursor, STDOUT_FILENO);
return ;
}
else if (!ft_strcmp(buffer, "\033[B"))
{
- if (term->y < term->height)
+ if (term->y < term->height && term->y < database->size - term->top_row)
{
++term->y;
ft_putstr_fd(buffer, STDOUT_FILENO);
else if (database->size - term->top_row > term->height)
++term->top_row;
}
- else if (!ft_strcmp(buffer, "k") && term->top_row + term->y < database->size)
- kill_entry(database, term->top_row + term->y);
+ else if (!ft_strcmp(buffer, "k") && term->top_row + term->y - 1 < database->size)
+ kill_entry(database, term->top_row + term->y - 1);
else if (!ft_strcmp(buffer, "q") || !ft_strcmp(buffer, "\033"))
return (1);
return (0);
countdown = 3600 - (get_time_sec() - entry->kill_time);
countdown = ft_max(0, countdown);
- ft_printf(" %-20s%5i %-20s%2i:%02i\n",
+ ft_printf(" %-20s%5i %-20s%2i:%02i",
entry->name,
entry->level,
entry->biome,
return ;
}
+void print_entry_nl(t_entry *entry)
+{
+ print_entry(entry);
+ ft_putchar_fd('\n', STDOUT_FILENO);
+ return ;
+}
+
void print_database(t_vec *database)
{
size_t i;
i = 0;
while (i < database->size)
- print_entry(ft_vec_access(database, i++));
+ print_entry_nl(ft_vec_access(database, i++));
return ;
}
if (com->entry.name == NULL)
print_database(database);
else
- print_entry(ft_vec_access(database, ind));
+ print_entry_nl(ft_vec_access(database, ind));
}
else if (com->basic == basic_help)
print_help();