summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1997-03-22 03:54:14 +0000
committerRichard M. Stallman <rms@gnu.org>1997-03-22 03:54:14 +0000
commitc6e44e65c9c5a1f3ae624b9f22bdae23febfab5d (patch)
tree621010a2d1de59bc22067c1cd20f1a72c188da79
parentfde38d34ba388d26a1517cba63e5c97727b976ef (diff)
downloademacs-c6e44e65c9c5a1f3ae624b9f22bdae23febfab5d.tar.gz
(newline): Be more conservative about when to use the optimization.
(universal-argument-more): If previous arg is `-', change that to -4.
-rw-r--r--lisp/simple.el18
1 files changed, 16 insertions, 2 deletions
diff --git a/lisp/simple.el b/lisp/simple.el
index 715660b174f..7f8aa1deff0 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -39,8 +39,20 @@ In Auto Fill mode, if no numeric arg, break the preceding line if it's long."
;; the end of the previous line.
(let ((flag (and (not (bobp))
(bolp)
+ ;; Make sure no functions want to be told about
+ ;; the range of the changes.
+ (not after-change-function)
+ (not before-change-function)
+ (not after-change-functions)
+ (not before-change-functions)
;; Make sure there are no markers here.
(not (buffer-has-markers-at (1- (point))))
+ ;; Make sure no text properties want to know
+ ;; where the change was.
+ (not (get-char-property (1- (point)) 'modification-hooks))
+ (not (get-char-property (1- (point)) 'insert-behind-hooks))
+ (or (eobp)
+ (not (get-char-property (point) 'insert-in-front-hooks)))
;; Make sure the newline before point isn't intangible.
(not (get-char-property (1- (point)) 'intangible))
;; Make sure the newline before point isn't read-only.
@@ -1003,8 +1015,10 @@ These commands include \\[set-mark-command] and \\[start-kbd-macro]."
(interactive "P")
(if (consp arg)
(setq prefix-arg (list (* 4 (car arg))))
- (setq prefix-arg arg)
- (setq overriding-terminal-local-map nil))
+ (if (eq arg '-)
+ (setq prefix-arg (list -4))
+ (setq prefix-arg arg)
+ (setq overriding-terminal-local-map nil)))
(setq universal-argument-num-events (length (this-command-keys))))
(defun negative-argument (arg)