Mercurial > emacs
changeset 96384:59d141ae8c74
cc-mode.el (c-mode-base-map): Don't bind C-M-[ae] to the CC Mode specific
functions; this is no longer needed, since {beginning,end}-of-defun now
pass ARG to ...-of-defun-function.
cc-defs.el (c-emacs-features): new feature 'argumentative-bod-function.
----------------------------------------------------------------------
cc-defs.el cc-mode.el CVS:
----------------------------------------------------------------------
author | Alan Mackenzie <acm@muc.de> |
---|---|
date | Fri, 27 Jun 2008 21:12:46 +0000 |
parents | ced419734e6f |
children | 01647003e227 |
files | lisp/progmodes/cc-defs.el lisp/progmodes/cc-mode.el |
diffstat | 2 files changed, 14 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/cc-defs.el Fri Jun 27 21:09:47 2008 +0000 +++ b/lisp/progmodes/cc-defs.el Fri Jun 27 21:12:46 2008 +0000 @@ -1440,6 +1440,14 @@ '1-bit) list))) + ;; In Emacs >= 23, beginning-of-defun will passes its parameter to + ;; beginning-of-defun-function. Assume end-of-defun does the same. + (let ((beginning-of-defun-function + (lambda (&optional arg) + (not (eq arg nil))))) + (if (beginning-of-defun 1) + (setq list (cons 'argumentative-bod-function list)))) + (let ((buf (generate-new-buffer " test")) parse-sexp-lookup-properties parse-sexp-ignore-comments @@ -1539,6 +1547,9 @@ '8-bit 8 bit syntax entry flags (XEmacs style). '1-bit 1 bit syntax entry flags (Emacs style). +'argumentative-bod-function beginning-of-defun passes ARG through + to a non-null beginning-of-defun-function. It is assumed + the end-of-defun does the same thing. 'syntax-properties It works to override the syntax for specific characters in the buffer with the 'syntax-table property. It's always set - CC Mode no longer works in emacsen without
--- a/lisp/progmodes/cc-mode.el Fri Jun 27 21:09:47 2008 +0000 +++ b/lisp/progmodes/cc-mode.el Fri Jun 27 21:12:46 2008 +0000 @@ -285,8 +285,9 @@ ;; RMS says don't make these the default. ;; (April 2006): RMS has now approved these commands as defaults. - (define-key c-mode-base-map "\e\C-a" 'c-beginning-of-defun) - (define-key c-mode-base-map "\e\C-e" 'c-end-of-defun) + (unless (memq 'argumentative-bod-function c-emacs-features) + (define-key c-mode-base-map "\e\C-a" 'c-beginning-of-defun) + (define-key c-mode-base-map "\e\C-e" 'c-end-of-defun)) (define-key c-mode-base-map "\C-c\C-n" 'c-forward-conditional) (define-key c-mode-base-map "\C-c\C-p" 'c-backward-conditional)