diff --git a/lisp/org-capture.el b/lisp/org-capture.el index 3f53fee61..acdcf5365 100644 --- a/lisp/org-capture.el +++ b/lisp/org-capture.el @@ -474,38 +474,34 @@ When LOCAL is set, use the local variable `org-capture-current-plist', this is necessary after initialization of the capture process, to avoid conflicts with other active capture processes." (plist-get (if local org-capture-current-plist org-capture-plist) prop)) - -(defun org-capture-member (prop &optional local) - "Is PROP a property in `org-capture-plist'. -When LOCAL is set, use the local variable `org-capture-current-plist', -this is necessary after initialization of the capture process, -to avoid conflicts with other active capture processes." - (plist-get (if local org-capture-current-plist org-capture-plist) prop)) +(define-obsolete-function-alias 'org-capture-member 'org-capture-get "Org 9.2") ;;; The minor mode -(defvar org-capture-mode-map (make-sparse-keymap) +(defvar org-capture-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "\C-c\C-c" #'org-capture-finalize) + (define-key map "\C-c\C-k" #'org-capture-kill) + (define-key map "\C-c\C-w" #'org-capture-refile) + map) "Keymap for `org-capture-mode', a minor mode. Use this map to set additional keybindings for when Org mode is used for a capture buffer.") (defvar org-capture-mode-hook nil - "Hook for the minor `org-capture-mode'.") + "Hook for the `org-capture-mode' minor mode.") (define-minor-mode org-capture-mode "Minor mode for special key bindings in a capture buffer. Turning on this mode runs the normal hook `org-capture-mode-hook'." - nil " Rem" org-capture-mode-map + nil " Cap" org-capture-mode-map (setq-local header-line-format (substitute-command-keys "\\Capture buffer. Finish \ `\\[org-capture-finalize]', refile `\\[org-capture-refile]', \ abort `\\[org-capture-kill]'."))) -(define-key org-capture-mode-map "\C-c\C-c" 'org-capture-finalize) -(define-key org-capture-mode-map "\C-c\C-k" 'org-capture-kill) -(define-key org-capture-mode-map "\C-c\C-w" 'org-capture-refile) ;;; The main commands @@ -1021,7 +1017,7 @@ Store them in the capture property list." (org-today)))) ;; the following is the keep-restriction argument for ;; org-datetree-find-date-create - (if outline-path 'subtree-at-point)))) + (when outline-path 'subtree-at-point)))) (`(file+function ,path ,function) (set-buffer (org-capture-target-buffer path)) (org-capture-put-target-region-and-position) @@ -1193,9 +1189,9 @@ may have been stored before." (setq end (point)) (org-capture-mark-kill-region beg end) (org-capture-narrow beg end) - (if (or (re-search-backward "%\\?" beg t) - (re-search-forward "%\\?" end t)) - (replace-match "")))) + (when (or (re-search-backward "%\\?" beg t) + (re-search-forward "%\\?" end t)) + (replace-match "")))) (defun org-capture-place-table-line () "Place the template as a table line." @@ -1307,9 +1303,9 @@ Of course, if exact position has been required, just put it there." (setq end (point)) (org-capture-mark-kill-region beg (1- end)) (org-capture-narrow beg (1- end)) - (if (or (re-search-backward "%\\?" beg t) - (re-search-forward "%\\?" end t)) - (replace-match "")))) + (when (or (re-search-backward "%\\?" beg t) + (re-search-forward "%\\?" end t)) + (replace-match "")))) (defun org-capture-mark-kill-region (beg end) "Mark the region that will have to be killed when aborting capture." @@ -1366,7 +1362,7 @@ Point will be after the empty lines, so insertion can directly be done." (let ((pos (point))) (org-back-over-empty-lines) (delete-region (point) pos) - (if (> n 0) (newline n)))) + (when (> n 0) (newline n)))) (defun org-capture-empty-lines-after (&optional n) "Set the correct number of empty lines after the inserted string. @@ -1376,7 +1372,7 @@ Point will remain at the first line after the inserted text." (org-back-over-empty-lines) (while (looking-at "[ \t]*\n") (replace-match "")) (let ((pos (point))) - (if (> n 0) (newline n)) + (when (> n 0) (newline n)) (goto-char pos))) (defvar org-clock-marker) ; Defined in org.el @@ -1852,9 +1848,9 @@ Assume sexps have been marked with (setq jump-to-captured t)) (append (list key desc type target template) - (if prepend '(:prepend t)) - (if immediate '(:immediate-finish t)) - (if jump-to-captured '(:jump-to-captured t))))) + (and prepend '(:prepend t)) + (and immediate '(:immediate-finish t)) + (and jump-to-captured '(:jump-to-captured t))))) org-remember-templates)))) diff --git a/lisp/org-colview.el b/lisp/org-colview.el index bba8c14a1..82a0ae045 100644 --- a/lisp/org-colview.el +++ b/lisp/org-colview.el @@ -569,7 +569,7 @@ Where possible, use the standard interface for changing this line." (action (pcase key ("CLOCKSUM" - (error "This special column cannot be edited")) + (user-error "This special column cannot be edited")) ("ITEM" (lambda () (org-with-point-at pom (org-edit-headline)))) ("TODO" @@ -1036,8 +1036,8 @@ the current buffer." (defun org-columns-uncompile-format (compiled) "Turn the compiled columns format back into a string representation. -COMPILED is an alist, as returned by -`org-columns-compile-format', which see." + +COMPILED is an alist, as returned by `org-columns-compile-format'." (mapconcat (lambda (spec) (pcase spec diff --git a/lisp/org-compat.el b/lisp/org-compat.el index c68faa926..2f06f3587 100644 --- a/lisp/org-compat.el +++ b/lisp/org-compat.el @@ -496,18 +496,13 @@ Unlike to `use-region-p', this function also checks ;;; Invisibility compatibility -(defun org-remove-from-invisibility-spec (arg) - "Remove elements from `buffer-invisibility-spec'." - (if (fboundp 'remove-from-invisibility-spec) - (remove-from-invisibility-spec arg) - (if (consp buffer-invisibility-spec) - (setq buffer-invisibility-spec - (delete arg buffer-invisibility-spec))))) +(define-obsolete-function-alias 'org-remove-from-invisibility-spec 'remove-from-invisibility-spec + "Org 9.2") (defun org-in-invisibility-spec-p (arg) "Is ARG a member of `buffer-invisibility-spec'?" - (if (consp buffer-invisibility-spec) - (member arg buffer-invisibility-spec))) + (when (consp buffer-invisibility-spec) + (member arg buffer-invisibility-spec))) (defun org-move-to-column (column &optional force _buffer) "Move to column COLUMN. @@ -526,8 +521,8 @@ Pass COLUMN and FORCE to `move-to-column'." (let ((start 0) (n 1)) (while (string-match "\n" s start) (setq start (match-end 0) n (1+ n))) - (if (and (> (length s) 0) (= (aref s (1- (length s))) ?\n)) - (setq n (1- n))) + (when (and (> (length s) 0) (= (aref s (1- (length s))) ?\n)) + (setq n (1- n))) n)) (defun org-kill-new (string &rest args) diff --git a/lisp/org-element.el b/lisp/org-element.el index 8f28ab434..691aa21f4 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -5958,11 +5958,11 @@ end of ELEM-A." ;; ELEM-A position in such a situation. Note that the case of ;; a footnote definition is impossible: it cannot contain two ;; paragraphs in a row because it cannot contain a blank line. - (if (and specialp - (or (not (eq (org-element-type elem-B) 'paragraph)) - (/= (org-element-property :begin elem-B) - (org-element-property :contents-begin elem-B)))) - (error "Cannot swap elements")) + (when (and specialp + (or (not (eq (org-element-type elem-B) 'paragraph)) + (/= (org-element-property :begin elem-B) + (org-element-property :contents-begin elem-B)))) + (error "Cannot swap elements")) ;; In a special situation, ELEM-A will have no indentation. We'll ;; give it ELEM-B's (which will in, in turn, have no indentation). (let* ((ind-B (when specialp diff --git a/lisp/org-entities.el b/lisp/org-entities.el index e291b521f..35c58b06f 100644 --- a/lisp/org-entities.el +++ b/lisp/org-entities.el @@ -543,11 +543,11 @@ This first checks the user list, then the built-in list." (dolist (e org-entities) (pcase e (`(,name ,latex ,mathp ,html ,ascii ,latin ,utf8) - (if (equal ascii "|") (setq ascii "\\vert")) - (if (equal latin "|") (setq latin "\\vert")) - (if (equal utf8 "|") (setq utf8 "\\vert")) - (if (equal ascii "=>") (setq ascii "= >")) - (if (equal latin "=>") (setq latin "= >")) + (when (equal ascii "|") (setq ascii "\\vert")) + (when (equal latin "|") (setq latin "\\vert")) + (when (equal utf8 "|") (setq utf8 "\\vert")) + (when (equal ascii "=>") (setq ascii "= >")) + (when (equal latin "=>") (setq latin "= >")) (insert "|" name "|" (format "=%s=" latex) "|" (format (if mathp "$%s$" "$\\mbox{%s}$") latex) diff --git a/lisp/org-eshell.el b/lisp/org-eshell.el index 8a2e8af5c..7f7ceb5e9 100644 --- a/lisp/org-eshell.el +++ b/lisp/org-eshell.el @@ -32,7 +32,7 @@ :store #'org-eshell-store-link) (defun org-eshell-open (link) - "Switch to am eshell buffer and execute a command line. + "Switch to an eshell buffer and execute a command line. The link can be just a command line (executed in the default eshell buffer) or a command line prefixed by a buffer name followed by a colon." diff --git a/lisp/org-list.el b/lisp/org-list.el index aa862b9e9..0d20c9df7 100644 --- a/lisp/org-list.el +++ b/lisp/org-list.el @@ -2260,7 +2260,7 @@ item is invisible." (string-match "[.)]" (match-string 1)))) (match-beginning 4) (match-end 0))) - (if desc (backward-char 1)) + (when desc (backward-char 1)) t))))) (defun org-list-repair () diff --git a/lisp/org-macs.el b/lisp/org-macs.el index 7280d44c7..91a98aaf7 100644 --- a/lisp/org-macs.el +++ b/lisp/org-macs.el @@ -78,7 +78,7 @@ (org-with-gensyms (mpom) `(let ((,mpom ,pom)) (save-excursion - (if (markerp ,mpom) (set-buffer (marker-buffer ,mpom))) + (when (markerp ,mpom) (set-buffer (marker-buffer ,mpom))) (org-with-wide-buffer (goto-char (or ,mpom (point))) ,@body))))) @@ -206,8 +206,7 @@ because otherwise all these markers will point to nowhere." (defun org-base-buffer (buffer) "Return the base buffer of BUFFER, if it has one. Else return the buffer." - (if (not buffer) - buffer + (when buffer (or (buffer-base-buffer buffer) buffer))) @@ -216,9 +215,7 @@ because otherwise all these markers will point to nowhere." not an indirect buffer." (let ((buf (or (get-file-buffer file) (find-buffer-visiting file)))) - (if buf - (or (buffer-base-buffer buf) buf) - nil))) + (org-base-buffer buf))) (defun org-switch-to-buffer-other-window (&rest args) "Switch to buffer in a second window on the current frame. @@ -672,14 +669,14 @@ The number of levels is controlled by `org-inlinetask-min-level'" (defun org-overlay-display (ovl text &optional face evap) "Make overlay OVL display TEXT with face FACE." (overlay-put ovl 'display text) - (if face (overlay-put ovl 'face face)) - (if evap (overlay-put ovl 'evaporate t))) + (when face (overlay-put ovl 'face face)) + (when evap (overlay-put ovl 'evaporate t))) (defun org-overlay-before-string (ovl text &optional face evap) "Make overlay OVL display TEXT with face FACE." - (if face (org-add-props text nil 'face face)) + (when face (org-add-props text nil 'face face)) (overlay-put ovl 'before-string text) - (if evap (overlay-put ovl 'evaporate t))) + (when evap (overlay-put ovl 'evaporate t))) (defun org-find-overlays (prop &optional pos delete) "Find all overlays specifying PROP at POS or point. diff --git a/lisp/org-pcomplete.el b/lisp/org-pcomplete.el index 9966951e0..60fc2b6db 100644 --- a/lisp/org-pcomplete.el +++ b/lisp/org-pcomplete.el @@ -38,6 +38,10 @@ (declare-function org-entry-properties "org" (&optional pom which)) (declare-function org-tag-alist-to-string "org" (alist &optional skip-key)) +(unless (fboundp 'pcomplete-uniquify-list) + ;; The misspelled variant was made obsolete in Emacs 27.1 + (defalias 'pcomplete-uniquify-list 'pcomplete-uniqify-list)) + ;;;; Customization variables (defvar org-drawer-regexp) @@ -193,7 +197,7 @@ When completing for #+STARTUP, for example, this function returns "Complete arguments for the #+LANGUAGE file option." (require 'ox) (pcomplete-here - (pcomplete-uniqify-list + (pcomplete-uniquify-list (list org-export-default-language "en")))) (defvar org-default-priority) @@ -218,7 +222,7 @@ When completing for #+STARTUP, for example, this function returns (defun pcomplete/org-mode/file-option/startup () "Complete arguments for the #+STARTUP file option." (while (pcomplete-here - (let ((opts (pcomplete-uniqify-list + (let ((opts (pcomplete-uniquify-list (mapcar 'car org-startup-options)))) ;; Some options are mutually exclusive, and shouldn't be completed ;; against if certain other options have already been seen. @@ -247,7 +251,7 @@ When completing for #+STARTUP, for example, this function returns (defun pcomplete/org-mode/file-option/options () "Complete arguments for the #+OPTIONS file option." (while (pcomplete-here - (pcomplete-uniqify-list + (pcomplete-uniquify-list (append ;; Hard-coded OPTION items always available. '("H:" "\\n:" "num:" "timestamp:" "arch:" "author:" "c:" @@ -266,7 +270,7 @@ When completing for #+STARTUP, for example, this function returns (defun pcomplete/org-mode/file-option/infojs_opt () "Complete arguments for the #+INFOJS_OPT file option." (while (pcomplete-here - (pcomplete-uniqify-list + (pcomplete-uniquify-list (mapcar (lambda (item) (format "%s:" (car item))) (bound-and-true-p org-html-infojs-opts-table)))))) @@ -274,7 +278,7 @@ When completing for #+STARTUP, for example, this function returns "Complete arguments for the #+BIND file option, which are variable names." (let (vars) (mapatoms - (lambda (a) (if (boundp a) (setq vars (cons (symbol-name a) vars))))) + (lambda (a) (when (boundp a) (setq vars (cons (symbol-name a) vars))))) (pcomplete-here vars))) (defvar org-link-abbrev-alist-local) @@ -282,7 +286,7 @@ When completing for #+STARTUP, for example, this function returns (defun pcomplete/org-mode/link () "Complete against defined #+LINK patterns." (pcomplete-here - (pcomplete-uniqify-list + (pcomplete-uniquify-list (copy-sequence (append (mapcar 'car org-link-abbrev-alist-local) (mapcar 'car org-link-abbrev-alist)))))) @@ -292,13 +296,13 @@ When completing for #+STARTUP, for example, this function returns "Complete against TeX-style HTML entity names." (require 'org-entities) (while (pcomplete-here - (pcomplete-uniqify-list (remove nil (mapcar 'car-safe org-entities))) + (pcomplete-uniquify-list (remove nil (mapcar 'car-safe org-entities))) (substring pcomplete-stub 1)))) (defvar org-todo-keywords-1) (defun pcomplete/org-mode/todo () "Complete against known TODO keywords." - (pcomplete-here (pcomplete-uniqify-list (copy-sequence org-todo-keywords-1)))) + (pcomplete-here (pcomplete-uniquify-list (copy-sequence org-todo-keywords-1)))) (defvar org-todo-line-regexp) (defun pcomplete/org-mode/searchhead () @@ -314,14 +318,14 @@ This needs more work, to handle headings with lots of spaces in them." (push (org-make-org-heading-search-string (match-string-no-properties 3)) tbl))) - (pcomplete-uniqify-list tbl))) + (pcomplete-uniquify-list tbl))) (substring pcomplete-stub 1)))) (defun pcomplete/org-mode/tag () "Complete a tag name. Omit tags already set." (while (pcomplete-here (mapcar (lambda (x) (concat x ":")) - (let ((lst (pcomplete-uniqify-list + (let ((lst (pcomplete-uniquify-list (or (remq nil (mapcar (lambda (x) (org-string-nw-p (car x))) @@ -338,7 +342,7 @@ This needs more work, to handle headings with lots of spaces in them." (pcomplete-here (mapcar (lambda (x) (concat x ": ")) - (let ((lst (pcomplete-uniqify-list + (let ((lst (pcomplete-uniquify-list (copy-sequence (org-buffer-property-keys nil t t))))) (dolist (prop (org-entry-properties)) (setq lst (delete (car prop) lst))) diff --git a/lisp/org-protocol.el b/lisp/org-protocol.el index 33957ee32..c0eb52c2b 100644 --- a/lisp/org-protocol.el +++ b/lisp/org-protocol.el @@ -468,19 +468,20 @@ You may specify the template with a template= query parameter, like this: javascript:location.href = \\='org-protocol://capture?template=b\\='+ ... Now template ?b will be used." - (if (and (boundp 'org-stored-links) - (org-protocol-do-capture info)) - (message "Item captured.")) + (when (and (boundp 'org-stored-links) + (org-protocol-do-capture info)) + (message "Item captured.")) nil) (defun org-protocol-convert-query-to-plist (query) "Convert QUERY key=value pairs in the URL to a property list." - (if query - (apply 'append (mapcar (lambda (x) - (let ((c (split-string x "="))) - (list (intern (concat ":" (car c))) (cadr c)))) - (split-string query "&"))))) + (when query + (apply 'append (mapcar (lambda (x) + (let ((c (split-string x "="))) + (list (intern (concat ":" (car c))) (cadr c)))) + (split-string query "&"))))) +(defvar org-capture-templates) (defun org-protocol-do-capture (info) "Perform the actual capture based on INFO." (let* ((temp-parts (org-protocol-parse-parameters info)) @@ -494,8 +495,7 @@ Now template ?b will be used." (template (or (plist-get parts :template) org-protocol-default-template-key)) (url (and (plist-get parts :url) (org-protocol-sanitize-uri (plist-get parts :url)))) - (type (and url (if (string-match "^\\([a-z]+\\):" url) - (match-string 1 url)))) + (type (and url (string-match "^\\([a-z]+\\):" url) (match-string 1 url))) (title (or (plist-get parts :title) "")) (region (or (plist-get parts :body) "")) (orglink (if url diff --git a/lisp/org-table.el b/lisp/org-table.el index 5e072e3ec..790c4623a 100644 --- a/lisp/org-table.el +++ b/lisp/org-table.el @@ -551,13 +551,13 @@ and table.el tables." (interactive) (require 'table) (cond - ((org-at-table.el-p) - (if (y-or-n-p "Convert table to Org table? ") - (org-table-convert))) - ((org-at-table-p) - (when (y-or-n-p "Convert table to table.el table? ") - (org-table-align) - (org-table-convert))) + ((and (org-at-table.el-p) + (y-or-n-p "Convert table to Org table? ")) + (org-table-convert)) + ((and (org-at-table-p) + (y-or-n-p "Convert table to table.el table? ")) + (org-table-align) + (org-table-convert)) (t (call-interactively 'table-insert)))) ;;;###autoload @@ -598,12 +598,11 @@ SIZE is a string Columns x Rows like for example \"3x2\"." ;; (mapcar (lambda (x) (insert line)) (make-list rows t)) (dotimes (_ rows) (insert line)) (goto-char pos) - (if (> rows 1) - ;; Insert a hline after the first row. - (progn - (end-of-line 1) - (insert "\n|-") - (goto-char pos))) + (when (> rows 1) + ;; Insert a hline after the first row. + (end-of-line 1) + (insert "\n|-") + (goto-char pos)) (org-table-align))) ;;;###autoload @@ -633,8 +632,8 @@ nil When nil, the command tries to be smart and figure out the (if (> (count-lines beg end) org-table-convert-region-max-lines) (user-error "Region is longer than `org-table-convert-region-max-lines' (%s) lines; not converting" org-table-convert-region-max-lines) - (if (equal separator '(64)) - (setq separator (read-regexp "Regexp for field separator"))) + (when (equal separator '(64)) + (setq separator (read-regexp "Regexp for field separator"))) (goto-char beg) (beginning-of-line 1) (setq beg (point-marker)) @@ -993,9 +992,9 @@ Before doing so, re-align the table if necessary." (interactive) (org-table-maybe-eval-formula) (org-table-maybe-recalculate-line) - (if (and org-table-automatic-realign - org-table-may-need-update) - (org-table-align)) + (when (and org-table-automatic-realign + org-table-may-need-update) + (org-table-align)) (let ((end (org-table-end))) (if (org-at-table-hline-p) (end-of-line 1)) @@ -1055,7 +1054,7 @@ With numeric argument N, move N-1 fields backward first." (user-error "No more table fields before the current") (goto-char (match-end 0)) (and (looking-at " ") (forward-char 1))) - (if (>= (point) pos) (org-table-beginning-of-field 2)))) + (when (>= (point) pos) (org-table-beginning-of-field 2)))) (defun org-table-end-of-field (&optional n) "Move to the end of the current table field. @@ -1069,9 +1068,9 @@ With numeric argument N, move N-1 fields forward first." (when (re-search-forward "|" (point-at-eol 1) t) (backward-char 1) (skip-chars-backward " ") - (if (and (equal (char-before (point)) ?|) (looking-at " ")) - (forward-char 1))) - (if (<= (point) pos) (org-table-end-of-field 2)))) + (when (and (equal (char-before (point)) ?|) (equal (char-after (point)) ?\s)) + (forward-char 1))) + (when (<= (point) pos) (org-table-end-of-field 2)))) ;;;###autoload (defun org-table-next-row () diff --git a/lisp/org-w3m.el b/lisp/org-w3m.el index b2dfc7787..0015dc4f7 100644 --- a/lisp/org-w3m.el +++ b/lisp/org-w3m.el @@ -72,7 +72,7 @@ so that it can be yanked into an Org buffer with links working correctly." (setq transform-start (region-beginning)) (setq transform-end (region-end)) ;; Deactivate mark if current mark is activate. - (if (fboundp 'deactivate-mark) (deactivate-mark))) + (when (fboundp 'deactivate-mark) (deactivate-mark))) (message "Transforming links...") (save-excursion (goto-char transform-start) @@ -85,10 +85,10 @@ so that it can be yanked into an Org buffer with links working correctly." (if (<= (point) transform-end) ; if point is inside transform bound (progn ;; get content between two links. - (if (> (point) temp-position) - (setq return-content (concat return-content - (buffer-substring - temp-position (point))))) + (when (> (point) temp-position) + (setq return-content (concat return-content + (buffer-substring + temp-position (point))))) ;; get link location at current point. (setq link-location (get-text-property (point) 'w3m-href-anchor)) ;; get link title at current point. @@ -103,10 +103,10 @@ so that it can be yanked into an Org buffer with links working correctly." (goto-char temp-position) ; reset point before jump next anchor (setq out-bound t))) ; for break out `while' loop ;; add the rest until end of the region to be copied - (if (< (point) transform-end) - (setq return-content - (concat return-content - (buffer-substring (point) transform-end)))) + (when (< (point) transform-end) + (setq return-content + (concat return-content + (buffer-substring (point) transform-end)))) (org-kill-new return-content) (message "Transforming links...done, use C-y to insert text into Org file") (message "Copy with link transformation complete.")))) diff --git a/lisp/org.el b/lisp/org.el index f199fb019..2cfe46697 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -235,10 +235,10 @@ Stars are put in group 1 and the trimmed body in group 2.") (let ((active (cdr pair)) (lang (symbol-name (car pair)))) (if active (require (intern (concat "ob-" lang))) - (funcall 'fmakunbound - (intern (concat "org-babel-execute:" lang))) - (funcall 'fmakunbound - (intern (concat "org-babel-expand-body:" lang))))))) + (fmakunbound + (intern (concat "org-babel-execute:" lang))) + (fmakunbound + (intern (concat "org-babel-expand-body:" lang))))))) (declare-function org-babel-tangle-file "ob-tangle" (file &optional target-file lang)) ;;;###autoload @@ -9955,7 +9955,7 @@ If the link is in hidden text, expose it." "Move backward to the previous link. If the link is in hidden text, expose it." (interactive) - (funcall 'org-next-link t)) + (org-next-link t)) (defun org-translate-link (s) "Translate a link string if a translation function has been defined." @@ -11209,7 +11209,7 @@ the *old* location.") "Like `org-refile', but copy." (interactive) (let ((org-refile-keep t)) - (funcall 'org-refile nil nil nil "Copy"))) + (org-refile nil nil nil "Copy"))) (defun org-refile (&optional arg default-buffer rfloc msg) "Move the entry or entries at point to another heading. @@ -13217,25 +13217,19 @@ EXTRA is additional text that will be inserted into the notes buffer." (let ((org-inhibit-startup t)) (org-mode)) (insert (format "# Insert note for %s. # Finish with C-c C-c, or cancel with C-c C-k.\n\n" - (cond - ((eq org-log-note-purpose 'clock-out) "stopped clock") - ((eq org-log-note-purpose 'done) "closed todo item") - ((eq org-log-note-purpose 'state) + (cl-case org-log-note-purpose + (clock-out "stopped clock") + (done "closed todo item") + (reschedule "rescheduling") + (delschedule "no longer scheduled") + (redeadline "changing deadline") + (deldeadline "removing deadline") + (refile "refiling") + (note "this entry") + (state (format "state change from \"%s\" to \"%s\"" (or org-log-note-previous-state "") (or org-log-note-state ""))) - ((eq org-log-note-purpose 'reschedule) - "rescheduling") - ((eq org-log-note-purpose 'delschedule) - "no longer scheduled") - ((eq org-log-note-purpose 'redeadline) - "changing deadline") - ((eq org-log-note-purpose 'deldeadline) - "removing deadline") - ((eq org-log-note-purpose 'refile) - "refiling") - ((eq org-log-note-purpose 'note) - "this entry") (t (error "This should not happen"))))) (when org-log-note-extra (insert org-log-note-extra)) (setq-local org-finish-function 'org-store-log-note) @@ -13526,10 +13520,19 @@ from the `before-change-functions' in the current buffer." (interactive) (org-priority 'down)) -(defun org-priority (&optional action _show) +(defun org-priority (&optional action show) "Change the priority of an item. -ACTION can be `set', `up', `down', or a character." + +When called interactively with a `\\[universal-argument]' prefix, +show the priority in the minibuffer instead of changing it. + +When called programatically, ACTION can be `set', `up', `down', +or a character." (interactive "P") + (when show + ;; Deprecation warning inserted for Org 9.2; once enough time has + ;; passed the SHOW argument should be removed. + (warn "`org-priority' called with deprecated SHOW argument")) (if (equal action '(4)) (org-show-priority) (unless org-enable-priority-commands @@ -13555,7 +13558,7 @@ ACTION can be `set', `up', `down', or a character." (when (and (= (upcase org-highest-priority) org-highest-priority) (= (upcase org-lowest-priority) org-lowest-priority)) (setq new (upcase new))) - (cond ((equal new ?\ ) (setq remove t)) + (cond ((equal new ?\s) (setq remove t)) ((or (< (upcase new) org-highest-priority) (> (upcase new) org-lowest-priority)) (user-error "Priority must be between `%c' and `%c'" org-highest-priority org-lowest-priority)))) @@ -14442,7 +14445,7 @@ This works in the agenda, and also in an Org buffer." (assoc s2 ctable))))) (defun org-fast-tag-insert (kwd tags face &optional end) - "Insert KDW, and the TAGS, the latter with face FACE. + "Insert KWD, and the TAGS, the latter with face FACE. Also insert END." (insert (format "%-12s" (concat kwd ":")) (org-add-props (mapconcat 'identity tags " ") nil 'face face) @@ -21125,12 +21128,10 @@ If there is no description, use the link target." "Toggle the literal or descriptive display of links." (interactive) (if org-descriptive-links - (progn (org-remove-from-invisibility-spec '(org-link)) - (org-restart-font-lock) - (setq org-descriptive-links nil)) - (progn (add-to-invisibility-spec '(org-link)) - (org-restart-font-lock) - (setq org-descriptive-links t)))) + (remove-from-invisibility-spec '(org-link)) + (add-to-invisibility-spec '(org-link))) + (org-restart-font-lock) + (setq org-descriptive-links (not org-descriptive-links))) (defun org-in-clocktable-p () "Check if the cursor is in a clocktable." @@ -22111,7 +22112,7 @@ fill each of the elements in the active region, instead of just filling the current element." (interactive (progn (barf-if-buffer-read-only) - (list (if current-prefix-arg 'full) t))) + (list (when current-prefix-arg 'full) t))) (cond ((and region transient-mark-mode mark-active (not (eq (region-beginning) (region-end)))) @@ -22995,8 +22996,6 @@ empty." (defun org-at-target-p () (or (org-in-regexp org-radio-target-regexp) (org-in-regexp org-target-regexp))) -;; Compatibility alias with Org versions < 7.8.03 -(defalias 'org-on-target-p 'org-at-target-p) (defun org-up-heading-all (arg) "Move to the heading line of which the present line is a subheading.