Index: emacs/lisp/simple.el diff -c emacs/lisp/simple.el:1.732 emacs/lisp/simple.el:1.733 *** emacs/lisp/simple.el:1.732 Mon Jun 20 13:52:07 2005 --- emacs/lisp/simple.el Thu Jun 23 21:26:31 2005 *************** *** 3433,3450 **** ;; Now move a line. (end-of-line) ;; If there's no invisibility here, move over the newline. ! (if (and (not (integerp selective-display)) ! (not (line-move-invisible-p (point)))) ;; We avoid vertical-motion when possible ;; because that has to fontify. ! (if (eobp) ! (if (not noerror) ! (signal 'end-of-buffer nil) ! (setq done t)) ! (forward-line 1)) ;; Otherwise move a more sophisticated way. ;; (What's the logic behind this code?) ! (and (zerop (vertical-motion 1)) (if (not noerror) (signal 'end-of-buffer nil) (setq done t)))) --- 3433,3460 ---- ;; Now move a line. (end-of-line) ;; If there's no invisibility here, move over the newline. ! (let ((pos-before (point)) ! line-done) ! (if (eobp) ! (if (not noerror) ! (signal 'end-of-buffer nil) ! (setq done t))) ! (when (and (not done) ! (not (integerp selective-display)) ! (not (line-move-invisible-p (point)))) ;; We avoid vertical-motion when possible ;; because that has to fontify. ! (forward-line 1) ! ;; If there are overlays in and around ! ;; the text we moved over, we need to be ! ;; sophisticated. ! (unless (overlays-in (max (1- pos-before) (point-min)) ! (min (1+ (point)) (point-max))) ! (setq line-done t))) ;; Otherwise move a more sophisticated way. ;; (What's the logic behind this code?) ! (and (not done) (not line-done) ! (zerop (vertical-motion 1)) (if (not noerror) (signal 'end-of-buffer nil) (setq done t)))) *************** *** 3454,3471 **** ;; it just goes in the other direction. (while (and (< arg 0) (not done)) (beginning-of-line) ! (if (or (bobp) ! (and (not (integerp selective-display)) ! (not (line-move-invisible-p (1- (point)))))) ! (if (bobp) ! (if (not noerror) ! (signal 'beginning-of-buffer nil) ! (setq done t)) ! (forward-line -1)) ! (if (zerop (vertical-motion -1)) (if (not noerror) (signal 'beginning-of-buffer nil) ! (setq done t)))) (unless done (setq arg (1+ arg)) (while (and ;; Don't move over previous invis lines --- 3464,3487 ---- ;; it just goes in the other direction. (while (and (< arg 0) (not done)) (beginning-of-line) ! (let ((pos-before (point)) ! line-done) ! (if (bobp) (if (not noerror) (signal 'beginning-of-buffer nil) ! (setq done t))) ! (when (and (not done) ! (not (integerp selective-display)) ! (not (line-move-invisible-p (1- (point))))) ! (forward-line -1) ! (unless (overlays-in (max (1- (point)) (point-min)) ! (min (1+ pos-before) (point-max))) ! (setq line-done t))) ! (and (not done) (not line-done) ! (zerop (vertical-motion -1)) ! (if (not noerror) ! (signal 'beginning-of-buffer nil) ! (setq done t)))) (unless done (setq arg (1+ arg)) (while (and ;; Don't move over previous invis lines *************** *** 4504,4513 **** (defvar set-variable-value-history nil "History of values entered with `set-variable'.") ! (defun set-variable (var val &optional make-local) "Set VARIABLE to VALUE. VALUE is a Lisp object. ! When using this interactively, enter a Lisp object for VALUE. ! If you want VALUE to be a string, you must surround it with doublequotes. VALUE is used literally, not evaluated. If VARIABLE has a `variable-interactive' property, that is used as if --- 4520,4530 ---- (defvar set-variable-value-history nil "History of values entered with `set-variable'.") ! (defun set-variable (variable value &optional make-local) "Set VARIABLE to VALUE. VALUE is a Lisp object. ! VARIABLE should be a user option variable name, a Lisp variable ! meant to be customized by users. You should enter VALUE in Lisp syntax, ! so if you want VALUE to be a string, you must surround it with doublequotes. VALUE is used literally, not evaluated. If VARIABLE has a `variable-interactive' property, that is used as if *************** *** 4520,4528 **** (interactive (let* ((default-var (variable-at-point)) (var (if (symbolp default-var) ! (read-variable (format "Set variable (default %s): " default-var) ! default-var) ! (read-variable "Set variable: "))) (minibuffer-help-form '(describe-variable var)) (prop (get var 'variable-interactive)) (prompt (format "Set %s%s to value: " var --- 4537,4545 ---- (interactive (let* ((default-var (variable-at-point)) (var (if (symbolp default-var) ! (read-variable (format "Set variable (default %s): " default-var) ! default-var) ! (read-variable "Set variable: "))) (minibuffer-help-form '(describe-variable var)) (prop (get var 'variable-interactive)) (prompt (format "Set %s%s to value: " var *************** *** 4543,4564 **** 'set-variable-value-history))))) (list var val current-prefix-arg))) ! (and (custom-variable-p var) ! (not (get var 'custom-type)) ! (custom-load-symbol var)) ! (let ((type (get var 'custom-type))) (when type ;; Match with custom type. (require 'cus-edit) (setq type (widget-convert type)) ! (unless (widget-apply type :match val) (error "Value `%S' does not match type %S of %S" ! val (car type) var)))) (if make-local ! (make-local-variable var)) ! (set var val) ;; Force a thorough redisplay for the case that the variable ;; has an effect on the display, like `tab-width' has. --- 4560,4581 ---- 'set-variable-value-history))))) (list var val current-prefix-arg))) ! (and (custom-variable-p variable) ! (not (get variable 'custom-type)) ! (custom-load-symbol variable)) ! (let ((type (get variable 'custom-type))) (when type ;; Match with custom type. (require 'cus-edit) (setq type (widget-convert type)) ! (unless (widget-apply type :match value) (error "Value `%S' does not match type %S of %S" ! value (car type) variable)))) (if make-local ! (make-local-variable variable)) ! (set variable value) ;; Force a thorough redisplay for the case that the variable ;; has an effect on the display, like `tab-width' has.
_______________________________________________ Emacs-diffs mailing list Emacs-diffs@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-diffs