GNU bug report logs -
#10118
C-w folds case too eagerly
Previous Next
To reply to this bug, email your comments to 10118 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#10118
; Package
emacs
.
(Wed, 23 Nov 2011 14:32:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Stefan Monnier <monnier <at> iro.umontreal.ca>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Wed, 23 Nov 2011 14:32:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Package: Emacs
% emacs -Q
TOTORO TOTO M-b
C-r C-w RO
this fails to find "TOTORO" because we end up looking for "totoRO"
(without ignoring case) rather than "TOTORO".
Stefan
In GNU Emacs 24.0.91.1 (i686-pc-linux-gnu, GTK+ Version 2.24.7)
of 2011-11-22 on pastel
Windowing system distributor `The X.Org Foundation', version 11.0.11101901
configured using `configure 'CFLAGS=-Wall -Wno-pointer-sign -DUSE_LISP_UNION_TYPE -DSYNC_INPUT -DENABLE_CHECKING -DXASSERTS -DFONTSET_DEBUG -g -O0' '--with-tiff=no''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: fr_CH.UTF-8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
Major mode: Summary
Minor modes in effect:
gnus-mailing-list-mode: t
electric-pair-mode: t
electric-indent-mode: t
url-handler-mode: t
global-reveal-mode: t
reveal-mode: t
auto-insert-mode: t
savehist-mode: t
minibuffer-electric-default-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
<right> <down> <left> <right> <down> <left> <right>
<up> <left> <right> <up> <left> <right> <up> <left>
<right> <up> <left> <right> <up> <left> <right> <down>
<left> <right> <down> <left> <right> <down> <left>
<right> <down> <right> <up> <up> <up> <up> <left> <left>
<right> <down> <left> <right> <down> <left> <right>
<down> <left> <right> <up> <up> <up> <left> <right>
<down> <left> <right> <down> <left> <right> <up> <up>
<left> <right> <down> <left> <right> <down> <left>
<right> <up> <up> <left> <right> <down> <left> <right>
<down> <left> <right> <down> <left> <right> <down>
<left> <right> <down> <left> <right> <up> <up> <up>
<up> <up> <left> <right> <down> <left> <right> <down>
<left> <right> <down> <left> <right> <up> <up> <left>
<right> <up> <left> <right> <down> <left> <right> <down>
<left> <right> <down> <left> <right> <down> <left>
<right> <up> <left> <right> <down> <left> <right> <down>
<left> <right> <up> <left> <right> <up> <left> <right>
<up> <left> <right> <down> <left> <right> <down> <left>
<right> <down> <left> <right> <left> <return> I e .
<backspace> <backspace> . e . SPC C - s SPC T O T O
SPC M - e SPC C - a SPC _ <backspace> C - k SPC f o
o SPC R E T SPC s h o u l d SPC s e a r c h SPC f o
r SPC " f o o " SPC w h i l e SPC i g n o r e i n g
SPC c a s e . <right> <up> <left> <right> <up> <left>
<right> <up> <left> <right> <up> <left> <right> <down>
<left> <right> <down> <left> <right> <left> <down>
<right> <right> <right> <right> <right> <right> <right>
<C-left> C-d C-e <right> <up> <left> <right> <up> <left>
<right> <down> <left> <right> <down> <left> <right>
<switch-frame> <switch-frame> <switch-frame> <switch-frame>
<switch-frame> <select-window> <help-echo> M-x r e
p - e m - b <tab> <return>
Recent messages:
Mark set
byte-code: End of buffer [2 times]
Auto-saving...done
Mark set
byte-code: End of buffer
Auto-saving...done
Mark set
Quit
Mark activated
Auto-saving...done
Load-path shadows:
None found.
Features:
(shadow emacsbug multi-isearch debug woman tutorial help-macro man
info-look help-at-pt ehelp apropos cus-edit cus-start cus-load gnus-fun
newcomment supercite regi pp qp executable copyright gnus-html
browse-url xml url-cache mm-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-util mule-util sort smiley
ansi-color gnus-cite flow-fill mail-extr gnus-async gnus-bcklg gnus-ml
nndraft nnmh utf-7 rfc2104 nnimap parse-time utf7 gnutls netrc
network-stream starttls tls gnus-agent gnus-srvr gnus-score score-mode
nnvirtual gnus-msg gnus-art mm-uu mml2015 epg-config mm-view mml-smime
smime dig mailcap nntp gnus-cache nnir gnus-sum nnoo gnus-group
gnus-undo nnmail mail-source server gnus-start gnus-spec gnus-int
gnus-range message sendmail format-spec rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mailabbrev gmm-utils mailheader gnus-win gnus gnus-ems nnheader
mail-utils wid-edit noutline outline easy-mmode flyspell ispell eldoc
checkdoc regexp-opt thingatpt help-mode view prog-mode load-dir electric
url-handlers url-parse auth-source warnings eieio byte-opt bytecomp
byte-compile cconv macroexp assoc gnus-util password-cache url-vars
mm-util mail-prsvr reveal autoinsert uniquify advice help-fns
advice-preload time-date savehist minibuf-eldef disp-table cl
cl-loaddefs all-autoloads company-autoloads debbugs-autoloads
epoch-view-autoloads jgraph-mode-autoloads js2-mode-autoloads
lmc-autoloads load-dir-autoloads markchars-autoloads minimap-autoloads
muse-autoloads info easymenu oauth2-autoloads quarter-plane-autoloads
rainbow-mode-autoloads register-list-autoloads sisu-mode-autoloads
svg-clock-autoloads undo-tree-autoloads uni-confusables-autoloads
windresize-autoloads package tabulated-list proof-site proof-autoloads
pg-vars bbdb-autoloads agda2 tooltip ediff-hook vc-hooks lisp-float-type
mwheel x-win x-dnd tool-bar dnd fontset image fringe lisp-mode register
page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
font-lock syntax 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 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)
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#10118
; Package
emacs
.
(Wed, 23 Nov 2011 20:43:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 10118 <at> debbugs.gnu.org (full text, mbox):
> % emacs -Q
> TOTORO TOTO M-b
> C-r C-w RO
>
> this fails to find "TOTORO" because we end up looking for "totoRO"
> (without ignoring case) rather than "TOTORO".
Sorry, I don't know how to solve this puzzle. The value `not-yanks'
of `search-upper-case' explicitly tells Isearch to downcase the word
pulled from the buffer.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#10118
; Package
emacs
.
(Thu, 01 Dec 2011 19:46:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 10118 <at> debbugs.gnu.org (full text, mbox):
>> % emacs -Q
>> TOTORO TOTO M-b
>> C-r C-w RO
>>
>> this fails to find "TOTORO" because we end up looking for "totoRO"
>> (without ignoring case) rather than "TOTORO".
> Sorry, I don't know how to solve this puzzle. The value `not-yanks'
> of `search-upper-case' explicitly tells Isearch to downcase the word
> pulled from the buffer.
I know, but I think it's wrong. I think that rather than downcase it,
it should only cause the case to stay ignored. The behavior I'd expect
is something like:
- C-r C-w leads to "I-search: toto", which hides the uppercase nature of
the yanked string, but doesn't actually throw it away.
- then typing "RO" leads to "I-search: TOTORO", where TOTO's uppercase
nature is made explicit.
Stefan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#10118
; Package
emacs
.
(Sat, 03 Aug 2013 16:37:03 GMT)
Full text and
rfc822 format available.
Message #14 received at 10118 <at> debbugs.gnu.org (full text, mbox):
> From: Stefan Monnier <monnier <at> iro.umontreal.ca>
> To: Juri Linkov <juri <at> jurta.org>
> Cc: 10118 <at> debbugs.gnu.org
> Subject: Re: bug#10118: C-w folds case too eagerly
> Date: Thu, 01 Dec 2011 14:45:17 -0500
>
> > > % emacs -Q
> > > TOTORO TOTO M-b
> > > C-r C-w RO
> > >
> > > this fails to find "TOTORO" because we end up looking for "totoRO"
> > > (without ignoring case) rather than "TOTORO".
>
> > Sorry, I don't know how to solve this puzzle. The value `not-yanks'
> > of `search-upper-case' explicitly tells Isearch to downcase the word
> > pulled from the buffer.
>
> I know, but I think it's wrong. I think that rather than downcase it,
> it should only cause the case to stay ignored. The behavior I'd expect
> is something like:
>
> - C-r C-w leads to "I-search: toto", which hides the uppercase nature of
> the yanked string, but doesn't actually throw it away.
> - then typing "RO" leads to "I-search: TOTORO", where TOTO's uppercase
> nature is made explicit.
I've been thinking a bit about this, and I'd like to propose this
solution:
1. Never downcase the text yanked into the search ring, because we
must remember the original text supplied by the user. This implies
that the variable `search-upper-case' will not care about the value
`not-yanks' anymore.
2. When `search-upper-case' is non-nil, upper case chars will make the
search case-sensitive, but only when typed right from the keyboard,
i.e., not when grabbing text from another place (kill ring, buffer or
whatever). This way, the search will be case-insensitive by default
(quite reasonable), and will only switch to case-sensitive under
explicit request from the user (either by _typing_ an upper case char
or "M-c").
WDYT?
--
Dani Moncayo
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#10118
; Package
emacs
.
(Tue, 05 Mar 2024 07:07:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 10118 <at> debbugs.gnu.org (full text, mbox):
> I've been thinking a bit about this, and I'd like to propose this
> solution:
>
> 1. Never downcase the text yanked into the search ring, because we
> must remember the original text supplied by the user. This implies
> that the variable `search-upper-case' will not care about the value
> `not-yanks' anymore.
>
> 2. When `search-upper-case' is non-nil, upper case chars will make the
> search case-sensitive, but only when typed right from the keyboard,
> i.e., not when grabbing text from another place (kill ring, buffer or
> whatever). This way, the search will be case-insensitive by default
> (quite reasonable), and will only switch to case-sensitive under
> explicit request from the user (either by _typing_ an upper case char
> or "M-c").
>
> WDYT?
Sounds good to me!
Stefan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#10118
; Package
emacs
.
(Tue, 05 Mar 2024 16:36:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 10118 <at> debbugs.gnu.org (full text, mbox):
>> I've been thinking a bit about this, and I'd like to propose this
>> solution:
>>
>> 1. Never downcase the text yanked into the search ring, because we
>> must remember the original text supplied by the user. This implies
>> that the variable `search-upper-case' will not care about the value
>> `not-yanks' anymore.
>>
>> 2. When `search-upper-case' is non-nil, upper case chars will make the
>> search case-sensitive, but only when typed right from the keyboard,
>> i.e., not when grabbing text from another place (kill ring, buffer or
>> whatever). This way, the search will be case-insensitive by default
>> (quite reasonable), and will only switch to case-sensitive under
>> explicit request from the user (either by _typing_ an upper case char
>> or "M-c").
>>
>> WDYT?
>
> Sounds good to me!
Then UI won't be WYSIWYG. There will be upper-case characters
in the isearch message, but the search will ignore them.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#10118
; Package
emacs
.
(Tue, 05 Mar 2024 16:53:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 10118 <at> debbugs.gnu.org (full text, mbox):
>>> I've been thinking a bit about this, and I'd like to propose this
>>> solution:
>>>
>>> 1. Never downcase the text yanked into the search ring, because we
>>> must remember the original text supplied by the user. This implies
>>> that the variable `search-upper-case' will not care about the value
>>> `not-yanks' anymore.
>>>
>>> 2. When `search-upper-case' is non-nil, upper case chars will make the
>>> search case-sensitive, but only when typed right from the keyboard,
>>> i.e., not when grabbing text from another place (kill ring, buffer or
>>> whatever). This way, the search will be case-insensitive by default
>>> (quite reasonable), and will only switch to case-sensitive under
>>> explicit request from the user (either by _typing_ an upper case char
>>> or "M-c").
>>>
>>> WDYT?
>>
>> Sounds good to me!
>
> Then UI won't be WYSIWYG. There will be upper-case characters
> in the isearch message, but the search will ignore them.
What I proposed wasn't WYSIWYG either, because the string was displayed
as lower-case until we switch off case-folding at which point it
"magically" reveals its latent capitalization.
I can think of some ways to try and visually indicate what's going on
(e.g. using colors on the upper-case-but-case-folded chars, or an
additional flag in the prompt). Not sure what's the better option.
Stefan
This bug report was last modified 1 year and 98 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.