From: Christian Couder <chriscool@tuxfamily.org>
To: gitster@pobox.com
Cc: git@vger.kernel.org, apenwarr@gmail.com, Johannes.Schindelin@gmx.de
Subject: Re: [PATCH] builtin/remote: remove postfixcmp() and use suffixcmp() instead
Date: Mon, 04 Nov 2013 21:16:27 +0100 (CET) [thread overview]
Message-ID: <20131104.211627.54064800775850019.chriscool@tuxfamily.org> (raw)
In-Reply-To: <xmqqbo20ynxs.fsf@gitster.dls.corp.google.com>
From: Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH] builtin/remote: remove postfixcmp() and use suffixcmp() instead
Date: Mon, 04 Nov 2013 11:19:43 -0800
> Christian Couder <chriscool@tuxfamily.org> writes:
>
>> Commit 8cc5b290 (git merge -X<option>, 25 Nov 2009) introduced
>> suffixcmp() with nearly the same implementation as postfixcmp()
>> that already existed since commit 211c8968 (Make git-remote a
>> builtin, 29 Feb 2008).
>
> This "nearly the same" piqued my curiosity ;-)
Yeah, I realize I should have explained the differences.
> The postfixcmp() you are removing will say "f" > ".txt" while
> suffixcmp() will say "f" < ".txt".
>
> As postfixcmp() is only used to compare for equality, the
> distinction does not matter and does not affect the correctness of
> this patch, but I am not sure which answer is more correct.
Yeah, that's also my opinion. I am not even sure if there is one more
correct answer than the other.
> I do not think anybody sane uses prefixcmp() or suffixcmp() for
> anything but checking with zero; in other words, I suspect that all
> uses of Xcmp() can be replaced with !!Xcmp(), so as a separate
> clean-up patch, we may at least want to make it clear that the
> callers should not expect anything but "does str have sfx as its
> suffix, yes or no?" by doing something like this:
>
> int suffixcmp(const char *str, const char *suffix)
> {
> int len = strlen(str), suflen = strlen(suffix);
> if (len < suflen)
> return -1;
> else
> - return strcmp(str + len - suflen, suffix);
> + return !!strcmp(str + len - suflen, suffix);
> }
>
> I am not absolutely sure about doing the same to prefixcmp(),
> though. It could be used for ordering, even though no existing code
> seems to do so.
I agree.
I will resend a 2 patch long patch series where the first patch will
have an improved commit message and the second patch will do what you suggest above.
Thanks,
Christian.
next prev parent reply other threads:[~2013-11-04 20:16 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-03 20:13 [PATCH] builtin/remote: remove postfixcmp() and use suffixcmp() instead Christian Couder
2013-11-04 17:56 ` Jonathan Nieder
2013-11-04 19:19 ` Junio C Hamano
2013-11-04 20:16 ` Christian Couder [this message]
2013-11-04 20:21 ` Junio C Hamano
2013-11-04 22:17 ` Johannes Schindelin
2013-11-04 22:37 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131104.211627.54064800775850019.chriscool@tuxfamily.org \
--to=chriscool@tuxfamily.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=apenwarr@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).