unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#20351: isearch-lax-whitespace should be customizable variable
@ 2015-04-16 22:49 Ken T Takusagawa
  2015-06-29 22:30 ` Juri Linkov
  2022-04-18 11:36 ` Lars Ingebrigtsen
  0 siblings, 2 replies; 19+ messages in thread
From: Ken T Takusagawa @ 2015-04-16 22:49 UTC (permalink / raw)
  To: 20351

This bug report will be sent to the Bug-GNU-Emacs mailing list
and the GNU bug tracker at debbugs.gnu.org.  Please check that
the From: line contains a valid email address.  After a delay of up
to one day, you should receive an acknowledgment at that address.

Please write in English if possible, as the Emacs maintainers
usually do not have translators for other languages.

Please describe exactly what actions triggered the bug, and
the precise symptoms of the bug.  If you can, give a recipe
starting from `emacs -Q':

M-x customize-variable
does NOT list isearch-lax-whitespace as a customizable variable

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/usr/share/emacs/24.3/etc/DEBUG.


In GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7)
 of 2014-03-07 on lamiak, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11501000
System Description:	Ubuntu 14.04.2 LTS

Configured using:
 `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var/lib' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes'
 '--with-x-toolkit=gtk3' '--with-toolkit-scroll-bars'
 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector
 --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall'
 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro'
 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  show-paren-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <right> <backspace> A <up> C-a <tab> <down> 
C-a <tab> <down> <tab> <down> <tab> <down> <tab> C-n 
<return> SPC SPC e l s e <return> SPC SPC SPC SPC <tab> 
e c h o SPC " C-a C-k <tab> e r r o r SPC 1 SPC " U 
n r e c o g n i z e d SPC o r i g i n a l SPC I S O 
" <return> <tab> f i <tab> C-r SPC SPC <up> <up> <up> 
<up> C-s SPC SPC C-s C-s C-s SPC C-g <up> <down> C-a 
C-s SPC SPC C-g C-g C-g <escape> x i n <backspace> 
s e r <tab> <backspace> a <tab> - t o <tab> l a <tab> 
<return> <up> <up> C-s SPC SPC <down> <down> C-s C-s 
C-s C-s <return> <backspace> C-x C-s C-h f i s e <tab> 
- t <tab> <backspace> t o <tab> l a <tab> <return> 
<up> C-h v i s e <tab> l a <tab> x - w h <tab> <return> 
<up> <up> <escape> x c u s t o <tab> i <tab> - v <tab> 
<return> i s e <tab> l a x - w h <tab> <tab> <tab> 
<tab> C-g C-g <help-echo> <help-echo> <down-mouse-1> 
<mouse-2> <down-mouse-1> <mouse-1> C-x 1 C-x 2 <escape> 
< C-s c u s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s 
C-s C-s C-s C-s C-s C-s C-s C-s C-s <up> C-s d e v 
<backspace> f v a r C-s C-s C-s C-s C-s C-s C-s <down> 
<down> <down> <down> <down> <down> <down> <down> <up> 
<right> <down-mouse-1> <mouse-1> ` x <down-mouse-1> 
<mouse-1> M-x r e p o <tab> r <tab> <return>

Recent messages:
Type "q" in help window to restore its previous buffer.
Making completion list...

Quit [2 times]
uncompressing isearch.el.gz...done
Note: file is write protected
Mark set
Mark saved where search started [2 times]
call-interactively: Buffer is read-only: #<buffer isearch.el.gz> [2 times]
Making completion list...

Load-path shadows:
/usr/share/emacs/24.3/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils jka-compr find-func cus-edit wid-edit help-mode
easymenu help-fns misearch multi-isearch vc-git sh-script smie
executable paren cus-start cus-load time-date tooltip ediff-hook
vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list newcomment lisp-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-04-16 22:49 bug#20351: isearch-lax-whitespace should be customizable variable Ken T Takusagawa
@ 2015-06-29 22:30 ` Juri Linkov
  2015-06-29 23:10   ` Artur Malabarba
  2015-06-29 23:14   ` Drew Adams
  2022-04-18 11:36 ` Lars Ingebrigtsen
  1 sibling, 2 replies; 19+ messages in thread
From: Juri Linkov @ 2015-06-29 22:30 UTC (permalink / raw)
  To: Ken T Takusagawa; +Cc: 20351

> M-x customize-variable
> does NOT list isearch-lax-whitespace as a customizable variable

I believe both ‘isearch-lax-whitespace’ and ‘character-fold-search’
should be customizable.  bug#11378 proposed a patch that adds a new
user variable to customize all such search parameters:

(defcustom isearch-keep-mode-variables nil
  "A set of search variables to keep between different searches.
When a search variable is customized to exist in this set, then
starting a new search doesn't reset the corresponding isearch variable
to its default value, thus keeping the value from the previous search
\(changed using toggling commands)."
  :type '(set (const :tag "Case folding" isearch-case-fold-search)
	      (const :tag "Character folding" character-fold-search)
	      (const :tag "Invisible text" isearch-invisible)
	      (const :tag "Filters" isearch-filter-predicate)
	      (const :tag "Lax whitespace" isearch-lax-whitespace)
	      (const :tag "Regexp lax whitespace" isearch-regexp-lax-whitespace))
  :group 'isearch)





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-06-29 22:30 ` Juri Linkov
@ 2015-06-29 23:10   ` Artur Malabarba
  2015-06-30 20:52     ` Juri Linkov
  2015-06-29 23:14   ` Drew Adams
  1 sibling, 1 reply; 19+ messages in thread
From: Artur Malabarba @ 2015-06-29 23:10 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 20351, Ken T Takusagawa

[-- Attachment #1: Type: text/plain, Size: 1376 bytes --]

On Jun 29, 2015 11:30 PM, "Juri Linkov" <juri@linkov.net> wrote:
>
> > M-x customize-variable
> > does NOT list isearch-lax-whitespace as a customizable variable
>
> I believe [...] ‘character-fold-search’
> should be customizable.

As long as people understand the implementation is still subject to change,
and that variable's existence isn't assured.

> (defcustom isearch-keep-mode-variables nil
>   "A set of search variables to keep between different searches.
> When a search variable is customized to exist in this set, then
> starting a new search doesn't reset the corresponding isearch variable
> to its default value, thus keeping the value from the previous search
> \(changed using toggling commands)."
>   :type '(set (const :tag "Case folding" isearch-case-fold-search)
>               (const :tag "Character folding" character-fold-search)
>               (const :tag "Invisible text" isearch-invisible)
>               (const :tag "Filters" isearch-filter-predicate)
>               (const :tag "Lax whitespace" isearch-lax-whitespace)
>               (const :tag "Regexp lax whitespace"
isearch-regexp-lax-whitespace))
>   :group 'isearch)

Though this is not strictly in conflict with turning the individual
variables into defcustoms, I think it's a bit in ideological conflict, and
we should probably pick one of the two.

[-- Attachment #2: Type: text/html, Size: 1771 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-06-29 22:30 ` Juri Linkov
  2015-06-29 23:10   ` Artur Malabarba
@ 2015-06-29 23:14   ` Drew Adams
  1 sibling, 0 replies; 19+ messages in thread
From: Drew Adams @ 2015-06-29 23:14 UTC (permalink / raw)
  To: Juri Linkov, Ken T Takusagawa; +Cc: 20351

> I believe both ‘isearch-lax-whitespace’ and ‘character-fold-search’
> should be customizable.  bug#11378 proposed a patch that adds a new
> user variable to customize all such search parameters:
> 
> (defcustom isearch-keep-mode-variables nil
>   "A set of search variables to keep between different searches.
> When a search variable is customized to exist in this set, then
> starting a new search doesn't reset the corresponding isearch
> variable to its default value, thus keeping the value from the
> previous search (changed using toggling commands)." ...

FWIW, I agree (strongly) that some such feature is desirable.
I think you and I have discussed this a bit before.

Isearch+ has this feature, in a different form.  There is option
`isearchp-toggle-option-flag' and its associated toggle command.

  Non-nil means Isearch toggling commands can affect option values.
  If nil, the option value remains unchanged - the effect is temporary.

  Applies to toggle commands for behavior that has an associated user
  option.  Currently this means `M-s i' (`isearch-toggle-invisible')
  and `M-c' (`isearch-toggle-case-fold').

The option determines whether commands that toggle behavior also
toggle an associated user option.  For such commands, a prefix arg
flips the behavior, as if `isearchp-toggle-option-flag' were
toggled temporarily.

You can toggle this option itself, using `M-s v'
(`isearchp-toggle-option-toggle').

I mention this approach, but your suggestion sounds good too.

The point is to let users decide whether toggling the state (for
any given state attribute) also toggles the option value - so that
the effect remains after Isearch is finished.  And to let them
override their preference temporarily (e.g., with a prefix arg).

What you have added is the ability for users to pick which options
to put under the sway of something like `isearchp-toggle-option-flag',
IOW, you have in effect, provided a `isearchp-toggle-option-flag'
for each togglable option separately.  And that sounds like a good
thing, a priori.

I'd propose combining your suggestion with the temporary-flipping
behavior I describe: a prefix arg (or whatever) lets a user
temporarily change her mind about the `isearch-keep-mode-variables'
setting for that toggle: if the option is not listed in `i-s-k-m-v'
then `C-u' toggles the option; if the option is listed there then
`C-u' does not toggle the option (it toggles the state/behavior
only for the current Isearch duration).





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-06-29 23:10   ` Artur Malabarba
@ 2015-06-30 20:52     ` Juri Linkov
  2015-06-30 21:05       ` Artur Malabarba
  0 siblings, 1 reply; 19+ messages in thread
From: Juri Linkov @ 2015-06-30 20:52 UTC (permalink / raw)
  To: Artur Malabarba; +Cc: 20351, Ken T Takusagawa

>> (defcustom isearch-keep-mode-variables nil
>>   "A set of search variables to keep between different searches.
>> When a search variable is customized to exist in this set, then
>> starting a new search doesn't reset the corresponding isearch variable
>> to its default value, thus keeping the value from the previous search
>> \(changed using toggling commands)."
>>   :type '(set (const :tag "Case folding" isearch-case-fold-search)
>>               (const :tag "Character folding" character-fold-search)
>>               (const :tag "Invisible text" isearch-invisible)
>>               (const :tag "Filters" isearch-filter-predicate)
>>               (const :tag "Lax whitespace" isearch-lax-whitespace)
>>               (const :tag "Regexp lax whitespace" isearch-regexp-lax-whitespace))
>>   :group 'isearch)
>
> Though this is not strictly in conflict with turning the individual
> variables into defcustoms, I think it's a bit in ideological conflict, and
> we should probably pick one of the two.

Would it be better to pollute the namespace with N*M more customizable variables
like ‘isearch-keep-case-fold-search’, ‘isearch-keep-lax-whitespace’,
‘isearch-initial-case-fold-search’, ‘isearch-initial-lax-whitespace’, I'm not sure.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-06-30 20:52     ` Juri Linkov
@ 2015-06-30 21:05       ` Artur Malabarba
  2015-07-01 22:30         ` Juri Linkov
  0 siblings, 1 reply; 19+ messages in thread
From: Artur Malabarba @ 2015-06-30 21:05 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 20351, Ken T Takusagawa

2015-06-30 21:52 GMT+01:00 Juri Linkov <juri@linkov.net>:
>>> (defcustom isearch-keep-mode-variables nil
>>>   "A set of search variables to keep between different searches.
>>> When a search variable is customized to exist in this set, then
>>> starting a new search doesn't reset the corresponding isearch variable
>>> to its default value, thus keeping the value from the previous search
>>> \(changed using toggling commands)."
>>>   :type '(set (const :tag "Case folding" isearch-case-fold-search)
>>>               (const :tag "Character folding" character-fold-search)
>>>               (const :tag "Invisible text" isearch-invisible)
>>>               (const :tag "Filters" isearch-filter-predicate)
>>>               (const :tag "Lax whitespace" isearch-lax-whitespace)
>>>               (const :tag "Regexp lax whitespace" isearch-regexp-lax-whitespace))
>>>   :group 'isearch)
>>
>> Though this is not strictly in conflict with turning the individual
>> variables into defcustoms, I think it's a bit in ideological conflict, and
>> we should probably pick one of the two.
>
> Would it be better to pollute the namespace with N*M more customizable variables
> like ‘isearch-keep-case-fold-search’, ‘isearch-keep-lax-whitespace’,
> ‘isearch-initial-case-fold-search’, ‘isearch-initial-lax-whitespace’, I'm not sure.

No. I like the idea of this variable, and I much prefer this defcustom
over N different `isearch-keep-...' defcustoms.
What I said is that if we have *this* defcustom, we don't need to turn
`isearch-lax-whitespace' into a defcustom too (the actual variable,
not the `keep...' variable).





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-06-30 21:05       ` Artur Malabarba
@ 2015-07-01 22:30         ` Juri Linkov
  2015-07-02 10:15           ` Artur Malabarba
  0 siblings, 1 reply; 19+ messages in thread
From: Juri Linkov @ 2015-07-01 22:30 UTC (permalink / raw)
  To: Artur Malabarba; +Cc: 20351, Ken T Takusagawa

>>>> (defcustom isearch-keep-mode-variables nil
>>>>   "A set of search variables to keep between different searches.
>>>> When a search variable is customized to exist in this set, then
>>>> starting a new search doesn't reset the corresponding isearch variable
>>>> to its default value, thus keeping the value from the previous search
>>>> \(changed using toggling commands)."
>>>>   :type '(set (const :tag "Case folding" isearch-case-fold-search)
>>>>               (const :tag "Character folding" character-fold-search)
>>>>               (const :tag "Invisible text" isearch-invisible)
>>>>               (const :tag "Filters" isearch-filter-predicate)
>>>>               (const :tag "Lax whitespace" isearch-lax-whitespace)
>>>>               (const :tag "Regexp lax whitespace" isearch-regexp-lax-whitespace))
>>>>   :group 'isearch)
>>>
>>> Though this is not strictly in conflict with turning the individual
>>> variables into defcustoms, I think it's a bit in ideological conflict, and
>>> we should probably pick one of the two.
>>
>> Would it be better to pollute the namespace with N*M more customizable variables
>> like ‘isearch-keep-case-fold-search’, ‘isearch-keep-lax-whitespace’,
>> ‘isearch-initial-case-fold-search’, ‘isearch-initial-lax-whitespace’, I'm not sure.
>
> No. I like the idea of this variable, and I much prefer this defcustom
> over N different `isearch-keep-...' defcustoms.
> What I said is that if we have *this* defcustom, we don't need to turn
> `isearch-lax-whitespace' into a defcustom too (the actual variable,
> not the `keep...' variable).

It seems we can't avoid turning `isearch-lax-whitespace' into a defcustom
because users need to be able to disable these features initially, and
there is no convenient way to customize initial values with a single
defcustom such as ‘isearch-initial-variables’.

‘case-fold-search’ is a customizable variable - and rightfully so
‘char-fold-search’ has to be customizable as well.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-07-01 22:30         ` Juri Linkov
@ 2015-07-02 10:15           ` Artur Malabarba
  2015-07-04 21:09             ` Juri Linkov
  0 siblings, 1 reply; 19+ messages in thread
From: Artur Malabarba @ 2015-07-02 10:15 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 20351, Ken T Takusagawa

> It seems we can't avoid turning `isearch-lax-whitespace' into a defcustom
> because users need to be able to disable these features initially, and
> there is no convenient way to customize initial values with a single
> defcustom such as ‘isearch-initial-variables’.

Yes, you're right. Feel free to ignore my previous comments.

> ‘case-fold-search’ is a customizable variable - and rightfully so
> ‘char-fold-search’ has to be customizable as well.

Yes, we should make it a defcustom before release. I didn't make it a
defcustom when I implementing it because the implementation itself is
still up for debate.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-07-02 10:15           ` Artur Malabarba
@ 2015-07-04 21:09             ` Juri Linkov
  2015-07-04 21:15               ` Artur Malabarba
  2015-07-04 22:24               ` Stefan Monnier
  0 siblings, 2 replies; 19+ messages in thread
From: Juri Linkov @ 2015-07-04 21:09 UTC (permalink / raw)
  To: Artur Malabarba; +Cc: 20351, Ken T Takusagawa

>> ‘case-fold-search’ is a customizable variable - and rightfully so
>> ‘char-fold-search’ has to be customizable as well.
>
> Yes, we should make it a defcustom before release. I didn't make it a
> defcustom when I implementing it because the implementation itself is
> still up for debate.

What do you think about using the shorter name ‘char-fold-search’?
All char-related functions in Emacs are shortened to “char”, e.g.
‘char-code’, ‘char-table’, ‘char-to-string’, etc.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-07-04 21:09             ` Juri Linkov
@ 2015-07-04 21:15               ` Artur Malabarba
  2015-07-04 22:24               ` Stefan Monnier
  1 sibling, 0 replies; 19+ messages in thread
From: Artur Malabarba @ 2015-07-04 21:15 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 20351, Ken T Takusagawa

[-- Attachment #1: Type: text/plain, Size: 689 bytes --]

On Jul 4, 2015 10:09 PM, "Juri Linkov" <juri@linkov.net> wrote:
>
> >> ‘case-fold-search’ is a customizable variable - and rightfully so
> >> ‘char-fold-search’ has to be customizable as well.
> >
> > Yes, we should make it a defcustom before release. I didn't make it a
> > defcustom when I implementing it because the implementation itself is
> > still up for debate.
>
> What do you think about using the shorter name ‘char-fold-search’?
> All char-related functions in Emacs are shortened to “char”, e.g.
> ‘char-code’, ‘char-table’, ‘char-to-string’, etc.

Sounds good. But, in that case, please rename the entire namespace (and the
file?).

[-- Attachment #2: Type: text/html, Size: 891 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-07-04 21:09             ` Juri Linkov
  2015-07-04 21:15               ` Artur Malabarba
@ 2015-07-04 22:24               ` Stefan Monnier
  2015-07-04 22:42                 ` Artur Malabarba
  1 sibling, 1 reply; 19+ messages in thread
From: Stefan Monnier @ 2015-07-04 22:24 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 20351, Artur Malabarba, Ken T Takusagawa

> What do you think about using the shorter name ‘char-fold-search’?

FWIW, I find this name rather devoid of meaning.
What's the idea behind it?


        Stefan





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-07-04 22:24               ` Stefan Monnier
@ 2015-07-04 22:42                 ` Artur Malabarba
  2015-07-05  8:00                   ` Andreas Schwab
  0 siblings, 1 reply; 19+ messages in thread
From: Artur Malabarba @ 2015-07-04 22:42 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 20351, Ken T Takusagawa, Juri Linkov

[-- Attachment #1: Type: text/plain, Size: 449 bytes --]

On Jul 4, 2015 11:24 PM, "Stefan Monnier" <monnier@iro.umontreal.ca> wrote:
>
> > What do you think about using the shorter name ‘char-fold-search’?
>
> FWIW, I find this name rather devoid of meaning.
> What's the idea behind it?

It was being called character group folding at first. Somebody suggested
just character-folding, but I don't recall who.

Neither sound terribly expressive to me, but I can't think of anything
better.

[-- Attachment #2: Type: text/html, Size: 614 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-07-04 22:42                 ` Artur Malabarba
@ 2015-07-05  8:00                   ` Andreas Schwab
  2015-07-05 16:06                     ` Stefan Monnier
  0 siblings, 1 reply; 19+ messages in thread
From: Andreas Schwab @ 2015-07-05  8:00 UTC (permalink / raw)
  To: Artur Malabarba; +Cc: 20351, Ken T Takusagawa, Juri Linkov

Artur Malabarba <bruce.connor.am@gmail.com> writes:

> On Jul 4, 2015 11:24 PM, "Stefan Monnier" <monnier@iro.umontreal.ca> wrote:
>>
>> > What do you think about using the shorter name ‘char-fold-search’?
>>
>> FWIW, I find this name rather devoid of meaning.
>> What's the idea behind it?
>
> It was being called character group folding at first. Somebody suggested
> just character-folding, but I don't recall who.
>
> Neither sound terribly expressive to me, but I can't think of anything
> better.

The technical term is "equivalence classes".  Perhaps it can be folded
into the name.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-07-05  8:00                   ` Andreas Schwab
@ 2015-07-05 16:06                     ` Stefan Monnier
  2015-07-05 16:27                       ` Eli Zaretskii
                                         ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Stefan Monnier @ 2015-07-05 16:06 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: 20351, Artur Malabarba, Ken T Takusagawa, Juri Linkov

> The technical term is "equivalence classes".

I don't think so.  This term would apply equally well to case-fold-search.
We want something more specific.


        Stefan





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-07-05 16:06                     ` Stefan Monnier
@ 2015-07-05 16:27                       ` Eli Zaretskii
  2015-07-05 18:12                         ` Stefan Monnier
  2015-07-05 17:56                       ` Drew Adams
       [not found]                       ` <<83k2uewovx.fsf@gnu.org>
  2 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2015-07-05 16:27 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: schwab, 20351, bruce.connor.am, kenta, juri

> From: Stefan Monnier <monnier@IRO.UMontreal.CA>
> Date: Sun, 05 Jul 2015 12:06:54 -0400
> Cc: 20351@debbugs.gnu.org, Artur Malabarba <bruce.connor.am@gmail.com>,
> 	Ken T Takusagawa <kenta@mit.edu>, Juri Linkov <juri@linkov.net>
> 
> > The technical term is "equivalence classes".
> 
> I don't think so.  This term would apply equally well to case-fold-search.

No, I don't think so.  Case equivalence and canonical/compatibility
equivalence are separate aspects.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-07-05 16:06                     ` Stefan Monnier
  2015-07-05 16:27                       ` Eli Zaretskii
@ 2015-07-05 17:56                       ` Drew Adams
       [not found]                       ` <<83k2uewovx.fsf@gnu.org>
  2 siblings, 0 replies; 19+ messages in thread
From: Drew Adams @ 2015-07-05 17:56 UTC (permalink / raw)
  To: Stefan Monnier, Andreas Schwab
  Cc: 20351, Artur Malabarba, Ken T Takusagawa, Juri Linkov

> > The technical term is "equivalence classes".
> 
> I don't think so.  This term would apply equally well to case-fold-
> search.  We want something more specific.

Right.  But isn't that the problem?  Case folding is a subset
of character folding, where the equivalence class is defined
by ignoring letter case.

This new thing is a catch-all, no?  It means (apparently)
all character equivalences except for case folds.

We should foresee the possibility (and I hope the reality)
of multiple other character foldings, besides case folding.

And yes, each should have a name that suggests the kind of
equivalence that is involved.

What can we say about the kind of equivalence that is involved
in this catch-all?  How can we be more specific than, say,
"char folding other than case" - e.g., non-case char-folding?





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
       [not found]                       ` <<83k2uewovx.fsf@gnu.org>
@ 2015-07-05 17:59                         ` Drew Adams
  0 siblings, 0 replies; 19+ messages in thread
From: Drew Adams @ 2015-07-05 17:59 UTC (permalink / raw)
  To: Eli Zaretskii, Stefan Monnier; +Cc: schwab, 20351, bruce.connor.am, kenta, juri

> > > The technical term is "equivalence classes".
> >
> > I don't think so.  This term would apply equally well to case-
> > fold-search.
> 
> No, I don't think so.  Case equivalence and canonical/compatibility
> equivalence are separate aspects.

Are the latter not equivalence classes?  And the former?

In what way does ignoring letter case not put groups (typically
pairs) of chars into equivalence classes?





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-07-05 16:27                       ` Eli Zaretskii
@ 2015-07-05 18:12                         ` Stefan Monnier
  0 siblings, 0 replies; 19+ messages in thread
From: Stefan Monnier @ 2015-07-05 18:12 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: schwab, 20351, bruce.connor.am, kenta, juri

>> > The technical term is "equivalence classes".
>> I don't think so.  This term would apply equally well to case-fold-search.
> No, I don't think so.  Case equivalence and canonical/compatibility
> equivalence are separate aspects.

They're indeed somewhat separate aspects, but they're both cases of
"equivalence classes".


        Stefan





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#20351: isearch-lax-whitespace should be customizable variable
  2015-04-16 22:49 bug#20351: isearch-lax-whitespace should be customizable variable Ken T Takusagawa
  2015-06-29 22:30 ` Juri Linkov
@ 2022-04-18 11:36 ` Lars Ingebrigtsen
  1 sibling, 0 replies; 19+ messages in thread
From: Lars Ingebrigtsen @ 2022-04-18 11:36 UTC (permalink / raw)
  To: Ken T Takusagawa; +Cc: 20351

Ken T Takusagawa <kenta@mit.edu> writes:

> M-x customize-variable
> does NOT list isearch-lax-whitespace as a customizable variable

(I'm going through old bug reports that unfortunately weren't resolved
at the time.)

I've now made it a defcustom in Emacs 29.

The discussion then went on to other (related) things, but those are
covered in bug#11378, apparently, so I'm closing this bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2022-04-18 11:36 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-16 22:49 bug#20351: isearch-lax-whitespace should be customizable variable Ken T Takusagawa
2015-06-29 22:30 ` Juri Linkov
2015-06-29 23:10   ` Artur Malabarba
2015-06-30 20:52     ` Juri Linkov
2015-06-30 21:05       ` Artur Malabarba
2015-07-01 22:30         ` Juri Linkov
2015-07-02 10:15           ` Artur Malabarba
2015-07-04 21:09             ` Juri Linkov
2015-07-04 21:15               ` Artur Malabarba
2015-07-04 22:24               ` Stefan Monnier
2015-07-04 22:42                 ` Artur Malabarba
2015-07-05  8:00                   ` Andreas Schwab
2015-07-05 16:06                     ` Stefan Monnier
2015-07-05 16:27                       ` Eli Zaretskii
2015-07-05 18:12                         ` Stefan Monnier
2015-07-05 17:56                       ` Drew Adams
     [not found]                       ` <<83k2uewovx.fsf@gnu.org>
2015-07-05 17:59                         ` Drew Adams
2015-06-29 23:14   ` Drew Adams
2022-04-18 11:36 ` Lars Ingebrigtsen

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).