[PATCH 1/1] RFC: git: update to v2.41.0-rc2

Jason A. Donenfeld Jason at zx2c4.com
Fri May 26 13:42:55 UTC 2023


On Fri, May 26, 2023 at 1:07 PM Christian Hesse <list at eworm.de> wrote:
> @@ -564,9 +566,11 @@ char *get_mimetype_for_filename(const char *filename)
>         while (fgets(line, sizeof(line), file)) {
>                 if (!line[0] || line[0] == '#')
>                         continue;
> -               mimetype = strtok_r(line, " \t\r\n", &saveptr);
> -               while ((token = strtok_r(NULL, " \t\r\n", &saveptr))) {
> -                       if (!strcasecmp(ext, token)) {
> +               string_list_split_in_place(&list, line, " \t\r\n", -1);
> +               string_list_remove_empty_items(&list, 0);
> +               mimetype = list.items[0].string;
> +               for (i = 1; i < list.nr; i++) {
> +                       if (!strcasecmp(ext, list.items[i].string)) {
>                                 fclose(file);
>                                 return xstrdup(mimetype);
>                         }

What's the motivation here exactly? string_list allocates, I believe,
for its items array even if you set nostrdup, so that code probably
needs a free path. But also, what's the point of doing the splitting
up front and then iterating, rather than just munging the string like
usual with strtok_r?

Jason


More information about the CGit mailing list