Fix crash when some line contains %

This commit is contained in:
Nikita Ivanov 2023-06-04 22:51:26 +02:00 committed by adnano
parent bbd82569bb
commit 9fb3ffa522
2 changed files with 7 additions and 7 deletions

12
main.c
View file

@ -110,7 +110,7 @@ int render_text(struct menu_state *state, cairo_t *cairo, const char *str,
int left_padding, int right_padding) { int left_padding, int right_padding) {
int text_width, text_height; int text_width, text_height;
get_text_size(cairo, state->font, &text_width, &text_height, NULL, 1, str); get_text_size(cairo, state->font, &text_width, &text_height, NULL, 1, "%s", str);
int text_y = (state->line_height / 2.0) - (text_height / 2.0); int text_y = (state->line_height / 2.0) - (text_height / 2.0);
if (background) { if (background) {
@ -122,7 +122,7 @@ int render_text(struct menu_state *state, cairo_t *cairo, const char *str,
cairo_move_to(cairo, x + left_padding, y + text_y); cairo_move_to(cairo, x + left_padding, y + text_y);
cairo_set_source_u32(cairo, foreground); cairo_set_source_u32(cairo, foreground);
pango_printf(cairo, state->font, 1, str); pango_printf(cairo, state->font, 1, "%s", str);
return x + text_width + left_padding + right_padding; return x + text_width + left_padding + right_padding;
} }
@ -133,7 +133,7 @@ int render_horizontal_item(struct menu_state *state, cairo_t *cairo, const char
int left_padding, int right_padding) { int left_padding, int right_padding) {
int text_width, text_height; int text_width, text_height;
get_text_size(cairo, state->font, &text_width, &text_height, NULL, 1, str); get_text_size(cairo, state->font, &text_width, &text_height, NULL, 1, "%s", str);
int text_y = (state->line_height / 2.0) - (text_height / 2.0); int text_y = (state->line_height / 2.0) - (text_height / 2.0);
if (x + left_padding + text_width > width) { if (x + left_padding + text_width > width) {
@ -148,7 +148,7 @@ int render_horizontal_item(struct menu_state *state, cairo_t *cairo, const char
cairo_move_to(cairo, x + left_padding, y + text_y); cairo_move_to(cairo, x + left_padding, y + text_y);
cairo_set_source_u32(cairo, foreground); cairo_set_source_u32(cairo, foreground);
pango_printf(cairo, state->font, 1, str); pango_printf(cairo, state->font, 1, "%s", str);
} }
return x + text_width + left_padding + right_padding; return x + text_width + left_padding + right_padding;
@ -160,7 +160,7 @@ void render_vertical_item(struct menu_state *state, cairo_t *cairo, const char *
int left_padding) { int left_padding) {
int text_height; int text_height;
get_text_size(cairo, state->font, NULL, &text_height, NULL, 1, str); get_text_size(cairo, state->font, NULL, &text_height, NULL, 1, "%s", str);
int text_y = (state->line_height / 2.0) - (text_height / 2.0); int text_y = (state->line_height / 2.0) - (text_height / 2.0);
if (background) { if (background) {
@ -172,7 +172,7 @@ void render_vertical_item(struct menu_state *state, cairo_t *cairo, const char *
cairo_move_to(cairo, x + left_padding, y + text_y); cairo_move_to(cairo, x + left_padding, y + text_y);
cairo_set_source_u32(cairo, foreground); cairo_set_source_u32(cairo, foreground);
pango_printf(cairo, state->font, 1, str); pango_printf(cairo, state->font, 1, "%s", str);
} }
void scroll_matches(struct menu_state *state) { void scroll_matches(struct menu_state *state) {

View file

@ -66,7 +66,7 @@ void get_text_size(cairo_t *cairo, const char *font, int *width, int *height,
int text_width(cairo_t *cairo, const char *font, const char *text) { int text_width(cairo_t *cairo, const char *font, const char *text) {
int text_width; int text_width;
get_text_size(cairo, font, &text_width, NULL, NULL, 1, text); get_text_size(cairo, font, &text_width, NULL, NULL, 1, "%s", text);
return text_width; return text_width;
} }