From 2366083b823b608aeeff8208b44f6b038bcfbb68 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 19 Feb 2011 10:51:38 +0100 Subject: [PATCH 1/2] Remove org-entry-get from ignore-errors macro --- lisp/org.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index b92186a60..799e06234 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -2382,7 +2382,7 @@ a subtree." "Return the value of `org-log-into-drawer', but let properties overrule. If the current entry has or inherits a LOG_INTO_DRAWER property, it will be used instead of the default value." - (let ((p (ignore-errors (org-entry-get nil "LOG_INTO_DRAWER" 'inherit)))) + (let ((p (org-entry-get nil "LOG_INTO_DRAWER" 'inherit))) (cond ((or (not p) (equal p "nil")) org-log-into-drawer) ((equal p "t") "LOGBOOK") @@ -8416,7 +8416,7 @@ For file links, arg negates `org-context-in-file-links'." link (org-make-link cpltxt)))) ((and (buffer-file-name (buffer-base-buffer)) (org-mode-p)) - (setq custom-id (ignore-errors (org-entry-get nil "CUSTOM_ID"))) + (setq custom-id (org-entry-get nil "CUSTOM_ID")) (cond ((org-in-regexp "<<\\(.*?\\)>>") (setq cpltxt @@ -17425,7 +17425,7 @@ This command does many different things, depending on context: (old-struct (mapcar (lambda (e) (copy-alist e)) struct)) (parents (org-list-parents-alist struct)) (prevs (org-list-prevs-alist struct)) - (orderedp (ignore-errors (org-entry-get nil "ORDERED"))) + (orderedp (org-entry-get nil "ORDERED")) block-item) (org-list-set-checkbox (point-at-bol) struct (cond @@ -17887,10 +17887,10 @@ See the individual commands for more information." :selected org-enforce-todo-dependencies :style toggle :active t] "Settings for tree at point" ["Do Children sequentially" org-toggle-ordered-property :style radio - :selected (ignore-errors (org-entry-get nil "ORDERED")) + :selected (org-entry-get nil "ORDERED") :active org-enforce-todo-dependencies :keys "C-c C-x o"] ["Do Children parallel" org-toggle-ordered-property :style radio - :selected (ignore-errors (not (org-entry-get nil "ORDERED"))) + :selected (not (org-entry-get nil "ORDERED")) :active org-enforce-todo-dependencies :keys "C-c C-x o"] "--" ["Set Priority" org-priority t] From 729564ae749a0101454604bf3c24afda6dcb9379 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 19 Feb 2011 11:27:53 +0100 Subject: [PATCH 2/2] Send list only with cursor at top item * lisp/org.el (org-ctrl-c-ctrl-c): call `org-list-send-list' only when cursor it at very first item of the list, as specified in the manual. Also refactored the list part of the function a bit. --- lisp/org.el | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 799e06234..f597c3430 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -17418,15 +17418,18 @@ This command does many different things, depending on context: (org-footnote-at-definition-p)) (call-interactively 'org-footnote-action)) ((org-at-item-checkbox-p) - ;; Use a light version of `org-toggle-checkbox' to avoid - ;; computing list structure twice. + ;; Cursor at a checkbox: repair list and update checkboxes. Send + ;; list only if at top item. (let* ((cbox (match-string 1)) (struct (org-list-struct)) - (old-struct (mapcar (lambda (e) (copy-alist e)) struct)) + (old-struct (copy-tree struct)) (parents (org-list-parents-alist struct)) (prevs (org-list-prevs-alist struct)) (orderedp (org-entry-get nil "ORDERED")) + (firstp (= (org-list-get-top-point struct) (point-at-bol))) block-item) + ;; Use a light version of `org-toggle-checkbox' to avoid + ;; computing list structure twice. (org-list-set-checkbox (point-at-bol) struct (cond ((equal arg '(16)) "[-]") @@ -17442,23 +17445,25 @@ This command does many different things, depending on context: "Checkboxes were removed due to unchecked box at line %d" (org-current-line block-item))) (org-list-struct-apply-struct struct old-struct) - (org-update-checkbox-count-maybe)) - (org-list-send-list 'maybe)) + (org-update-checkbox-count-maybe) + (when firstp (org-list-send-list 'maybe)))) ((org-at-item-p) - ;; Do checkbox related actions only if function was called with - ;; an argument + ;; Cursor at an item: repair list. Do checkbox related actions + ;; only if function was called with an argument. Send list only + ;; if at top item. (let* ((struct (org-list-struct)) (old-struct (copy-tree struct)) (parents (org-list-parents-alist struct)) - (prevs (org-list-prevs-alist struct))) + (prevs (org-list-prevs-alist struct)) + (firstp (= (org-list-get-top-point struct) (point-at-bol)))) (org-list-struct-fix-ind struct parents) (org-list-struct-fix-bul struct prevs) (when arg (org-list-set-checkbox (point-at-bol) struct "[ ]") (org-list-struct-fix-box struct parents prevs)) (org-list-struct-apply-struct struct old-struct) - (when arg (org-update-checkbox-count-maybe))) - (org-list-send-list 'maybe)) + (when arg (org-update-checkbox-count-maybe)) + (when firstp (org-list-send-list 'maybe)))) ((save-excursion (beginning-of-line 1) (looking-at org-dblock-start-re)) ;; Dynamic block (beginning-of-line 1)