On Thu, Sep 06, 2018 at 03:12:03PM -0400, Jeff King wrote: > On Thu, Sep 06, 2018 at 10:59:42AM -0400, Jeff King wrote: > > > > + string_list_append(&cmd_list, *argv[0]); > > > > This will create an unsorted list. You'd have to use > > string_list_insert() here for a sorted list, or > > unsorted_string_list_has_string() in the earlier call. > > > > It's unfortunate that string_list makes this so easy to get wrong. > > This is getting really off-topic (since it sounds like we'd probably > want to use an ordered list here), but is it crazy to think that > basically every use of an ordered string list could just be a hashmap? Er, oops, I used "ordered" to mean two things here. I meant that the code regarding aliases would use an _unsorted_ list (where we care about keeping the original insertion order). But what I think is harmful is a _sorted_ list, because of the "accidentally quadratic" nature, and because it's easy to call its functions on an unsorted list. -Peff