From b3a9943fe5f45ca50b7148b93614d2d5b5ef7662 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Fri, 13 Dec 2024 17:20:45 +0000 Subject: [PATCH] frontend: fix all compiler warnings --- frontend/line-ed/buffer.c | 10 +++++----- frontend/line-ed/buffer.h | 6 ++++-- frontend/line-ed/cursor.c | 7 +++---- frontend/line-ed/cursor.h | 5 ++--- frontend/line-ed/history.c | 4 ++-- frontend/line-ed/hl-range.c | 13 ++++++------- frontend/line-ed/hl-range.h | 17 +++++++---------- frontend/line-ed/input.c | 24 ++++++++++++------------ frontend/line-ed/line-ed.c | 14 +++++++------- frontend/line-ed/line-ed.h | 6 +++--- frontend/line-ed/prompt.c | 2 +- frontend/line-ed/prompt.h | 2 +- frontend/line-ed/refresh.c | 24 ++++++++++++------------ frontend/line-ed/refresh.h | 6 +++--- 14 files changed, 68 insertions(+), 72 deletions(-) diff --git a/frontend/line-ed/buffer.c b/frontend/line-ed/buffer.c index 14eaf7d..1b46fcb 100644 --- a/frontend/line-ed/buffer.c +++ b/frontend/line-ed/buffer.c @@ -1,11 +1,11 @@ #include "buffer.h" #include "line-ed.h" -const char *line_start(struct line_ed *ed, unsigned int y) +const char *line_start(struct line_ed *ed, size_t y) { const char *line = ed->l_buf; - for (unsigned int i = 0; i < y; i++) { + for (size_t i = 0; i < y; i++) { line += strcspn(line, "\n"); if (*line == '\n') { @@ -16,11 +16,11 @@ const char *line_start(struct line_ed *ed, unsigned int y) return line; } -unsigned int line_length(struct line_ed *ed, unsigned int y) +size_t line_length(struct line_ed *ed, size_t y) { const char *line = ed->l_buf; - for (unsigned int i = 0; i < y; i++) { + for (size_t i = 0; i < y; i++) { line += strcspn(line, "\n"); if (*line == '\n') { line++; @@ -31,7 +31,7 @@ unsigned int line_length(struct line_ed *ed, unsigned int y) return 0; } - unsigned int len = strcspn(line, "\n"); + size_t len = strcspn(line, "\n"); if (line[len] == '\n') { len++; } diff --git a/frontend/line-ed/buffer.h b/frontend/line-ed/buffer.h index 757246c..d70956e 100644 --- a/frontend/line-ed/buffer.h +++ b/frontend/line-ed/buffer.h @@ -1,14 +1,16 @@ #ifndef LINE_ED_BUFFER_H_ #define LINE_ED_BUFFER_H_ +#include + struct line_ed; /* returns a pointer to the start of the line based on the given `y` * coordinate */ -extern const char *line_start(struct line_ed *ed, unsigned int y); +extern const char *line_start(struct line_ed *ed, size_t y); /* returns the length of the line based on the given `y` coordinate. * for any line other than the last line in the buffer, this length * INCLUDES the trailing linefeed. */ -extern unsigned int line_length(struct line_ed *ed, unsigned int y); +extern size_t line_length(struct line_ed *ed, size_t y); #endif diff --git a/frontend/line-ed/cursor.c b/frontend/line-ed/cursor.c index d3a47b4..70a644d 100644 --- a/frontend/line-ed/cursor.c +++ b/frontend/line-ed/cursor.c @@ -2,11 +2,10 @@ #include "cursor.h" #include "prompt.h" -void line_ed_coords_to_physical_coords(struct line_ed *ed, - unsigned int x, unsigned int y, - unsigned int *out_x, unsigned int *out_y) +void line_ed_coords_to_physical_coords( + struct line_ed *ed, size_t x, size_t y, size_t *out_x, size_t *out_y) { - unsigned int prompt_len = 0; + size_t prompt_len = 0; if (ed->l_cursor_y == 0) { prompt_len = prompt_length(ed, PROMPT_MAIN); } else if (ed->l_cursor_y <= ed->l_continuations) { diff --git a/frontend/line-ed/cursor.h b/frontend/line-ed/cursor.h index 4aed6f0..3d8a4b4 100644 --- a/frontend/line-ed/cursor.h +++ b/frontend/line-ed/cursor.h @@ -3,8 +3,7 @@ struct line_ed; -extern void line_ed_coords_to_physical_coords(struct line_ed *ed, - unsigned int x, unsigned int y, - unsigned int *out_x, unsigned int *out_y); +extern void line_ed_coords_to_physical_coords( + struct line_ed *ed, size_t x, size_t y, size_t *out_x, size_t *out_y); #endif diff --git a/frontend/line-ed/history.c b/frontend/line-ed/history.c index 285c9cc..ad887a8 100644 --- a/frontend/line-ed/history.c +++ b/frontend/line-ed/history.c @@ -33,7 +33,7 @@ void load_buf_from_history(struct line_ed *ed) { b_string *cur = (b_string *)b_array_at(ed->l_history, ed->l_history_pos); size_t len - = MIN(ed->l_buf_end - ed->l_buf - 1, + = MIN((size_t)(ed->l_buf_end - ed->l_buf - 1), b_string_get_size(cur, B_STRLEN_NORMAL)); memcpy(ed->l_buf, b_string_ptr(cur), len); @@ -57,7 +57,7 @@ void load_buf_from_history(struct line_ed *ed) const char *last_history_line(struct line_ed *ed) { - unsigned long nlines = b_array_size(ed->l_history); + size_t nlines = b_array_size(ed->l_history); if (nlines < 2) { return NULL; } diff --git a/frontend/line-ed/hl-range.c b/frontend/line-ed/hl-range.c index 79466ce..7810c20 100644 --- a/frontend/line-ed/hl-range.c +++ b/frontend/line-ed/hl-range.c @@ -7,8 +7,7 @@ #include #include -int compare_coords( - unsigned int ax, unsigned int ay, unsigned int bx, unsigned int by) +int compare_coords(size_t ax, size_t ay, size_t bx, size_t by) { if (ay > by) { return 1; @@ -29,7 +28,7 @@ int compare_coords( return 0; } -struct hl_range *get_hl_range(struct line_ed *ed, unsigned int x, unsigned int y) +struct hl_range *get_hl_range(struct line_ed *ed, size_t x, size_t y) { if (b_queue_empty(&ed->l_hl_ranges)) { return NULL; @@ -64,7 +63,7 @@ struct hl_range *get_next_hl_range(struct hl_range *range) return range; } -int apply_hl_range(struct hl_range *range, b_tty *tty, unsigned int x, unsigned int y) +int apply_hl_range(struct hl_range *range, b_tty *tty, size_t x, size_t y) { if (!range) { b_tty_reset_vmode(tty); @@ -90,8 +89,8 @@ int apply_hl_range(struct hl_range *range, b_tty *tty, unsigned int x, unsigned } struct hl_range *create_highlight( - unsigned long start_x, unsigned long start_y, unsigned long end_x, - unsigned long end_y, const b_tty_vmode *vmode) + size_t start_x, size_t start_y, size_t end_x, size_t end_y, + const b_tty_vmode *vmode) { struct hl_range *out = malloc(sizeof *out); if (!out) { @@ -280,7 +279,7 @@ void line_ed_print_highlights(struct line_ed *ed) b_queue_iterator it; b_queue_foreach (&it, &ed->l_hl_ranges) { struct hl_range *h = b_unbox(struct hl_range, it.entry, h_entry); - printf("(%u, %u) -> (%u, %u)\n", h->h_start_x, h->h_start_y, + printf("(%zu, %zu) -> (%zu, %zu)\n", h->h_start_x, h->h_start_y, h->h_end_x, h->h_end_y); } } diff --git a/frontend/line-ed/hl-range.h b/frontend/line-ed/hl-range.h index 5cea5a6..835c2a7 100644 --- a/frontend/line-ed/hl-range.h +++ b/frontend/line-ed/hl-range.h @@ -18,23 +18,20 @@ enum hl_range_comparison { }; struct hl_range { - unsigned int h_start_x, h_start_y; - unsigned int h_end_x, h_end_y; + size_t h_start_x, h_start_y; + size_t h_end_x, h_end_y; b_tty_vmode h_vmode; b_queue_entry h_entry; }; -extern int compare_coords( - unsigned int ax, unsigned int ay, unsigned int bx, unsigned int by); -extern struct hl_range *get_hl_range( - struct line_ed *ed, unsigned int x, unsigned int y); +extern int compare_coords(size_t ax, size_t ay, size_t bx, size_t by); +extern struct hl_range *get_hl_range(struct line_ed *ed, size_t x, size_t y); extern struct hl_range *get_next_hl_range(struct hl_range *range); -extern int apply_hl_range( - struct hl_range *range, b_tty *tty, unsigned int x, unsigned int y); +extern int apply_hl_range(struct hl_range *range, b_tty *tty, size_t x, size_t y); extern struct hl_range *create_highlight( - unsigned long start_x, unsigned long start_y, unsigned long end_x, - unsigned long end_y, const struct b_tty_vmode *vmode); + size_t start_x, size_t start_y, size_t end_x, size_t end_y, + const struct b_tty_vmode *vmode); extern enum hl_range_comparison compare_hl_ranges( const struct hl_range *a, const struct hl_range *b); diff --git a/frontend/line-ed/input.c b/frontend/line-ed/input.c index 105b8c3..c6f117c 100644 --- a/frontend/line-ed/input.c +++ b/frontend/line-ed/input.c @@ -19,10 +19,10 @@ void put_char(struct line_ed *ed, char c) .r_prev_cursor_y = ed->l_cursor_y, }; - unsigned int prev_cursor = ed->l_buf_ptr - ed->l_buf; + size_t prev_cursor = ed->l_buf_ptr - ed->l_buf; char *dest = ed->l_buf_ptr; - unsigned int len = ed->l_line_end - ed->l_buf_ptr + 1; + size_t len = ed->l_line_end - ed->l_buf_ptr + 1; if (dest < ed->l_line_end) { memmove(dest + 1, dest, len); @@ -53,10 +53,10 @@ static void backspace_simple(struct line_ed *ed) .r_prev_cursor_y = ed->l_cursor_y, }; - unsigned int prev_cursor = ed->l_buf_ptr - ed->l_buf; + size_t prev_cursor = ed->l_buf_ptr - ed->l_buf; char *dest = ed->l_buf_ptr; - unsigned int len = ed->l_line_end - ed->l_buf_ptr + 1; + size_t len = ed->l_line_end - ed->l_buf_ptr + 1; memmove(dest - 1, dest, len); ed->l_cursor_x--; @@ -70,7 +70,7 @@ static void backspace_simple(struct line_ed *ed) static void backspace_nl(struct line_ed *ed) { - unsigned int prev_line_len = line_length(ed, ed->l_cursor_y - 1); + size_t prev_line_len = line_length(ed, ed->l_cursor_y - 1); struct refresh_state state = { .r_prev_cursor_x = ed->l_cursor_x, @@ -79,7 +79,7 @@ static void backspace_nl(struct line_ed *ed) }; char *dest = ed->l_buf_ptr; - unsigned int len = ed->l_line_end - ed->l_buf_ptr + 1; + size_t len = ed->l_line_end - ed->l_buf_ptr + 1; memmove(dest - 1, dest, len); ed->l_cursor_x = prev_line_len - 1; @@ -126,17 +126,17 @@ void cursor_left(struct line_ed *ed) ed->l_cursor_y--; ed->l_buf_ptr--; - unsigned int prompt_len = 0; + size_t prompt_len = 0; if (ed->l_cursor_y == 0) { prompt_len = prompt_length(ed, PROMPT_MAIN); } - unsigned int len = line_length(ed, ed->l_cursor_y); + size_t len = line_length(ed, ed->l_cursor_y); ed->l_cursor_x = len - 1; //printf("\033[A\033[%dG", len + prompt_len); b_tty_move_cursor_y(ed->l_tty, B_TTY_POS_CURSOR, -1); - b_tty_move_cursor_x(ed->l_tty, B_TTY_POS_START, len + prompt_len); + b_tty_move_cursor_x(ed->l_tty, B_TTY_POS_START, (int)(len + prompt_len)); fflush(stdout); } @@ -178,12 +178,12 @@ void arrow_up(struct line_ed *ed) if (ed->l_cursor_y > 0) { //printf("\033[%uA", ed->l_cursor_y); - b_tty_move_cursor_y(ed->l_tty, B_TTY_POS_CURSOR, ed->l_cursor_y); + b_tty_move_cursor_y(ed->l_tty, B_TTY_POS_CURSOR, (long long)ed->l_cursor_y); } //printf("\033[%zuG\033[J", prompt_length(ed, PROMPT_MAIN) + 1); b_tty_move_cursor_x( - ed->l_tty, B_TTY_POS_START, prompt_length(ed, PROMPT_MAIN)); + ed->l_tty, B_TTY_POS_START, (long long)prompt_length(ed, PROMPT_MAIN)); b_tty_clear(ed->l_tty, B_TTY_CLEAR_SCREEN | B_TTY_CLEAR_FROM_CURSOR); save_buf_to_history(ed); @@ -202,7 +202,7 @@ void arrow_down(struct line_ed *ed) if (ed->l_cursor_y > 0) { //printf("\033[%uA", ed->l_cursor_y); - b_tty_move_cursor_y(ed->l_tty, B_TTY_POS_CURSOR, ed->l_cursor_y); + b_tty_move_cursor_y(ed->l_tty, B_TTY_POS_CURSOR, (int)ed->l_cursor_y); } //printf("\033[%zuG\033[J", prompt_length(ed, PROMPT_MAIN) + 1); diff --git a/frontend/line-ed/line-ed.c b/frontend/line-ed/line-ed.c index a645e8e..5f442d7 100644 --- a/frontend/line-ed/line-ed.c +++ b/frontend/line-ed/line-ed.c @@ -22,7 +22,7 @@ static enum ivy_status readline( struct line_ed *ed = LINE_ED_FROM_LEX_SOURCE(src); line_ed_set_scope_type(ed, scope_type); - long r = line_ed_readline(ed, out, max); + size_t r = line_ed_readline(ed, out, max); line_ed_set_scope_type(ed, NULL); if (r < 0) { @@ -102,10 +102,10 @@ static void clear_buffer(struct line_ed *ed) static void convert_continuation_feeds(char *s, size_t max) { char *end = s + max; - unsigned int len = strlen(s); + size_t len = strlen(s); while (1) { - unsigned int r = strcspn(s, "\\"); + size_t r = strcspn(s, "\\"); if (s + r > end) { break; } @@ -130,10 +130,10 @@ static void convert_continuation_feeds(char *s, size_t max) static void remove_continuation_feeds(char *s, size_t max) { char *end = s + max; - unsigned int len = strlen(s); + size_t len = strlen(s); while (1) { - unsigned int r = strcspn(s, "\\"); + size_t r = strcspn(s, "\\"); if (s + r > end) { break; } @@ -167,12 +167,12 @@ static bool input_is_empty(struct line_ed *ed) return true; } -long line_ed_readline(struct line_ed *ed, char *out, size_t max) +size_t line_ed_readline(struct line_ed *ed, char *out, size_t max) { clear_buffer(ed); bool append_history = false; - unsigned int append_to_index = (unsigned int)-1; + size_t append_to_index = (size_t)-1; if (!ed->l_scope_type) { alloc_empty_history_entry(ed); } else { diff --git a/frontend/line-ed/line-ed.h b/frontend/line-ed/line-ed.h index 5e9393b..f23a8d7 100644 --- a/frontend/line-ed/line-ed.h +++ b/frontend/line-ed/line-ed.h @@ -50,7 +50,7 @@ struct line_ed { char *l_line_end; /* 2-dimensional coordinates of the current cursor position. * this does NOT include any prompts that are visible on the terminal */ - unsigned int l_cursor_x, l_cursor_y; + size_t l_cursor_x, l_cursor_y; /* the number of line continuations that have been inputted */ unsigned int l_continuations; @@ -67,7 +67,7 @@ struct line_ed { /* array of previously entered commands */ b_array *l_history; /* index of the currently selected history entry */ - unsigned int l_history_pos; + size_t l_history_pos; /* list of defined highlight ranges */ b_queue l_hl_ranges; @@ -89,7 +89,7 @@ extern void line_ed_print_highlights(struct line_ed *ed); extern void line_ed_add_hook(struct line_ed *ed, struct line_ed_hook *hook); extern void line_ed_remove_hook(struct line_ed *ed, struct line_ed_hook *hook); -extern long line_ed_readline(struct line_ed *ed, char *out, size_t max); +extern size_t line_ed_readline(struct line_ed *ed, char *out, size_t max); static inline struct ivy_line_source *line_ed_to_line_source(struct line_ed *ed) { diff --git a/frontend/line-ed/prompt.c b/frontend/line-ed/prompt.c index 75a34e9..963109c 100644 --- a/frontend/line-ed/prompt.c +++ b/frontend/line-ed/prompt.c @@ -21,7 +21,7 @@ void show_prompt(struct line_ed *ed) fflush(stdout); } -unsigned long prompt_length(struct line_ed *ed, int prompt_id) +size_t prompt_length(struct line_ed *ed, int prompt_id) { return strlen(ed->l_prompt[prompt_id]); } diff --git a/frontend/line-ed/prompt.h b/frontend/line-ed/prompt.h index cdc4204..eb135e3 100644 --- a/frontend/line-ed/prompt.h +++ b/frontend/line-ed/prompt.h @@ -7,6 +7,6 @@ struct line_ed; extern void show_prompt(struct line_ed *ed); -extern unsigned long prompt_length(struct line_ed *ed, int prompt_id); +extern size_t prompt_length(struct line_ed *ed, int prompt_id); #endif diff --git a/frontend/line-ed/refresh.c b/frontend/line-ed/refresh.c index 5a7a78a..6917056 100644 --- a/frontend/line-ed/refresh.c +++ b/frontend/line-ed/refresh.c @@ -14,12 +14,12 @@ * the (x, y) coordinates provided should be the data coordinates of the * first character in `s`. */ -void print_text(struct line_ed *ed, unsigned int x, unsigned int y, const char *s) +void print_text(struct line_ed *ed, size_t x, size_t y, const char *s) { b_tty *tty = ed->l_tty; struct hl_range *cur_range = get_hl_range(ed, x, y); - for (unsigned int i = 0; s[i] != '\n' && s[i] != '\0'; i++) { + for (size_t i = 0; s[i] != '\n' && s[i] != '\0'; i++) { if (!cur_range) { b_tty_reset_vmode(tty); fputc(s[i], stdout); @@ -96,18 +96,18 @@ void put_refresh(struct line_ed *ed, struct refresh_state *state) size_t line_len = strcspn(line_buf, "\n"); /* the index of the first char in line_buf that needs to be reprinted */ - int start_x = state->r_prev_cursor_x; + size_t start_x = state->r_prev_cursor_x; /* the distance between the first char to be reprinted and the end * of the line. * the physical cursor will be moved back by this amount after the * line is reprinted. */ - int cursor_rdelta = (int)(line_len - start_x); + long cursor_rdelta = (long)(line_len - start_x); if (ed->l_flags & LINE_ED_FULL_REPRINT) { if (start_x) { //fprintf(stdout, "\033[%uD", start_x); - b_tty_move_cursor_x(ed->l_tty, B_TTY_POS_CURSOR, -start_x); + b_tty_move_cursor_x(ed->l_tty, B_TTY_POS_CURSOR, -(long long)start_x); } start_x = 0; @@ -148,14 +148,14 @@ void backspace_nl_refresh(struct line_ed *ed, struct refresh_state *state) /* the index of the first char in line_buf that needs to be reprinted. * subtract one to account for the linefeed that has since been deleted. */ - unsigned int start_x = state->r_prev_line_len - 1; + size_t start_x = state->r_prev_line_len - 1; /* the column to move the physical cursor to after it has been moved * to the previous line. * NOTE that this number includes the length of the prompt! * we add 1 to start_x to ensure that the cursor is moved to the cell * AFTER the last char of the line. */ - unsigned int new_x; + size_t new_x; line_ed_coords_to_physical_coords(ed, start_x + 1, ed->l_cursor_y, &new_x, NULL); /* the physical cursor is currently at the beginning of the line that @@ -166,7 +166,7 @@ void backspace_nl_refresh(struct line_ed *ed, struct refresh_state *state) if (ed->l_flags & LINE_ED_FULL_REPRINT) { /* next, move the physical cursor up and to the beginning of the previous line */ - unsigned int tmp_x; + size_t tmp_x; line_ed_coords_to_physical_coords(ed, 0, ed->l_cursor_y, &tmp_x, NULL); b_tty_move_cursor_y(ed->l_tty, B_TTY_POS_CURSOR, -1); b_tty_move_cursor_x(ed->l_tty, B_TTY_POS_START, tmp_x); @@ -181,7 +181,7 @@ void backspace_nl_refresh(struct line_ed *ed, struct refresh_state *state) /* now reprint all of the buffer lines, starting with the first of the * two lines that were concatenated. */ - unsigned int ydiff = 0; + size_t ydiff = 0; while (1) { print_text(ed, start_x, ed->l_cursor_y + ydiff, line_buf + start_x); @@ -220,19 +220,19 @@ void backspace_simple_refresh(struct line_ed *ed, struct refresh_state *state) size_t line_len = strcspn(line_buf, "\n"); /* the index of the first char in line_buf that needs to be reprinted */ - int start_x = ed->l_cursor_x; + size_t start_x = ed->l_cursor_x; //get_data_cursor_position(ed, &start_x, NULL); /* the distance between the first char to be reprinted and the end * of the line. * the physical cursor will be moved back by this amount after the * line is reprinted. */ - int cursor_rdelta = (int)(line_len - start_x); + long long cursor_rdelta = (long long)(line_len - start_x); if (ed->l_flags & LINE_ED_FULL_REPRINT) { if (start_x) { //fprintf(stdout, "\033[%uD", start_x); - b_tty_move_cursor_x(ed->l_tty, B_TTY_POS_CURSOR, -start_x); + b_tty_move_cursor_x(ed->l_tty, B_TTY_POS_CURSOR, -(long long)start_x); } start_x = 0; diff --git a/frontend/line-ed/refresh.h b/frontend/line-ed/refresh.h index 4efda08..af92b77 100644 --- a/frontend/line-ed/refresh.h +++ b/frontend/line-ed/refresh.h @@ -5,14 +5,14 @@ struct line_ed; struct refresh_state { /* cursor position before the update was performed (excluding the prompt) */ - unsigned int r_prev_cursor_x, r_prev_cursor_y; + size_t r_prev_cursor_x, r_prev_cursor_y; /* when a backspace results in two separate lines being combined, * this property contains the length of the first of the two combined * lines BEFORE the concotenation was performed */ - unsigned int r_prev_line_len; + size_t r_prev_line_len; }; -extern void print_text(struct line_ed *ed, unsigned int x, unsigned int y, const char *s); +extern void print_text(struct line_ed *ed, size_t x, size_t y, const char *s); extern void print_buffer(struct line_ed *ed); extern void put_refresh(struct line_ed *ed, struct refresh_state *state); extern void backspace_nl_refresh(struct line_ed *ed, struct refresh_state *state);