diff options
author | Nicolas Goaziou <n.goaziou@gmail.com> | 2014-01-10 11:22:49 +0100 |
---|---|---|
committer | Nicolas Goaziou <n.goaziou@gmail.com> | 2014-01-10 11:22:49 +0100 |
commit | 8720c4980724229545755b08fbac1724cd2e74be (patch) | |
tree | f469b747a2c1ffda3cce02fbbc0cdc83382a6c60 | |
parent | 432decf7257bae34d0d2cdf0bbce2cefde6b51c3 (diff) | |
download | org-mode-8720c4980724229545755b08fbac1724cd2e74be.tar.gz |
Speed improvement
* lisp/org.el (org-get-previous-line-level): Do not call
`org-current-level' twice unless necessary. Also, avoid using
`line-number-at-pos' when the information needed is to know if point
is in the first line of the visible part of the buffer.
-rw-r--r-- | lisp/org.el | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/lisp/org.el b/lisp/org.el index edbcc09..8949b02 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -7887,14 +7887,10 @@ The level is the number of stars at the beginning of the headline." "Return the outline depth of the last headline before the current line. Returns 0 for the first headline in the buffer, and nil if before the first headline." - (let ((current-level (org-current-level)) - (prev-level (when (> (line-number-at-pos) 1) - (save-excursion - (beginning-of-line 0) - (org-current-level))))) - (cond ((null current-level) nil) ; Before first headline - ((null prev-level) 0) ; At first headline - (prev-level)))) + (and (org-current-level) + (or (and (/= (line-beginning-position) (point-min)) + (save-excursion (beginning-of-line 0) (org-current-level))) + 0))) (defun org-reduced-level (l) "Compute the effective level of a heading. |