Bug fix in org-beginning-of-line visual line motion
authorToby S. Cubitt <tsc25@cantab.net>
Tue, 6 Nov 2012 18:06:26 +0000 (19:06 +0100)
committerNicolas Goaziou <n.goaziou@gmail.com>
Fri, 9 Nov 2012 01:46:21 +0000 (02:46 +0100)
* lisp/org.el (org-beginning-of-line): check `visual-line-mode'
instead of `line-visual-mode' to determine whether to move by visual
lines.

* lisp/org.el (org-kill-line): use of org-bound-and-true-p macro.

* testing/lisp/test-org.el: Add test

lisp/org.el
testing/lisp/test-org.el

index fabfd5c..7b85a11 100644 (file)
@@ -21271,7 +21271,7 @@ beyond the end of the headline."
                     (car org-special-ctrl-a/e)
                   org-special-ctrl-a/e))
        refpos)
-    (if (org-bound-and-true-p line-move-visual)
+    (if (org-bound-and-true-p visual-line-mode)
        (beginning-of-visual-line 1)
       (beginning-of-line 1))
     (if (and arg (fboundp 'move-beginning-of-line))
@@ -21398,7 +21398,7 @@ depending on context."
                (not (y-or-n-p "Kill hidden subtree along with headline? ")))
            (error "C-k aborted - would kill hidden subtree")))
     (call-interactively
-     (if (and (boundp 'visual-line-mode) visual-line-mode) 'kill-visual-line 'kill-line)))
+     (if (org-bound-and-true-p visual-line-mode) 'kill-visual-line 'kill-line)))
    ((looking-at (org-re ".*?\\S-\\([ \t]+\\(:[[:alnum:]_@#%:]+:\\)\\)[ \t]*$"))
     (kill-region (point) (match-beginning 1))
     (org-set-tags nil t))
index 1426378..3e38886 100644 (file)
@@ -418,12 +418,44 @@ http://article.gmane.org/gmane.emacs.orgmode/21459/"
  \f
 ;; Navigation
 
+(ert-deftest test-org/beginning-of-line ()
+  "Test `org-beginning-of-line' specifications."
+  ;; Standard test.
+  (should
+   (org-test-with-temp-text "Some text\nSome other text"
+     (progn (org-beginning-of-line) (bolp))))
+  ;; Standard test with `visual-line-mode'.
+  (should-not
+   (org-test-with-temp-text "A long line of text\nSome other text"
+     (progn (visual-line-mode)
+           (forward-char 2)
+           (dotimes (i 1000) (insert "very "))
+           (org-beginning-of-line)
+           (bolp))))
+  ;; At an headline with special movement.
+  (should
+   (org-test-with-temp-text "* TODO Headline"
+     (let ((org-special-ctrl-a/e t))
+       (org-end-of-line)
+       (and (progn (org-beginning-of-line) (looking-at "Headline"))
+           (progn (org-beginning-of-line) (bolp))
+           (progn (org-beginning-of-line) (looking-at "Headline")))))))
+
 (ert-deftest test-org/end-of-line ()
   "Test `org-end-of-line' specifications."
   ;; Standard test.
   (should
    (org-test-with-temp-text "Some text\nSome other text"
      (progn (org-end-of-line) (eolp))))
+  ;; Standard test with `visual-line-mode'.
+  (should-not
+   (org-test-with-temp-text "A long line of text\nSome other text"
+     (progn (visual-line-mode)
+           (forward-char 2)
+           (dotimes (i 1000) (insert "very "))
+           (goto-char (point-min))
+           (org-end-of-line)
+           (eolp))))
   ;; At an headline with special movement.
   (should
    (org-test-with-temp-text "* Headline :tag:"
@@ -451,9 +483,10 @@ http://article.gmane.org/gmane.emacs.orgmode/21459/"
   ;; At a block with hidden contents.
   (should-not
    (org-test-with-temp-text "#+BEGIN_CENTER\nContents\n#+END_CENTER"
-     (progn (org-hide-block-toggle)
-           (org-end-of-line)
-           (eobp)))))
+     (let ((org-special-ctrl-a/e t))
+       (org-hide-block-toggle)
+       (org-end-of-line)
+       (eobp)))))
 
 (ert-deftest test-org/forward-element ()
   "Test `org-forward-element' specifications."