Subject: bug#16296: subword.el regexps shouldn't be constants

From: Phil Sainty <[email-masked]>
Date: Sun, 05 Jan 2014 00:32:25 +1300

On 4/01/2014 11:08, Stefan Monnier wrote:
> If there are reasons for users to change them, then feel free
> to revert them to defvars.

Great, thank you.

On 4/01/2014 07:16, Ted Zlatanov wrote:
> For reference, you mean this commit?
> 
> revno: 113492
> fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13758
> committer: Stefan Monnier <[email-masked]>
> branch nick: trunk
> timestamp: Mon 2013-07-22 12:25:32 -0400
> message:
>   * lisp/progmodes/subword.el: Fix boundary case.
>   (subword-forward-regexp): Make it a constant.  Wrap optional \\W in its
>   own group.
>   (subword-backward-regexp): Make it a constant.
>   (subword-forward-internal): Don't treat a trailing capital as the
>   beginning of a word.
>   * test/automated/subword-tests.el: New file.

Yes, that's the one (although note that I'm not suggesting reverting
that entire commit; just the defvar -> defconst changes).

I've attached a patch.

-Phil

diff --git a/lisp/progmodes/subword.el b/lisp/progmodes/subword.el
index f45b9d1..f9efa37 100644
--- a/lisp/progmodes/subword.el
+++ b/lisp/progmodes/subword.el
@@ -93,11 +93,11 @@
 (defvar subword-backward-function 'subword-backward-internal
   "Function to call for backward subword movement.")
 
-(defconst subword-forward-regexp
+(defvar subword-forward-regexp
   "\\W*\\(\\([[:upper:]]*\\(\\W\\)?\\)[[:lower:][:digit:]]*\\)"
   "Regexp used by `subword-forward-internal'.")
 
-(defconst subword-backward-regexp
+(defvar subword-backward-regexp
   "\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([[:upper:]]+\\W*\\)\\|\\W\\w+\\)"
   "Regexp used by `subword-backward-internal'.")