On Thu, Sep 06, 2018 at 05:10:04PM +0200, Ævar Arnfjörð Bjarmason wrote: > > seen = unsorted_string_list_lookup(&cmd_list, *argv[0]); > > if (seen) { > > for (i = 0; i < cmd_list.nr; i++) { > > struct string_list *item = cmd_list.items[i]; > > > > strbuf_addf(&sb, " %s", item->string); > > if (item == seen) > > strbuf_add(&sb, " <=="); > > strbuf_addch(&sb, '\n'); > > } > > /* We never added this to the list, but we were about to */ > > strbuf_addch(" %s\n", seen->string); > > die(...); > > } > > > > I guess it's not that far off of yours. Not using words to describe the > > loop entry and exit points avoids translation, which avoids notes to > > translators, which is most of what makes your patch long. ;) > > This still needs translation for RTL languages. I.e. they'd want to > print out the equivalent of "%s " followed by "==> %s ". We happen to > (unfortunately) not carry such a language yet, but it's worth > future-proofing output as we add it in case we get one. I'd have thought even in an RTL language that something like an "I'm pointing to this" sign wouldn't matter (i.e., an LTR language person, I'd be fine with either "==> %s" or "%s <=="). But obviously I have no experience in the matter, so I'd defer to people who read RTL (or at least have handled i18n for it before). -Peff