From: Drew Adams <drew.adams@oracle.com>
To: Davis Herring <herring@lanl.gov>
Cc: emacs-devel@gnu.org
Subject: RE: char equivalence classes in search - why not symmetric?
Date: Tue, 1 Sep 2015 12:09:54 -0700 (PDT) [thread overview]
Message-ID: <e72d8506-1856-404a-adc5-e32b0bb972b4@default> (raw)
In-Reply-To: <55E5F112.3090908@lanl.gov>
> >> Because having both input characters mean the same thing
> >> uselessly deprives the user of expressive power.
> >
> > Examples/arguments/reasons, please. IOW, prove it.
>
> I'm sorry: I thought it was obvious. For case folding, there are three
> sets of characters that might be considered a match: [a], [A], and [aA].
> The default Emacs behavior is to make "a" mean [aA] and "A" mean [A].
> For the (relatively rare) case in which [a] is desired, one can turn
> case-fold-search off (e.g., with M-c). Then you gain [a] and lose [aA]
> as a choice (you can't have all three from just two characters!).
You are just echoing what the implementation does, not giving
any supporting reasons for it.
"You can't have all three from just two characters" sounds
important - except that it doesn't mean anything.
It is quite possible for the behavior to be any of these:
a matches a only
a matches a and A
A matches A only
A matches a and A
The current implementation does not provide for the last
possibility. In that, it can be argued that it "deprives
the user of expressive power".
But I won't bother making that argument for case folding.
I am not arguing for a change now in the longstanding
case-fold behavior. I am arguing that we get this right
for char folding.
> With your suggestion (which addresses only case-fold-search, of course),
> we would have only [aA] available whether you typed "a" or "A". That is
> the less expressive power: the semantically distinct options available
> have been reduced.
That's your suggestion perhaps. It's certainly not mine.
I suggest letting the user match a to a, a to [aA], A to A, and
A to [aA]. That is more expressive power, not less. With it,
the "semantically distinct options available" have been increased.
> Of course, with more than one character there are yet other
> possibilities: for two characters there are 9, of which "ab" gives you
> [aA][bB] and each of the other three permutations give one
> (case-sensitive) match each. 4/9 isn't great, but it's better than 1/9!
See above. You are reducing possibilities, not expanding them.
> > IMO, more users have been tripped up than helped by the rule
> > that "An upper-case letter anywhere in the incremental search
> > string makes the search case-sensitive." (emacs) Search Case.
>
> How did that upper-case letter get there? Commands like C-w are careful
> not to add uppercase letters if there aren't already some. So the user
> must have typed it explicitly, and so they were paying attention to case
> and have no need for a case-insensitive search. The only harm is if
> they are inconsistent in their typing -- during something as brief as
> isearch.
A char in a search string can "get there" because a user typed it,
and that can be because for that user it is easy to type. Or it can
get there from a previous search (same Isearch invocation or not).
Or it can "get there" by yanking copied text.
Try typing or pasting "réduction" to Google, and see if it ignores
hits such as "reduction". Good luck with that. Silly Google,
missing the "obvious".
It should be obvious that it can be useful to match the pattern
"réduction" against "reduction", just as it can be useful to
match the pattern "reduction" against "réduction" (and "réduction"
against "réduction" and "reduction" against "reduction").
To remove this possibility, thus reducing user expressiveness,
you really should come up with a reason.
next prev parent reply other threads:[~2015-09-01 19:09 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-01 15:46 char equivalence classes in search - why not symmetric? Drew Adams
2015-09-01 15:52 ` Davis Herring
2015-09-01 16:51 ` Stefan Monnier
2015-09-01 17:51 ` Drew Adams
2015-09-01 18:40 ` Davis Herring
2015-09-01 19:09 ` Drew Adams [this message]
2015-09-01 22:45 ` Juri Linkov
2015-09-02 0:33 ` Drew Adams
2015-09-01 20:10 ` Stephen J. Turnbull
2015-09-01 16:16 ` Eli Zaretskii
[not found] ` <<38061f42-eaf1-47c6-b74d-f676ac952b18@default>
[not found] ` <<83r3miatvl.fsf@gnu.org>
[not found] ` <<21998.29683.916211.867479@a1i15.kph.uni-mainz.de>
[not found] ` <<9A972800-D8F0-4DA8-877E-07D5BDC2E1F9@gmail.com>
2015-09-01 17:50 ` Drew Adams
2015-09-01 18:15 ` Eli Zaretskii
2015-09-01 18:46 ` Drew Adams
2015-09-01 19:19 ` Eli Zaretskii
2015-09-01 20:15 ` Drew Adams
2015-09-08 5:36 ` Ulrich Mueller
2015-09-08 6:04 ` Jean-Christophe Helary
2015-09-08 13:31 ` Stephen J. Turnbull
2015-09-08 14:24 ` Drew Adams
2015-09-08 15:21 ` Stephen J. Turnbull
2015-09-08 16:58 ` Drew Adams
2015-09-08 17:38 ` Stephen J. Turnbull
2015-09-09 22:52 ` Drew Adams
2015-09-10 3:12 ` Drew Adams
2015-09-10 21:46 ` Drew Adams
2015-09-08 20:15 ` Richard Stallman
2015-09-08 20:15 ` Richard Stallman
2015-09-08 21:25 ` Drew Adams
2015-09-09 15:07 ` Richard Stallman
2015-09-09 15:21 ` Drew Adams
2015-09-10 2:03 ` Richard Stallman
2015-09-10 3:23 ` Drew Adams
2015-09-11 10:28 ` Richard Stallman
2015-09-11 13:28 ` Stefan Monnier
2015-09-11 16:33 ` Drew Adams
2015-09-11 20:59 ` Juri Linkov
2015-09-11 23:11 ` Drew Adams
2015-09-12 15:28 ` Richard Stallman
2015-09-11 16:31 ` Drew Adams
2015-09-11 10:28 ` Richard Stallman
2015-09-11 16:31 ` Drew Adams
2015-09-12 15:29 ` Richard Stallman
[not found] ` <<8cf269bc-69d8-4752-8506-de8d992512e1@default>
[not found] ` <<E1ZZPIS-0005rf-DJ@fencepost.gnu.org>
2015-09-08 21:46 ` Drew Adams
[not found] ` <<E1ZZPIT-0005s6-ST@fencepost.gnu.org>
[not found] ` <<da54a6cb-90eb-481d-aa20-acfad612e709@default>
[not found] ` <<E1ZZgxz-0006X2-Bg@fencepost.gnu.org>
[not found] ` <<cb107072-7f90-41fb-9aff-075d50eb65bb@default>
[not found] ` <<E1ZZrCm-0001x4-9a@fencepost.gnu.org>
[not found] ` <<4f3b1db3-d3d2-480f-8662-fbf7c74aa67f@default>
[not found] ` <<E1ZaLZR-0002Bf-8q@fencepost.gnu.org>
[not found] ` <<e77f8e7b-581f-436d-816a-c8daed734ff5@default>
[not found] ` <<E1ZamkM-0005d4-RN@fencepost.gnu.org>
2015-09-12 15:59 ` Drew Adams
2015-09-08 13:39 ` Drew Adams
2015-09-08 21:19 ` Juri Linkov
2015-09-09 15:07 ` Richard Stallman
2015-09-08 15:47 ` Eli Zaretskii
2015-09-08 16:57 ` Drew Adams
2015-09-08 21:20 ` Juri Linkov
2015-09-09 2:42 ` Eli Zaretskii
2015-09-09 11:23 ` Artur Malabarba
2015-09-09 13:32 ` Drew Adams
2015-09-09 15:12 ` Richard Stallman
2015-09-11 20:50 ` Juri Linkov
[not found] ` <<CAAdUY-JMQVsRFku8nwX8JcA9k6Y9sHWoVL6ZC60RHnjoj0cd+Q@mail.gmail.com>
[not found] ` <<E1ZZh2a-0003u6-Fj@fencepost.gnu.org>
2015-09-09 15:22 ` Drew Adams
2015-09-10 2:03 ` Richard Stallman
2015-09-10 3:15 ` Drew Adams
2015-09-10 6:57 ` David Kastrup
2015-09-10 15:02 ` Drew Adams
2015-09-10 15:50 ` Richard Stallman
2015-09-08 20:09 ` Richard Stallman
2015-09-08 21:00 ` Drew Adams
2015-09-09 15:06 ` Richard Stallman
2015-09-08 21:47 ` Ulrich Mueller
2015-09-02 15:34 ` Richard Stallman
2015-09-02 15:56 ` Drew Adams
2015-09-02 16:05 ` Eli Zaretskii
2015-09-02 21:51 ` Jean-Christophe Helary
2015-09-02 22:15 ` Drew Adams
2015-09-03 15:37 ` Richard Stallman
2015-09-03 2:41 ` Eli Zaretskii
2015-09-03 3:08 ` Jean-Christophe Helary
2015-09-03 7:28 ` Artur Malabarba
2015-09-03 17:15 ` Drew Adams
2015-09-07 13:52 ` Nix
2015-09-07 17:07 ` Drew Adams
2015-09-07 23:23 ` Nix
2015-09-08 2:17 ` Richard Stallman
2015-09-03 14:33 ` Eli Zaretskii
2015-09-03 15:00 ` Stefan Monnier
2015-09-03 16:15 ` Drew Adams
2015-09-03 16:23 ` Eli Zaretskii
2015-09-03 16:46 ` Drew Adams
2015-09-02 16:10 ` Artur Malabarba
2015-09-03 19:49 ` Pip Cet
[not found] <<2a7b9134-af2a-462d-af6c-d02bad60bbe8@default>
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e72d8506-1856-404a-adc5-e32b0bb972b4@default \
--to=drew.adams@oracle.com \
--cc=emacs-devel@gnu.org \
--cc=herring@lanl.gov \
/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.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).