(with-syntax-table): Redefine it for XEmacs 21.5.
authorKatsumi Yamaoka <yamaoka@jpl.org>
Tue, 24 Feb 2004 09:13:23 +0000 (09:13 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Tue, 24 Feb 2004 09:13:23 +0000 (09:13 +0000)
lisp/ChangeLog
lisp/dgnushack.el

index 29b96d7..4eceb64 100644 (file)
@@ -1,5 +1,7 @@
 2004-02-24  Katsumi Yamaoka  <yamaoka@jpl.org>
 
+       * dgnushack.el (with-syntax-table): Redefine it for XEmacs 21.5.
+
        * message.el (message-setup-fill-variables): Add mml tags to
        paragraph-start and paragraph-separate.  Suggested by Andrew Korty
        <ajk@iu.edu>.
index 83c0f20..bd68608 100644 (file)
@@ -136,6 +136,27 @@ fixed in Emacs after 21.3."
          (setq ad-return-value (cons fn (nreverse backwards))))
       ad-do-it)))
 
+(when (and (featurep 'xemacs)
+          (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table)))
+            (modify-syntax-entry ?= " " table)
+            (with-temp-buffer
+              (with-syntax-table table
+                (insert "foo=bar")
+                (goto-char (point-min))
+                (forward-sexp 1)
+                (eolp)))))
+  ;; The original `with-syntax-table' uses `copy-syntax-table' which
+  ;; doesn't seem to copy modified syntax entries in XEmacs 21.5.
+  (defmacro with-syntax-table (syntab &rest body)
+    "Evaluate BODY with the SYNTAB as the current syntax table."
+    `(let ((stab (syntax-table)))
+       (unwind-protect
+          (progn
+            ;;(set-syntax-table (copy-syntax-table ,syntab))
+            (set-syntax-table ,syntab)
+            ,@body)
+        (set-syntax-table stab)))))
+
 (push srcdir load-path)
 (load (expand-file-name "lpath.el" srcdir) nil t)