Fix crash when some line contains % - wmenu - 🔧 fork of wmenu
 (HTM) git clone git@git.drkhsh.at/wmenu.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 9fb3ffa5221e91f61ad5476c5cf226ab8789ed3e
 (DIR) parent bbd82569bb5dd72fa98b8229f1ca137551ec1bdb
 (HTM) Author: Nikita Ivanov <nikita.vyach.ivanov@gmail.com>
       Date:   Sun,  4 Jun 2023 22:51:26 +0200
       
       Fix crash when some line contains %
       
       Diffstat:
         M main.c                              |      12 ++++++------
         M pango.c                             |       2 +-
       
       2 files changed, 7 insertions(+), 7 deletions(-)
       ---
 (DIR) diff --git a/main.c b/main.c
       @@ -110,7 +110,7 @@ int render_text(struct menu_state *state, cairo_t *cairo, const char *str,
                        int left_padding, int right_padding) {
        
                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);
        
                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_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;
        }
       @@ -133,7 +133,7 @@ int render_horizontal_item(struct menu_state *state, cairo_t *cairo, const char 
                        int left_padding, int right_padding) {
        
                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);
        
                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_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;
       @@ -160,7 +160,7 @@ void render_vertical_item(struct menu_state *state, cairo_t *cairo, const char *
                        int left_padding) {
        
                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);
        
                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_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) {
 (DIR) diff --git a/pango.c b/pango.c
       @@ -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;
       -        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;
        }