emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

scheme.el bug & fix


From: David PONCE
Subject: scheme.el bug & fix
Date: Fri, 14 Feb 2003 11:44:09 +0100 (MET)

Hi All,

With today Emacs 21.3.50.1, `scheme-mode' don't setup a correct
syntax-table.  And, for example, comments are considered as normal
code!

The problem is that `scheme-mode-syntax-table' is not initialized
with the syntax-table built in the let form, but with a standard
syntax table.

I applied the following patch to my local copy of scheme.el, to fix
that.

Hope it will help.
David

Index: lisp/progmodes/scheme.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/progmodes/scheme.el,v
retrieving revision 1.42
diff -c -r1.42 scheme.el
*** lisp/progmodes/scheme.el    11 Feb 2003 21:23:00 -0000      1.42
--- lisp/progmodes/scheme.el    14 Feb 2003 10:27:49 -0000
***************
*** 56,110 ****
  (defvar scheme-mode-syntax-table
    (let ((st (make-syntax-table))
        (i 0))
!     (with-syntax-table st
!
!       ;; Default is atom-constituent.
!       (while (< i 256)
!       (modify-syntax-entry i "_   ")
!       (setq i (1+ i)))
!
!       ;; Word components.
!       (setq i ?0)
!       (while (<= i ?9)
!       (modify-syntax-entry i "w   ")
!       (setq i (1+ i)))
!       (setq i ?A)
!       (while (<= i ?Z)
!       (modify-syntax-entry i "w   ")
!       (setq i (1+ i)))
!       (setq i ?a)
!       (while (<= i ?z)
!       (modify-syntax-entry i "w   ")
!       (setq i (1+ i)))
!
!       ;; Whitespace
!       (modify-syntax-entry ?\t "    ")
!       (modify-syntax-entry ?\n ">   ")
!       (modify-syntax-entry ?\f "    ")
!       (modify-syntax-entry ?\r "    ")
!       (modify-syntax-entry ?  "    ")
!
!       ;; These characters are delimiters but otherwise undefined.
!       ;; Brackets and braces balance for editing convenience.
!       (modify-syntax-entry ?\[ "(]  ")
!       (modify-syntax-entry ?\] ")[  ")
!       (modify-syntax-entry ?{ "(}  ")
!       (modify-syntax-entry ?} "){  ")
!       (modify-syntax-entry ?\| "  23")
!
!       ;; Other atom delimiters
!       (modify-syntax-entry ?\( "()  ")
!       (modify-syntax-entry ?\) ")(  ")
!       (modify-syntax-entry ?\; "<   ")
!       (modify-syntax-entry ?\" "\"    ")
!       (modify-syntax-entry ?' "  p")
!       (modify-syntax-entry ?` "  p")
!
!       ;; Special characters
!       (modify-syntax-entry ?, "_ p")
!       (modify-syntax-entry ?@ "_ p")
!       (modify-syntax-entry ?# "_ p14")
!       (modify-syntax-entry ?\\ "\\   "))
      st))

  (defvar scheme-mode-abbrev-table nil)
--- 56,109 ----
  (defvar scheme-mode-syntax-table
    (let ((st (make-syntax-table))
        (i 0))
!
!     ;; Default is atom-constituent.
!     (while (< i 256)
!       (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+ i)))
!     (setq i ?A)
!     (while (<= i ?Z)
!       (modify-syntax-entry i "w   " st)
!       (setq i (1+ i)))
!     (setq i ?a)
!     (while (<= i ?z)
!       (modify-syntax-entry i "w   " st)
!       (setq i (1+ i)))
!
!     ;; Whitespace
!     (modify-syntax-entry ?\t "    " st)
!     (modify-syntax-entry ?\n ">   " st)
!     (modify-syntax-entry ?\f "    " st)
!     (modify-syntax-entry ?\r "    " st)
!     (modify-syntax-entry ?  "    " st)
!
!     ;; These characters are delimiters but otherwise undefined.
!     ;; Brackets and braces balance for editing convenience.
!     (modify-syntax-entry ?\[ "(]  " st)
!     (modify-syntax-entry ?\] ")[  " st)
!     (modify-syntax-entry ?{ "(}  " st)
!     (modify-syntax-entry ?} "){  " st)
!     (modify-syntax-entry ?\| "  23" st)
!
!     ;; Other atom delimiters
!     (modify-syntax-entry ?\( "()  " st)
!     (modify-syntax-entry ?\) ")(  " st)
!     (modify-syntax-entry ?\; "<   " st)
!     (modify-syntax-entry ?\" "\"    " st)
!     (modify-syntax-entry ?' "  p" st)
!     (modify-syntax-entry ?` "  p" st)
!
!     ;; Special characters
!     (modify-syntax-entry ?, "_ p" st)
!     (modify-syntax-entry ?@ "_ p" st)
!     (modify-syntax-entry ?# "_ p14" st)
!     (modify-syntax-entry ?\\ "\\   " st)
      st))

  (defvar scheme-mode-abbrev-table nil)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]