[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