aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/emacs-lisp/easy-mmode.el8
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index 60c613022e1..c2ff0701eb1 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -335,17 +335,23 @@ ARGS is a list of additional arguments."
335;;; 335;;;
336 336
337(defun easy-mmode-define-syntax (css args) 337(defun easy-mmode-define-syntax (css args)
338 (let ((st (make-syntax-table (cadr (memq :copy args))))) 338 (let ((st (make-syntax-table (plist-get args :copy)))
339 (parent (plist-get args :inherit)))
339 (dolist (cs css) 340 (dolist (cs css)
340 (let ((char (car cs)) 341 (let ((char (car cs))
341 (syntax (cdr cs))) 342 (syntax (cdr cs)))
342 (if (sequencep char) 343 (if (sequencep char)
343 (mapcar (lambda (c) (modify-syntax-entry c syntax st)) char) 344 (mapcar (lambda (c) (modify-syntax-entry c syntax st)) char)
344 (modify-syntax-entry char syntax st)))) 345 (modify-syntax-entry char syntax st))))
346 (if parent (set-char-table-parent
347 st (if (symbolp parent) (symbol-value parent) parent)))
345 st)) 348 st))
346 349
347;;;###autoload 350;;;###autoload
348(defmacro easy-mmode-defsyntax (st css doc &rest args) 351(defmacro easy-mmode-defsyntax (st css doc &rest args)
352 "Define variable ST as a syntax-table.
353CSS contains a list of syntax specifications of the form (CHAR . SYNTAX).
354"
349 `(progn 355 `(progn
350 (autoload 'easy-mmode-define-syntax "easy-mmode") 356 (autoload 'easy-mmode-define-syntax "easy-mmode")
351 (defconst ,st (easy-mmode-define-syntax ,css ,(cons 'list args)) doc))) 357 (defconst ,st (easy-mmode-define-syntax ,css ,(cons 'list args)) doc)))