Mercurial > hg > xemacs-beta
diff lisp/modes/cperl-mode.el @ 161:28f395d8dc7a r20-3b7
Import from CVS: tag r20-3b7
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:42:26 +0200 |
parents | 3bb7ccffb0c0 |
children | 85ec50267440 |
line wrap: on
line diff
--- a/lisp/modes/cperl-mode.el Mon Aug 13 09:41:47 2007 +0200 +++ b/lisp/modes/cperl-mode.el Mon Aug 13 09:42:26 2007 +0200 @@ -32,7 +32,7 @@ ;;; Corrections made by Ilya Zakharevich ilya@math.mps.ohio-state.edu ;;; XEmacs changes by Peter Arius arius@informatik.uni-erlangen.de -;; $Id: cperl-mode.el,v 1.10 1997/06/11 19:25:59 steve Exp $ +;; $Id: cperl-mode.el,v 1.11 1997/06/14 20:31:09 steve Exp $ ;;; To use this mode put the following into your .emacs file: @@ -713,7 +713,8 @@ (cperl-define-key "\e\C-q" 'cperl-indent-exp) ; Usually not bound ;;(cperl-define-key "\M-q" 'cperl-fill-paragraph) ;;(cperl-define-key "\e;" 'cperl-indent-for-comment) - (cperl-define-key 'delete 'cperl-electric-backspace) + (cperl-define-key 'backspace 'cperl-electric-backspace) + (cperl-define-key 'delete 'cperl-electric-delete) (cperl-define-key "\t" 'cperl-indent-command) ;; don't clobber the backspace binding: (cperl-define-key "\C-hf" 'cperl-info-on-command [(control h) f]) @@ -1548,7 +1549,23 @@ (defun cperl-electric-backspace (arg) "Backspace-untabify, or remove the whitespace inserted by an electric key." - (interactive "*P") + (interactive "*p") + (if (and cperl-auto-newline + (memq last-command '(cperl-electric-semi + cperl-electric-terminator + cperl-electric-lbrace)) + (memq (preceding-char) '(? ?\t ?\n))) + (let (p) + (if (eq last-command 'cperl-electric-lbrace) + (skip-chars-forward " \t\n")) + (setq p (point)) + (skip-chars-backward " \t\n") + (delete-region (point) p)) + (backward-delete-char-untabify arg))) + +(defun cperl-electric-delete (arg) + "Backspace-untabify, or remove the whitespace inserted by an electric key." + (interactive "*p") (if (and cperl-auto-newline (memq last-command '(cperl-electric-semi cperl-electric-terminator @@ -1561,8 +1578,8 @@ (skip-chars-backward " \t\n") (delete-region (point) p)) (if (fboundp 'backward-or-forward-delete-char) - (backward-or-forward-delete-char (prefix-numeric-value arg)) - (backward-delete-char-untabify (prefix-numeric-value arg))))) + (backward-or-forward-delete-char arg) + (backward-delete-char-untabify arg)))) (defun cperl-inside-parens-p () (condition-case ()