Tiny refactoring

* lisp/org.el (org-ctrl-c-ctrl-c): Tiny refactoring.
This commit is contained in:
Nicolas Goaziou 2015-02-05 18:12:23 +01:00
parent e76a541865
commit ab9e9d2857
1 changed files with 10 additions and 10 deletions

View File

@ -20744,11 +20744,11 @@ This command does many different things, depending on context:
(funcall org-finish-function)) (funcall org-finish-function))
((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-hook)) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-hook))
(t (t
(let* ((context (org-element-context)) (type (org-element-type context))) (if (save-excursion (beginning-of-line) (looking-at "[ \t]*$"))
;; Test if point is within a blank line. (or (run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook)
(if (save-excursion (beginning-of-line) (looking-at "[ \t]*$")) (user-error "C-c C-c can do nothing useful at this location"))
(or (run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (let* ((context (org-element-context))
(user-error "C-c C-c can do nothing useful at this location")) (type (org-element-type context)))
(case type (case type
;; When at a link, act according to the parent instead. ;; When at a link, act according to the parent instead.
(link (setq context (org-element-property :parent context)) (link (setq context (org-element-property :parent context))
@ -20758,16 +20758,16 @@ This command does many different things, depending on context:
((bold code entity export-snippet inline-babel-call inline-src-block ((bold code entity export-snippet inline-babel-call inline-src-block
italic latex-fragment line-break macro strike-through subscript italic latex-fragment line-break macro strike-through subscript
superscript underline verbatim) superscript underline verbatim)
(while (and (setq context (org-element-property :parent context)) (setq context
(not (memq (setq type (org-element-type context)) (org-element-lineage
'(radio-target paragraph verse-block context '(radio-target paragraph verse-block table-cell)))))
table-cell)))))))
;; For convenience: at the first line of a paragraph on the ;; For convenience: at the first line of a paragraph on the
;; same line as an item, apply function on that item instead. ;; same line as an item, apply function on that item instead.
(when (eq type 'paragraph) (when (eq type 'paragraph)
(let ((parent (org-element-property :parent context))) (let ((parent (org-element-property :parent context)))
(when (and (eq (org-element-type parent) 'item) (when (and (eq (org-element-type parent) 'item)
(= (point-at-bol) (org-element-property :begin parent))) (= (line-beginning-position)
(org-element-property :begin parent)))
(setq context parent type 'item)))) (setq context parent type 'item))))
;; Act according to type of element or object at point. ;; Act according to type of element or object at point.
(case type (case type