(py-delete-function): new variable
(py-delete-char): funcall py-delete-function.
diff --git a/Misc/python-mode.el b/Misc/python-mode.el
index 545d893..99f51d6 100644
--- a/Misc/python-mode.el
+++ b/Misc/python-mode.el
@@ -275,6 +275,9 @@
(and (fboundp 'make-obsolete-variable)
(make-obsolete-variable 'py-mode-hook 'python-mode-hook))
+(defvar py-delete-function 'backward-delete-char-untabify
+ "*Function called by `py-delete-char' when deleting characters.")
+
(defvar py-mode-map ()
"Keymap used in `python-mode' buffers.")
@@ -992,7 +995,10 @@
;; Functions for Python style indentation
(defun py-delete-char (count)
"Reduce indentation or delete character.
+
If point is at the leftmost column, deletes the preceding newline.
+Deletion is performed by calling the function in `py-delete-function'
+with a single argument (the number of characters to delete).
Else if point is at the leftmost non-blank character of a line that is
neither a continuation line nor a non-indenting comment line, or if
@@ -1011,7 +1017,7 @@
(py-continuation-line-p)
(not py-honor-comment-indentation)
(looking-at "#[^ \t\n]")) ; non-indenting #
- (backward-delete-char-untabify count)
+ (funcall py-delete-function count)
;; else indent the same as the colon line that opened the block
;; force non-blank so py-goto-block-up doesn't ignore it