diff --git a/steam-runtime-tools/utils-internal.h b/steam-runtime-tools/utils-internal.h index 732a9837da31c81c20566ded8f5815d3afddd601..a7d8e098ce8c1a2feaa7dd50ab10d5f564169e9f 100644 --- a/steam-runtime-tools/utils-internal.h +++ b/steam-runtime-tools/utils-internal.h @@ -604,6 +604,23 @@ gboolean _srt_string_read_fd_until_eof (GString *buf, int fd, GError **error); +/* + * _srt_string_ends_with_len: + * @str: A #GString + * @suffix: A suffix + * @len: Length of suffix + * + * Returns: %TRUE if @str ends with @suffix + */ +static inline gboolean +_srt_string_ends_with_len (const GString *str, + const char *suffix, + gsize len) +{ + return (str->len >= len + && memcmp (str->str + str->len - len, suffix, len) == 0); +} + /* * _srt_string_ends_with: * @str: A #GString @@ -615,10 +632,7 @@ static inline gboolean _srt_string_ends_with (const GString *str, const char *suffix) { - size_t len = strlen (suffix); - - return (str->len >= len - && strcmp (str->str + str->len - len, suffix) == 0); + return _srt_string_ends_with_len (str, suffix, strlen (suffix)); } gboolean _srt_is_identifier (const char *name);