summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2011-08-21 23:38:30 -0400
committerChong Yidong <cyd@stupidchicken.com>2011-08-21 23:38:30 -0400
commitf13f86fbf2a9bce1abc974a4b2f457183e963d3b (patch)
treeb46180d35b516ab07debb221be0dab0741dc11b6 /lisp
parente013fb340c50dd99676ccc4552fd6aae2e319aa8 (diff)
downloademacs-f13f86fbf2a9bce1abc974a4b2f457183e963d3b.tar.gz
emacs-f13f86fbf2a9bce1abc974a4b2f457183e963d3b.tar.bz2
emacs-f13f86fbf2a9bce1abc974a4b2f457183e963d3b.zip
Fix some word/symbol classifications in scheme-mode's syntax table.
* lisp/progmodes/scheme.el (scheme-mode-syntax-table): Don't use symbol-constituent as the default, as that stops font-lock from working properly. Fixes: debbugs:8843
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/progmodes/scheme.el28
2 files changed, 20 insertions, 14 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 02c88eae667..e8a6cd73826 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2011-08-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * progmodes/scheme.el (scheme-mode-syntax-table): Don't use
+ symbol-constituent as the default, as that stops font-lock from
+ working properly (Bug#8843).
+
2011-08-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
* mail/smtpmail.el (smtpmail-via-smtp): Only bind
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index 4151e2bb79a..470b309434c 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -55,24 +55,24 @@
(defvar scheme-mode-syntax-table
(let ((st (make-syntax-table))
(i 0))
-
- ;; Default is atom-constituent.
- (while (< i 256)
+ ;; Symbol constituents
+ ;; We used to treat chars 128-256 as symbol-constituent, but they
+ ;; should be valid word constituents (Bug#8843). Note that valid
+ ;; identifier characters are Scheme-implementation dependent.
+ (while (< i ?0)
(modify-syntax-entry i "_ " st)
(setq i (1+ i)))
-
- ;; Word components.
- (setq i ?0)
- (while (<= i ?9)
- (modify-syntax-entry i "w " st)
+ (setq i (1+ ?9))
+ (while (< i ?A)
+ (modify-syntax-entry i "_ " st)
(setq i (1+ i)))
- (setq i ?A)
- (while (<= i ?Z)
- (modify-syntax-entry i "w " st)
+ (setq i (1+ ?Z))
+ (while (< i ?a)
+ (modify-syntax-entry i "_ " st)
(setq i (1+ i)))
- (setq i ?a)
- (while (<= i ?z)
- (modify-syntax-entry i "w " st)
+ (setq i (1+ ?z))
+ (while (< i 128)
+ (modify-syntax-entry i "_ " st)
(setq i (1+ i)))
;; Whitespace