all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#19940: 25.0.50; Infinite loop in `studlify-word' with Subword mode
@ 2015-02-24 21:19 Simen Heggestøyl
  2016-04-03  3:49 ` Marcin Borkowski
  0 siblings, 1 reply; 7+ messages in thread
From: Simen Heggestøyl @ 2015-02-24 21:19 UTC (permalink / raw)
  To: 19940

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

An infinite loop occurs when Subword mode is active and
`studlify-word' is run on a word with more than one subword. The bug
seems to have been introduced by changes made to subword.el in commit
6ddc44225e743e2b2a0d5c192f50aefd7a4a915b.

Here is a recipe that triggers the bug, starting from emacs -Q:

  1. Open a new buffer, and type in "subWord".
  2. Activate Subword mode by `M-x subword-mode'.
  3. Move point to the beginning of the line, and run `M-x
     studlify-word'.


In GNU Emacs 25.0.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.5)
 of 2015-02-24 on x240
Repository revision: 450bebaec94611f0958e13e35faf494e17931f8e
Windowing system distributor `The X.Org Foundation', version 
11.0.11604000
System Description:	Debian GNU/Linux 8.0 (jessie)

Configured using:
 `configure --without-makeinfo'

Configured features:
XPM JPEG TIFF GIF PNG SOUND DBUS GSETTINGS NOTIFY LIBXML2 FREETYPE XFT
ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-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
  line-number-mode: t

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message dired 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-date tooltip
eldoc 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 elisp-mode 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 cl-preloaded 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 74956 6410)
 (symbols 48 18012 0)
 (miscs 40 43 124)
 (strings 32 10961 5159)
 (string-bytes 1 296944)
 (vectors 16 9377)
 (vector-slots 8 386766 15535)
 (floats 8 70 63)
 (intervals 56 175 0)
 (buffers 976 11)
 (heap 1024 31954 1039))

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

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

* bug#19940: 25.0.50; Infinite loop in `studlify-word' with Subword mode
  2015-02-24 21:19 bug#19940: 25.0.50; Infinite loop in `studlify-word' with Subword mode Simen Heggestøyl
@ 2016-04-03  3:49 ` Marcin Borkowski
  2016-04-03 14:43   ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Marcin Borkowski @ 2016-04-03  3:49 UTC (permalink / raw)
  To: Simen Heggestøyl; +Cc: 19940

On 2015-02-24, at 21:19, Simen Heggestøyl <simenheg@gmail.com> wrote:

> An infinite loop occurs when Subword mode is active and
>
> `studlify-word' is run on a word with more than one subword. The bug
>
>
> seems to have been introduced by changes made to subword.el in commit
>
>
> 6ddc44225e743e2b2a0d5c192f50aefd7a4a915b.
>
>
> Here is a recipe that triggers the bug, starting from emacs -Q:
>
>
> 1. Open a new buffer, and type in "subWord".
>
>
> 2. Activate Subword mode by `M-x subword-mode'.
>
>
> 3. Move point to the beginning of the line, and run `M-x
>
>
> studlify-word'.

Hi,

I can confirm this behavior on GNU Emacs 25.1.50.7 (commit 7570b35).
The problem seems to be that `studlify-region' assumes that
`forward-word' and `backward-word' will stop at non-word characters (in
the sense of the regex `\W').

One possible solution would be to temporarily switch `subword-mode' off
in `studlify-region'.  Given the nonsensicality of the latter, and the
fact that it breaks studlyCapsIdentifiers anyway, this might be the
preferred solution.  If nobody proposes anything better, I'll tryto
prepare such a patch within a few days.

-- 
Marcin Borkowski





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

* bug#19940: 25.0.50; Infinite loop in `studlify-word' with Subword mode
  2016-04-03  3:49 ` Marcin Borkowski
@ 2016-04-03 14:43   ` Eli Zaretskii
  2016-04-03 16:07     ` Marcin Borkowski
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2016-04-03 14:43 UTC (permalink / raw)
  To: Marcin Borkowski; +Cc: 19940, simenheg

> From: Marcin Borkowski <mbork@mbork.pl>
> Date: Sun, 03 Apr 2016 05:49:10 +0200
> Cc: 19940@debbugs.gnu.org
> 
> One possible solution would be to temporarily switch `subword-mode' off
> in `studlify-region'.  Given the nonsensicality of the latter, and the
> fact that it breaks studlyCapsIdentifiers anyway, this might be the
> preferred solution.  If nobody proposes anything better, I'll tryto
> prepare such a patch within a few days.

Actually, the right solution is described in this NEWS entry:

  ** The new implementation of Subword mode affects word movement everywhere.
  When Subword mode is turned on, 'forward-word', 'backward-word', and
  everything that uses them will move by sub-words, effectively
  overriding the buffer's syntax table.  Lisp programs that shouldn't be
  affected by Subword mode should call the new functions
  'forward-word-strictly' and 'backward-word-strictly' instead.

At the time I wrote this NEWS entry, I reviewed all the callers of
forward/backward-word and changed those which I thought needed that; I
guess I missed studly.el at that time.  Sorry about that.

Thanks.





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

* bug#19940: 25.0.50; Infinite loop in `studlify-word' with Subword mode
  2016-04-03 14:43   ` Eli Zaretskii
@ 2016-04-03 16:07     ` Marcin Borkowski
  2016-04-06 11:49       ` Marcin Borkowski
  0 siblings, 1 reply; 7+ messages in thread
From: Marcin Borkowski @ 2016-04-03 16:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 19940, simenheg


On 2016-04-03, at 16:43, Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Marcin Borkowski <mbork@mbork.pl>
>> Date: Sun, 03 Apr 2016 05:49:10 +0200
>> Cc: 19940@debbugs.gnu.org
>> 
>> One possible solution would be to temporarily switch `subword-mode' off
>> in `studlify-region'.  Given the nonsensicality of the latter, and the
>> fact that it breaks studlyCapsIdentifiers anyway, this might be the
>> preferred solution.  If nobody proposes anything better, I'll tryto
>> prepare such a patch within a few days.
>
> Actually, the right solution is described in this NEWS entry:
>
>   ** The new implementation of Subword mode affects word movement everywhere.
>   When Subword mode is turned on, 'forward-word', 'backward-word', and
>   everything that uses them will move by sub-words, effectively
>   overriding the buffer's syntax table.  Lisp programs that shouldn't be
>   affected by Subword mode should call the new functions
>   'forward-word-strictly' and 'backward-word-strictly' instead.
>
> At the time I wrote this NEWS entry, I reviewed all the callers of
> forward/backward-word and changed those which I thought needed that; I
> guess I missed studly.el at that time.  Sorry about that.

Ah, good to know.  I suspected that such function would exist, but was
too lazy to actually find out - sorry!

I'll make a patch tomorrow.

> Thanks.

Best,

-- 
Marcin Borkowski
http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski
Faculty of Mathematics and Computer Science
Adam Mickiewicz University





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

* bug#19940: 25.0.50; Infinite loop in `studlify-word' with Subword mode
  2016-04-03 16:07     ` Marcin Borkowski
@ 2016-04-06 11:49       ` Marcin Borkowski
  2016-04-08  7:59         ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Marcin Borkowski @ 2016-04-06 11:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 19940-done, simenheg

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

On 2016-04-03, at 18:07, Marcin Borkowski <mbork@mbork.pl> wrote:

> I'll make a patch tomorrow.

Sorry it took me so long, here's the patch.  I'm also closing this bug.

Best,

--
Marcin

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fix-bug-19940.patch --]
[-- Type: text/x-patch, Size: 1280 bytes --]

From 1e8cd05ba1c83fa48831e234bb3a2893252ca238 Mon Sep 17 00:00:00 2001
From: Marcin Borkowski <mbork@mbork.pl>
Date: Mon, 4 Apr 2016 22:12:23 +0200
Subject: [PATCH] Fix bug #19940

* lisp/play/studly.el (studlify-region): Change
  \(forward\|backward\)-word to \1-word-strictly.  Should fix
  bug#19940.
---
 lisp/play/studly.el | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lisp/play/studly.el b/lisp/play/studly.el
index f6aae45..ff1bf03 100644
--- a/lisp/play/studly.el
+++ b/lisp/play/studly.el
@@ -25,10 +25,10 @@ studlify-region
     (setq begin (point))
     (while (and (<= (point) end)
 		(not (looking-at "\\W*\\'")))
-      (forward-word 1)
-      (backward-word 1)
+      (forward-word-strictly 1)
+      (backward-word-strictly 1)
       (setq begin (max (point) begin))
-      (forward-word 1)
+      (forward-word-strictly 1)
       (let ((offset 0)
 	    (word-end (min (point) end))
 	    c)
@@ -55,7 +55,7 @@ studlify-word
   "Studlify-case the current word, or COUNT words if given an argument."
   (interactive "*p")
   (let ((begin (point)) end rb re)
-    (forward-word count)
+    (forward-word-strictly count)
     (setq end (point))
     (setq rb (min begin end) re (max begin end))
     (studlify-region rb re)))
-- 
2.4.3


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

* bug#19940: 25.0.50; Infinite loop in `studlify-word' with Subword mode
  2016-04-06 11:49       ` Marcin Borkowski
@ 2016-04-08  7:59         ` Eli Zaretskii
  2016-04-08 18:14           ` Marcin Borkowski
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2016-04-08  7:59 UTC (permalink / raw)
  To: Marcin Borkowski; +Cc: 19940

> From: Marcin Borkowski <mbork@mbork.pl>
> Cc: 19940-done@debbugs.gnu.org,  simenheg@gmail.com
> Date: Wed, 06 Apr 2016 13:49:23 +0200
> 
> Sorry it took me so long, here's the patch.  I'm also closing this bug.

Thanks, I pushed it to the emacs-25 branch.

In the future, please don't use Sed-like expressions in the log
entries, use plain English instead.  And we usually close bugs only
after the changes are committed to the repository.





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

* bug#19940: 25.0.50; Infinite loop in `studlify-word' with Subword mode
  2016-04-08  7:59         ` Eli Zaretskii
@ 2016-04-08 18:14           ` Marcin Borkowski
  0 siblings, 0 replies; 7+ messages in thread
From: Marcin Borkowski @ 2016-04-08 18:14 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 19940


On 2016-04-08, at 07:59, Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Marcin Borkowski <mbork@mbork.pl>
>> Cc: 19940-done@debbugs.gnu.org,  simenheg@gmail.com
>> Date: Wed, 06 Apr 2016 13:49:23 +0200
>> 
>> Sorry it took me so long, here's the patch.  I'm also closing this bug.
>
> Thanks, I pushed it to the emacs-25 branch.
>
> In the future, please don't use Sed-like expressions in the log
> entries, use plain English instead.  And we usually close bugs only
> after the changes are committed to the repository.

Sorry, I'm still learning to write commit messages for Emacs.  I'll also
remember your remark about closing.

Best,

-- 
Marcin Borkowski
http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski
Faculty of Mathematics and Computer Science
Adam Mickiewicz University





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

end of thread, other threads:[~2016-04-08 18:14 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-24 21:19 bug#19940: 25.0.50; Infinite loop in `studlify-word' with Subword mode Simen Heggestøyl
2016-04-03  3:49 ` Marcin Borkowski
2016-04-03 14:43   ` Eli Zaretskii
2016-04-03 16:07     ` Marcin Borkowski
2016-04-06 11:49       ` Marcin Borkowski
2016-04-08  7:59         ` Eli Zaretskii
2016-04-08 18:14           ` Marcin Borkowski

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.