Phillip Wood <phillip.w...@talktalk.net> writes:
> On 08/03/18 17:53, Junio C Hamano wrote:
>> Phillip Wood <phillip.w...@talktalk.net> writes:
>>> and use a leading '-' for inversion. I'm tempted to keep supporting 'n-'
>>> to mean everything from 'n' to the last line though.
>> Thanks for double checking. It would be a better endgame to follow
>> up with an update to existing "range selection" code to also support
>> "n-", if you go that route.
> I'm afraid I'm not sure exactly what you're suggesting. At the moment
> the range selection code is in the first patch and supports incomplete
> ranges. Are you suggesting that support for incomplete ranges should be
> in a separate patch or have I misunderstood?
My observation of the situation behind my reasoning is:
- There is an existing UI that uses "-X" to mean "exclude what
matches X" and that was the reason why you decided to follow suit
instead of using "^X" for inversion of X.
- Such an existing UI would not have used "-X" to mean "the first
possible choice thru X". You will lose that from your new thing
and you accepted that.
- It is likely (I did not check, though) that the existing UI would
not have used "Y-" to mean "starting from Y all the possible
choices thru to the end", but that is merely for symmetry with
the lack (inability to use) of "-X". There is no fundamental
reason why "Y-" cannot mean that, and you are tempted to allow do
so in your new thing for the same reason.
So if we are going to have "N-" to mean "everything from N to the
last line", then the same "Starting at N to the end of the all the
possible choices" should be allowed in the existing UI (i.e. the one
that forced you to give up "^X" for the sake of consistency) for the
same consistency reasons, no?
For that, if you want to keep the "n-" you did in your first patch,
the most logical thing is to have a preparatory enhancement to teach
"N-" to list_and_choose(), and then build your series on top. Or
you can do without such a change to list_and_choose() in your series,
in which case, you drop "n-" support and then at the very end after
the series settles, add "n-" support to the new code in this series
and to list_and_choose() at the same time in a follow-up patch.