Browse Source

Merge branch 'maint'

Nicolas Goaziou 12 years ago
parent
commit
854ddf635c
1 changed files with 9 additions and 14 deletions
  1. 9 14
      lisp/org.el

+ 9 - 14
lisp/org.el

@@ -21637,10 +21637,12 @@ tags on the first attempt, and only move to after the tags when
 the cursor is already beyond the end of the headline."
 the cursor is already beyond the end of the headline."
   (interactive "P")
   (interactive "P")
   (let ((special (if (consp org-special-ctrl-a/e) (cdr org-special-ctrl-a/e)
   (let ((special (if (consp org-special-ctrl-a/e) (cdr org-special-ctrl-a/e)
-		   org-special-ctrl-a/e)))
-    (if (or (not special) arg)
-	(call-interactively
-	 (if (fboundp 'move-end-of-line) 'move-end-of-line 'end-of-line))
+		   org-special-ctrl-a/e))
+	(move-fun (cond ((org-bound-and-true-p visual-line-mode)
+			 'end-of-visual-line)
+			((fboundp 'move-end-of-line) 'move-end-of-line)
+			(t 'end-of-line))))
+    (if (or (not special) arg) (call-interactively move-fun)
       (let* ((element (save-excursion (beginning-of-line)
       (let* ((element (save-excursion (beginning-of-line)
 				      (org-element-at-point)))
 				      (org-element-at-point)))
 	     (type (org-element-type element)))
 	     (type (org-element-type element)))
@@ -21657,19 +21659,12 @@ the cursor is already beyond the end of the headline."
 			  (not (eq this-command last-command)))
 			  (not (eq this-command last-command)))
 		      (goto-char (match-end 0))
 		      (goto-char (match-end 0))
 		    (goto-char (match-beginning 1))))
 		    (goto-char (match-beginning 1))))
-	      (call-interactively
-	       (if (fboundp 'move-end-of-line) 'move-end-of-line
-		 'end-of-line)))))
-	 ((memq type
-		'(center-block comment-block drawer dynamic-block example-block
-			       export-block item plain-list property-drawer
-			       quote-block special-block src-block verse-block))
+	      (call-interactively move-fun))))
+	 ((org-element-property :hiddenp element)
 	  ;; If element is hidden, `move-end-of-line' would put point
 	  ;; If element is hidden, `move-end-of-line' would put point
 	  ;; after it.  Use `end-of-line' to stay on current line.
 	  ;; after it.  Use `end-of-line' to stay on current line.
 	  (call-interactively 'end-of-line))
 	  (call-interactively 'end-of-line))
-	 (t
-	  (call-interactively
-	   (if (fboundp 'move-end-of-line) 'move-end-of-line 'end-of-line))))))
+	 (t (call-interactively move-fun)))))
     (org-no-warnings (and (featurep 'xemacs) (setq zmacs-region-stays t)))))
     (org-no-warnings (and (featurep 'xemacs) (setq zmacs-region-stays t)))))
 
 
 (define-key org-mode-map "\C-a" 'org-beginning-of-line)
 (define-key org-mode-map "\C-a" 'org-beginning-of-line)