diff options
author | Simon Ser <contact@emersion.fr> | 2023-02-28 16:43:05 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2023-04-14 18:34:54 +0200 |
commit | 08c1946d71039e583696842c3558b337aede1cbf (patch) | |
tree | 3873db2edfb31146bd6cd17dae63f068aef34f05 /common/pango.c | |
parent | common/gesture: use format_str() (diff) | |
download | sway-08c1946d71039e583696842c3558b337aede1cbf.tar.gz sway-08c1946d71039e583696842c3558b337aede1cbf.tar.zst sway-08c1946d71039e583696842c3558b337aede1cbf.zip |
Use format_str() throughout
Diffstat (limited to 'common/pango.c')
-rw-r--r-- | common/pango.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/common/pango.c b/common/pango.c index e04bf80f..288569b3 100644 --- a/common/pango.c +++ b/common/pango.c | |||
@@ -84,18 +84,11 @@ void get_text_size(cairo_t *cairo, const PangoFontDescription *desc, int *width, | |||
84 | int *baseline, double scale, bool markup, const char *fmt, ...) { | 84 | int *baseline, double scale, bool markup, const char *fmt, ...) { |
85 | va_list args; | 85 | va_list args; |
86 | va_start(args, fmt); | 86 | va_start(args, fmt); |
87 | // Add one since vsnprintf excludes null terminator. | 87 | char *buf = vformat_str(fmt, args); |
88 | int length = vsnprintf(NULL, 0, fmt, args) + 1; | ||
89 | va_end(args); | 88 | va_end(args); |
90 | |||
91 | char *buf = malloc(length); | ||
92 | if (buf == NULL) { | 89 | if (buf == NULL) { |
93 | sway_log(SWAY_ERROR, "Failed to allocate memory"); | ||
94 | return; | 90 | return; |
95 | } | 91 | } |
96 | va_start(args, fmt); | ||
97 | vsnprintf(buf, length, fmt, args); | ||
98 | va_end(args); | ||
99 | 92 | ||
100 | PangoLayout *layout = get_pango_layout(cairo, desc, buf, scale, markup); | 93 | PangoLayout *layout = get_pango_layout(cairo, desc, buf, scale, markup); |
101 | pango_cairo_update_layout(cairo, layout); | 94 | pango_cairo_update_layout(cairo, layout); |
@@ -104,6 +97,7 @@ void get_text_size(cairo_t *cairo, const PangoFontDescription *desc, int *width, | |||
104 | *baseline = pango_layout_get_baseline(layout) / PANGO_SCALE; | 97 | *baseline = pango_layout_get_baseline(layout) / PANGO_SCALE; |
105 | } | 98 | } |
106 | g_object_unref(layout); | 99 | g_object_unref(layout); |
100 | |||
107 | free(buf); | 101 | free(buf); |
108 | } | 102 | } |
109 | 103 | ||
@@ -125,18 +119,11 @@ void render_text(cairo_t *cairo, const PangoFontDescription *desc, | |||
125 | double scale, bool markup, const char *fmt, ...) { | 119 | double scale, bool markup, const char *fmt, ...) { |
126 | va_list args; | 120 | va_list args; |
127 | va_start(args, fmt); | 121 | va_start(args, fmt); |
128 | // Add one since vsnprintf excludes null terminator. | 122 | char *buf = vformat_str(fmt, args); |
129 | int length = vsnprintf(NULL, 0, fmt, args) + 1; | ||
130 | va_end(args); | 123 | va_end(args); |
131 | |||
132 | char *buf = malloc(length); | ||
133 | if (buf == NULL) { | 124 | if (buf == NULL) { |
134 | sway_log(SWAY_ERROR, "Failed to allocate memory"); | ||
135 | return; | 125 | return; |
136 | } | 126 | } |
137 | va_start(args, fmt); | ||
138 | vsnprintf(buf, length, fmt, args); | ||
139 | va_end(args); | ||
140 | 127 | ||
141 | PangoLayout *layout = get_pango_layout(cairo, desc, buf, scale, markup); | 128 | PangoLayout *layout = get_pango_layout(cairo, desc, buf, scale, markup); |
142 | cairo_font_options_t *fo = cairo_font_options_create(); | 129 | cairo_font_options_t *fo = cairo_font_options_create(); |
@@ -146,5 +133,6 @@ void render_text(cairo_t *cairo, const PangoFontDescription *desc, | |||
146 | pango_cairo_update_layout(cairo, layout); | 133 | pango_cairo_update_layout(cairo, layout); |
147 | pango_cairo_show_layout(cairo, layout); | 134 | pango_cairo_show_layout(cairo, layout); |
148 | g_object_unref(layout); | 135 | g_object_unref(layout); |
136 | |||
149 | free(buf); | 137 | free(buf); |
150 | } | 138 | } |