Re: [PATCH 1/2] help: add help_unknown_ref
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 1, 2013, 22:12 UTC
- Message-ID
- <7vobcu4af6.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <51818CFA.9030305@gmail.com>
Vikrant Varma <vikrant.varma94@gmail.com> writes:
Show 11 quoted lines
> On 02-05-2013 02:02, Ramkumar Ramachandra wrote:
>>> ref_cb.similar_refs has already been defined. The compiler won't let me
>>> assign to it unless I cast first. However, I think compound literals are a
>>> C99/gcc feature. Is this better?
>>>
>>> struct similar_ref_cb ref_cb = {ref, STRING_LIST_INIT_NODUP};
>>
>> As Johannes pointed out, ref is a variable and that is problematic.
>> Leave the cast on: I didn't notice the compiler warning in my head.
>>
> Is it okay to use a compound literal? It's not supported in C89.Building on top of what was suggested in the other message, the helper could be made more reusable by doing something like this:
int suggest_misspelt_ref(const char *ref, struct string_list *suggested);
and the caller can do
if (!commit) {
struct string_list suggested = STRING_LIST_INIT;
if (suggest_misspelt_ref(argv[1], &suggested)) {
... Did you mean one of these??? ...
string_list_clear(&suggested);
}
die(_("'%s' is not something we can merge'), argv[1]);
}So I think this point is moot. Of course, similar_ref_cb needs to be updated to keep a pointer to an existing string_list, not an instance of its own string_list.