On Tue, Apr 25, 2023 at 02:26:17AM -0400, Jeff King wrote: > On Mon, Apr 24, 2023 at 06:20:26PM -0400, Taylor Blau wrote: > > > string_list_split_in_place() is not a perfect drop-in replacement > > for `strtok_r()`, particularly if the caller is processing a string with > > an arbitrary number of tokens, and wants to process each token one at a > > time. > > > > But there are no instances of this in Git's tree which are more > > well-suited to `strtok_r()` than the friendlier > > `string_list_in_place()`, so ban `strtok_r()`, too. > > For true incremental left-to-right parsing, strcspn() is probably a > better solution. We could mention that here in case anybody digs up the > commit after getting a "banned function" error. > > I'm tempted to say that this thread could serve the same function, but > I'm not sure where people turn to for answers (I find searching the list > about as easy as "git log -S", but then I've invested a lot of effort in > my list archive tooling :) ). Personally, between what's already in the patch message and this discussion on the list, I think that folks would have enough guidance on how to do things right. But if others feel like we could or should be more rigid here and update the commit message to say something like "if you're scanning from left-to-right, you could use strtok_r(), or strcspn() instead", but TBH I think there are a gazillion different ways to do this task, so I don't know that adding another item to that list substantially changes things. Thanks, Taylor