Show
Ignore:
Timestamp:
08/18/06 08:35:31 (2 years ago)
Author:
miyoshi
Message:

Sync up with Emacs CVS HEAD.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lisp/simple.el

    r4140 r4148  
    37713771  (or arg (setq arg 1)) 
    37723772 
    3773   (let ((orig (point))) 
     3773  (let ((orig (point)) 
     3774        start first-vis first-vis-field-value) 
    37743775 
    37753776    ;; Move by lines, if ARG is not 1 (the default). 
     
    37823783      (goto-char (previous-char-property-change (point))) 
    37833784      (skip-chars-backward "^\n")) 
    3784  
    3785     ;; Take care of fields. 
    3786     (goto-char (constrain-to-field (point) orig 
    3787                                    (/= arg 1) t nil)))) 
     3785    (setq start (point)) 
     3786 
     3787    ;; Now find first visible char in the line 
     3788    (while (and (not (eobp)) (line-move-invisible-p (point))) 
     3789      (goto-char (next-char-property-change (point)))) 
     3790    (setq first-vis (point)) 
     3791 
     3792    ;; See if fields would stop us from reaching FIRST-VIS. 
     3793    (setq first-vis-field-value 
     3794          (constrain-to-field first-vis orig (/= arg 1) t nil)) 
     3795 
     3796    (goto-char (if (/= first-vis-field-value first-vis) 
     3797                   ;; If yes, obey them. 
     3798                   first-vis-field-value 
     3799                 ;; Otherwise, move to START with attention to fields. 
     3800                 ;; (It is possible that fields never matter in this case.) 
     3801                 (constrain-to-field (point) orig 
     3802                                     (/= arg 1) t nil))))) 
    37883803 
    37893804