GNU bug report logs - #24101
24.5; incorrect double-click selection in cperl-mode

Previous Next

Package: emacs;

Reported by: Vincent Lefevre <vincent <at> vinc17.net>

Date: Fri, 29 Jul 2016 00:07:01 UTC

Severity: minor

Tags: confirmed

Found in versions 24.5, 26.2

To reply to this bug, email your comments to 24101 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#24101; Package emacs. (Fri, 29 Jul 2016 00:07:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Vincent Lefevre <vincent <at> vinc17.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 29 Jul 2016 00:07:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Vincent Lefevre <vincent <at> vinc17.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.5; incorrect double-click selection in cperl-mode
Date: Fri, 29 Jul 2016 02:05:39 +0200
1. Under X Window (so that Emacs uses its own interface), open
a file containing:

# -*- mode: cperl -*-

tr/ABCDE/12345/;

2. Double-click over "4".

Only "2345" is selected, instead of "12345".



In GNU Emacs 24.5.1 (x86_64-pc-linux-gnu, GTK+ Version 3.20.3)
 of 2016-05-07 on zira, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11804000
System Description:	Debian GNU/Linux stable-updates (sid)

Configured using:
 `configure --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.5/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.5/site-lisp:/usr/share/emacs/site-lisp
 --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.5/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.5/site-lisp:/usr/share/emacs/site-lisp
 --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars
 'CFLAGS=-g -O2 -fstack-protector-strong -Wformat
 -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Important settings:
  value of $LC_COLLATE: POSIX
  value of $LC_CTYPE: en_US.UTF-8
  value of $LC_TIME: en_DK
  value of $LANG: POSIX
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  display-time-mode: t
  show-paren-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Loading cjk-enc...done
Loading /etc/emacs/site-start.d/50latex-cjk-common.el (source)...done
Loading /etc/emacs/site-start.d/50latex-cjk-thai.el (source)...done
Loading /etc/emacs/site-start.d/50psvn.el (source)...done
Loading /etc/emacs/site-start.d/50python-docutils.el (source)...done
Loading /etc/emacs/site-start.d/50rnc-mode.el (source)...done
Loading /etc/emacs/site-start.d/50texlive-lang-english.el (source)...done
Loading /home/vinc17/share/emacs/site-lisp/mutteditor.el (source)...done
Loading time...done
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
/usr/share/emacs/24.5/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs24/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/usr/share/emacs/site-lisp/rst hides /usr/share/emacs/24.5/lisp/textmodes/rst
/usr/share/emacs24/site-lisp/latex-cjk-thai/thai-word hides /usr/share/emacs/24.5/lisp/language/thai-word

Features:
(shadow sort gnus-util mail-extr warnings emacsbug message format-spec
rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util help-fns mail-prsvr mail-utils time cus-start
cus-load paren cc-styles cc-align cc-engine cc-vars cc-defs edmacro
kmacro cl-loaddefs cl-lib time-date tooltip electric uniquify 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 prog-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 nadvice
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
gfilenotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 92575 4671)
 (symbols 48 20397 0)
 (miscs 40 45 93)
 (strings 32 16037 4299)
 (string-bytes 1 472568)
 (vectors 16 10305)
 (vector-slots 8 396942 4282)
 (floats 8 70 229)
 (intervals 56 231 6)
 (buffers 960 12)
 (heap 1024 37269 984))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24101; Package emacs. (Fri, 29 Jul 2016 01:11:01 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Clément Pit--Claudel <clement.pit <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#24101: 24.5; incorrect double-click selection in cperl-mode
Date: Thu, 28 Jul 2016 21:09:47 -0400
[Message part 1 (text/plain, inline)]
Thanks; I can reproduce this on master. Calling word-at-point on "2" shows the same problem (it doesn't include "1").
The problem seems to be a custom syntax-table property that cperl-mode puts on "1".

Clément.

On 2016-07-28 20:05, Vincent Lefevre wrote:
> 
> 1. Under X Window (so that Emacs uses its own interface), open
> a file containing:
> 
> # -*- mode: cperl -*-
> 
> tr/ABCDE/12345/;
> 
> 2. Double-click over "4".
> 
> Only "2345" is selected, instead of "12345".
> 
> 
> 
> In GNU Emacs 24.5.1 (x86_64-pc-linux-gnu, GTK+ Version 3.20.3)
>  of 2016-05-07 on zira, modified by Debian
> Windowing system distributor `The X.Org Foundation', version 11.0.11804000
> System Description:	Debian GNU/Linux stable-updates (sid)
> 
> Configured using:
>  `configure --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.5/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.5/site-lisp:/usr/share/emacs/site-lisp
>  --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.5/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.5/site-lisp:/usr/share/emacs/site-lisp
>  --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars
>  'CFLAGS=-g -O2 -fstack-protector-strong -Wformat
>  -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
>  -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'
> 
> Important settings:
>   value of $LC_COLLATE: POSIX
>   value of $LC_CTYPE: en_US.UTF-8
>   value of $LC_TIME: en_DK
>   value of $LANG: POSIX
>   locale-coding-system: utf-8-unix
> 
> Major mode: Lisp Interaction
> 
> Minor modes in effect:
>   display-time-mode: t
>   show-paren-mode: t
>   tooltip-mode: t
>   electric-indent-mode: t
>   mouse-wheel-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
>   column-number-mode: t
>   line-number-mode: t
>   transient-mark-mode: t
> 
> Recent messages:
> Loading cjk-enc...done
> Loading /etc/emacs/site-start.d/50latex-cjk-common.el (source)...done
> Loading /etc/emacs/site-start.d/50latex-cjk-thai.el (source)...done
> Loading /etc/emacs/site-start.d/50psvn.el (source)...done
> Loading /etc/emacs/site-start.d/50python-docutils.el (source)...done
> Loading /etc/emacs/site-start.d/50rnc-mode.el (source)...done
> Loading /etc/emacs/site-start.d/50texlive-lang-english.el (source)...done
> Loading /home/vinc17/share/emacs/site-lisp/mutteditor.el (source)...done
> Loading time...done
> For information about GNU Emacs and the GNU system, type C-h C-a.
> 
> Load-path shadows:
> /usr/share/emacs/24.5/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
> /usr/share/emacs24/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
> /usr/share/emacs/site-lisp/rst hides /usr/share/emacs/24.5/lisp/textmodes/rst
> /usr/share/emacs24/site-lisp/latex-cjk-thai/thai-word hides /usr/share/emacs/24.5/lisp/language/thai-word
> 
> Features:
> (shadow sort gnus-util mail-extr warnings emacsbug message format-spec
> rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse
> rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
> ietf-drums mm-util help-fns mail-prsvr mail-utils time cus-start
> cus-load paren cc-styles cc-align cc-engine cc-vars cc-defs edmacro
> kmacro cl-loaddefs cl-lib time-date tooltip electric uniquify 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 prog-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 nadvice
> 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
> gfilenotify dynamic-setting system-font-setting font-render-setting
> move-toolbar gtk x-toolkit x multi-tty emacs)
> 
> Memory information:
> ((conses 16 92575 4671)
>  (symbols 48 20397 0)
>  (miscs 40 45 93)
>  (strings 32 16037 4299)
>  (string-bytes 1 472568)
>  (vectors 16 10305)
>  (vector-slots 8 396942 4282)
>  (floats 8 70 229)
>  (intervals 56 231 6)
>  (buffers 960 12)
>  (heap 1024 37269 984))
> 
> 
> 
> 

[signature.asc (application/pgp-signature, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24101; Package emacs. (Fri, 05 Jul 2019 20:18:02 GMT) Full text and rfc822 format available.

Message #11 received at 24101 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefan <at> marxist.se>
To: 24101 <at> debbugs.gnu.org,
 Clément Pit--Claudel <clement.pit <at> gmail.com>
Subject: Re: bug#24101: 24.5; incorrect double-click selection in cperl-mode
Date: Fri, 5 Jul 2019 22:17:19 +0200
Clément Pit--Claudel <clement.pit <at> gmail.com> writes:

> Thanks; I can reproduce this on master. Calling word-at-point on "2" shows the same problem (it doesn't include "1").
> The problem seems to be a custom syntax-table property that cperl-mode puts on "1".
>
> Clément.
>
> On 2016-07-28 20:05, Vincent Lefevre wrote:
>>
>> 1. Under X Window (so that Emacs uses its own interface), open
>> a file containing:
>>
>> # -*- mode: cperl -*-
>>
>> tr/ABCDE/12345/;
>>
>> 2. Double-click over "4".
>>
>> Only "2345" is selected, instead of "12345".

I can reproduce this on Emacs 26.2.

Best regards,
Stefan Kangas




Added tag(s) confirmed. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Fri, 23 Aug 2019 06:40:03 GMT) Full text and rfc822 format available.

bug Marked as found in versions 26.2. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Fri, 23 Aug 2019 06:40:04 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24101; Package emacs. (Tue, 04 Jul 2023 16:17:02 GMT) Full text and rfc822 format available.

Message #18 received at 24101 <at> debbugs.gnu.org (full text, mbox):

From: Harald Jörg <haj <at> posteo.de>
To: 24101 <at> debbugs.gnu.org
Subject: This bug is ... unfixable right now
Date: Tue, 04 Jul 2023 16:16:05 +0000
On 2016-07-28 20:05, Vincent Lefevre wrote:

> 1. Under X Window (so that Emacs uses its own interface), open
> a file containing:
> 
> # -*- mode: cperl -*-
> 
> tr/ABCDE/12345/;
> 
> 2. Double-click over "4".
> 
> Only "2345" is selected, instead of "12345".

The bug can still be reproduced in Emacs master (Emacs 30).
Unfortunately, it can not be fixed due to an Emacs limitation.

Background: cperl-mode treats the "match"-part and the
"replacement"-part differently.  To do that, cperl-mode uses the
"generic strings" of Emacs.  These need a delimiter character, but the
middle "/" can not serve as a end delimiter for the match part _and_ a
start delimiter of the replacement part.  So cperl-mode "cheats" and
makes the first character of the replacement part the start delimiter,
and by doing this, it is no longer part of the following "word".
Changing that would mean dropping significant features of cperl-mode.

Therefore, this only happens for words which start immediately after the
"/" which separates match- from replacement part.

A workaround is to use paired delimiters, because in that case
cperl-mode has two characters to use as end and start delimiter.
Selecting by double-clicking (or calling word-at-point) gives the
desired result.

    tr{ABCDE}{12345};

So, as of today I can still confirm the bug - but not fix it.
-- 
Cheers,
haj




This bug report was last modified 1 year and 345 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.