* lisp/emacs-lisp/cl-generic.el: Add (major-mode MODE) context
commit84dcdbeb740222a9e3da636b87a2b757acc11334
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 29 Oct 2015 15:06:31 +0000 (29 11:06 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 29 Oct 2015 15:06:31 +0000 (29 11:06 -0400)
tree62723aefccd747b5cd5c26de7186981b58cba43f
parenta4f754ca0bc00311b38adf3d498c30ce82c3170d
* lisp/emacs-lisp/cl-generic.el: Add (major-mode MODE) context

(cl--generic-derived-specializers): New function.
(cl--generic-derived-generalizer): New generalizer.
(cl-generic-generalizers): New specializer (derived-mode MODE).
(cl--generic-split-args): Apply the rewriter, if any.
(cl-generic-define-context-rewriter): New macro.
(major-mode): Use it to define a new context-rewriter, so we can write
`(major-mode MODE)' instead of `(major-mode (derived-mode MODE))'.

* lisp/frame.el (window-system): New context-rewriter so we can write
`(window-system VAL)' instead of (window-system (eql VAL)).
(cl--generic-split-args): Apply the rewriter, if any.
(frame-creation-function): Use the new syntax.

* lisp/term/x-win.el (window-system-initialization)
(handle-args-function, frame-creation-function)
(gui-backend-set-selection, gui-backend-selection-owner-p)
(gui-backend-selection-exists-p, gui-backend-get-selection):
* lisp/term/w32-win.el (window-system-initialization)
(handle-args-function, frame-creation-function)
(gui-backend-set-selection, gui-backend-get-selection)
(gui-backend-selection-owner-p, gui-backend-selection-exists-p):
* lisp/term/pc-win.el (gui-backend-get-selection)
(gui-backend-selection-exists-p, gui-backend-selection-owner-p)
(gui-backend-set-selection, window-system-initialization)
(frame-creation-function, handle-args-function):
* lisp/term/ns-win.el (window-system-initialization)
(handle-args-function, frame-creation-function)
(gui-backend-set-selection, gui-backend-selection-exists-p)
(gui-backend-get-selection):
* lisp/startup.el (handle-args-function):
* lisp/term/xterm.el (gui-backend-get-selection)
(gui-backend-set-selection): Use the new syntax.
lisp/emacs-lisp/cl-generic.el
lisp/frame.el
lisp/startup.el
lisp/term/ns-win.el
lisp/term/pc-win.el
lisp/term/w32-win.el
lisp/term/x-win.el
lisp/term/xterm.el