]> granicus.if.org Git - python/commitdiff
bpo-21474: Update IDLE word/identifier definition from ascii to unicode. (GH-6643)
authorTerry Jan Reedy <tjreedy@udel.edu>
Mon, 30 Apr 2018 07:08:01 +0000 (03:08 -0400)
committerGitHub <noreply@github.com>
Mon, 30 Apr 2018 07:08:01 +0000 (03:08 -0400)
In text and entry boxes, this affects selection by double-click,
movement left/right by control-left/right, and deletion left/right
by control-BACKSPACE/DEL.

Lib/idlelib/editor.py
Misc/NEWS.d/next/IDLE/2018-04-29-16-13-02.bpo-21474.bglg-F.rst [new file with mode: 0644]

index ab9c7e615ef09e516000ca5681528227c0b1cbb5..892b64ba696df220d3fd33f4784702655134312f 100644 (file)
@@ -1658,12 +1658,12 @@ def get_accelerator(keydefs, eventname):
 
 
 def fixwordbreaks(root):
-    # Make sure that Tk's double-click and next/previous word
-    # operations use our definition of a word (i.e. an identifier)
+    # On Windows, tcl/tk breaks 'words' only on spaces, as in Command Prompt.
+    # We want Motif style everywhere. See #21474, msg218992 and followup.
     tk = root.tk
     tk.call('tcl_wordBreakAfter', 'a b', 0) # make sure word.tcl is loaded
-    tk.call('set', 'tcl_wordchars', '[a-zA-Z0-9_]')
-    tk.call('set', 'tcl_nonwordchars', '[^a-zA-Z0-9_]')
+    tk.call('set', 'tcl_wordchars', r'\w')
+    tk.call('set', 'tcl_nonwordchars', r'\W')
 
 
 def _editor_window(parent):  # htest #
diff --git a/Misc/NEWS.d/next/IDLE/2018-04-29-16-13-02.bpo-21474.bglg-F.rst b/Misc/NEWS.d/next/IDLE/2018-04-29-16-13-02.bpo-21474.bglg-F.rst
new file mode 100644 (file)
index 0000000..caf640b
--- /dev/null
@@ -0,0 +1,3 @@
+Update word/identifier definition from ascii to unicode. In text and entry
+boxes, this affects selection by double-click, movement left/right by
+control-left/right, and deletion left/right by control-BACKSPACE/DEL.