summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1995-03-15 19:55:55 (GMT)
committerGuido van Rossum <guido@python.org>1995-03-15 19:55:55 (GMT)
commitd97cc37489f434ec78021576391fac66e549ff1d (patch)
tree0914b6c900a257de5f0a02cf3196d1a3822d1c17
parentd865bc59843bcdaacd257d87c8382759dd21d9f2 (diff)
downloadcpython-d97cc37489f434ec78021576391fac66e549ff1d.zip
cpython-d97cc37489f434ec78021576391fac66e549ff1d.tar.gz
cpython-d97cc37489f434ec78021576391fac66e549ff1d.tar.bz2
barry's 2.13 -- minor reworking of code (added py-outdent-p)
-rw-r--r--Misc/python-mode-old.el35
1 files changed, 19 insertions, 16 deletions
diff --git a/Misc/python-mode-old.el b/Misc/python-mode-old.el
index 2894b9b..24a492a 100644
--- a/Misc/python-mode-old.el
+++ b/Misc/python-mode-old.el
@@ -6,8 +6,8 @@
;; 1992-1994 Tim Peters <tim@ksr.com>
;; Maintainer: bwarsaw@cnri.reston.va.us
;; Created: Feb 1992
-;; Version: 2.12
-;; Last Modified: 1995/03/14 20:53:08
+;; Version: 2.13
+;; Last Modified: 1995/03/14 22:05:53
;; Keywords: python editing language major-mode
;; This software is provided as-is, without express or implied
@@ -68,7 +68,7 @@
;; LCD Archive Entry:
;; python-mode|Barry A. Warsaw|bwarsaw@cnri.reston.va.us
;; |Major mode for editing Python programs
-;; |1995/03/14 20:53:08|2.12|
+;; |1995/03/14 22:05:53|2.13|
;;; Code:
@@ -403,6 +403,19 @@ py-beep-if-tab-change\tring the bell if tab-width is changed"
;; electric characters
+(defun py-outdent-p ()
+ ;; returns non-nil if the current line should outdent one level
+ (save-excursion
+ (and (progn (back-to-indentation)
+ (looking-at py-outdent-re))
+ (progn (backward-to-indentation 1)
+ (while (or (looking-at py-blank-or-comment-re)
+ (bobp))
+ (backward-to-indentation 1))
+ (not (looking-at py-no-outdent-re)))
+ )))
+
+
(defun py-electric-colon (arg)
"Insert a colon.
In certain cases the line is outdented appropriately. If a numeric
@@ -414,13 +427,7 @@ argument is provided, that many colons are inserted non-electrically."
(outdent 0)
(indent (py-compute-indentation)))
(if (and (not arg)
- (progn
- (back-to-indentation)
- (looking-at py-outdent-re))
- (prog2
- (backward-to-indentation 1)
- (not (looking-at py-no-outdent-re))
- (goto-char here))
+ (py-outdent-p)
(= indent (progn
(forward-line -1)
(py-compute-indentation)))
@@ -650,11 +657,7 @@ needed so that only a single column position is deleted."
(move-to-indentation-p (<= (current-column) ci))
(need (py-compute-indentation)))
;; see if we need to outdent
- (if (save-excursion
- (and (progn (back-to-indentation)
- (looking-at py-outdent-re))
- (progn (backward-to-indentation 1)
- (not (looking-at py-no-outdent-re)))))
+ (if (py-outdent-p)
(setq need (- need py-indent-offset)))
(if (/= ci need)
(save-excursion
@@ -1860,7 +1863,7 @@ local bindings to py-newline-and-indent."))
(setq zmacs-region-stays t)))
-(defconst py-version "2.12"
+(defconst py-version "2.13"
"`python-mode' version number.")
(defconst py-help-address "bwarsaw@cnri.reston.va.us"
"Address accepting submission of bug reports.")