Browse Source

Many small code improvements

* lisp/org-capture.el (org-capture-member): Make obsolete; the old
definition was identical to ‘org-capture-get’ anyway.
(org-capture-mode-map): Move the calls to ‘define-key’ up to where the
variable is defined.
(org-capture-mode-hook): Small docstring tweak.
(org-capture-mode): Fix typo in mode lighter.
(org-capture-set-target-location, org-capture-place-item):
(org-capture-place-plain-text, org-capture-narrow):
(org-capture-empty-lines-after):
(org-capture-import-remember-templates): ‘if’ without else -> ‘when’
* lisp/org-colview.el (org-columns-edit-value): Change an error to a
user-error.
(org-columns-uncompile-format): Improve docstring.
* lisp/org-compat.el (org-remove-from-invisibility-spec): Make
obsolete, the underlying emacs function exists since 1997, commit 31aa282e.
(org-in-invisibility-spec-p, org-count-lines): ‘if’ without else -> ‘when’.
* lisp/org-element.el (org-element-swap-A-B):
* lisp/org-entities.el (org-entities-create-table):
* lisp/org-list.el (org-insert-item):
* lisp/org-macs.el (org-with-point-at, org-base-buffer):
(org-preserve-local-variables, org-overlay-display):
(org-overlay-before-string): ‘if’ without else -> ‘when’.
* lisp/org-eshell.el (org-eshell-open): Fix docstring typo.
* lisp/org-pcomplete.el (pcomplete/org-mode/file-option/language):
(pcomplete/org-mode/file-option/startup):
(pcomplete/org-mode/file-option/options):
(pcomplete/org-mode/file-option/infojs_opt):
(pcomplete/org-mode/link, pcomplete/org-mode/tex):
(pcomplete/org-mode/todo, pcomplete/org-mode/searchhead):
(pcomplete/org-mode/tag, pcomplete/org-mode/prop): Avoid the formerly
misspelled ‘pcomplete-uniqify-list’ function.  It has a defalias in
emacs >= 27; we add our own for older emacsen.
(pcomplete/org-mode/file-option/bind): ‘if’ without else -> ‘when’.
* lisp/org-protocol.el (org-protocol-capture):
(org-protocol-convert-query-to-plist): ‘if’ without else -> ‘when’.
(org-protocol-do-capture): Pacify byte compiler, simplify conditional
logic.
* lisp/org-table.el (org-table-create-with-table.el): Simplify conditional
logic.
(org-table-create, org-table-convert-region, org-table-next-field):
(org-table-beginning-of-field, org-table-end-of-field):
* lisp/org-w3m.el (org-w3m-copy-for-org-mode): ‘if’ without else ->
‘when’.
* lisp/org.el (org-babel-do-load-languages, org-previous-link):
(org-refile): Use ‘(foo ...)’ instead of ‘(funcall 'foo ...)’.
(org-add-log-note): Convert a long cond into a cl-case.
(org-priority): Improve docstring, show a deprecation warning if the
‘show’ argument is passed (which was previously silently ignored).
Also, use ?\s instead of ?\ as a character literal for space.
(org-fast-tag-insert): Fix docstring typo.
(org-fill-element): ‘if’ without else -> ‘when’.
(org-on-target-p): Remove ancient compatibility alias.
Aaron Ecay 7 years ago
parent
commit
7106eab974
13 changed files with 138 additions and 148 deletions
  1. 21 25
      lisp/org-capture.el
  2. 3 3
      lisp/org-colview.el
  3. 6 11
      lisp/org-compat.el
  4. 5 5
      lisp/org-element.el
  5. 5 5
      lisp/org-entities.el
  6. 1 1
      lisp/org-eshell.el
  7. 1 1
      lisp/org-list.el
  8. 7 10
      lisp/org-macs.el
  9. 15 11
      lisp/org-pcomplete.el
  10. 10 10
      lisp/org-protocol.el
  11. 21 22
      lisp/org-table.el
  12. 9 9
      lisp/org-w3m.el
  13. 34 35
      lisp/org.el

+ 21 - 25
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,
 this is necessary after initialization of the capture process,
 to avoid conflicts with other active capture processes."
 to avoid conflicts with other active capture processes."
   (plist-get (if local org-capture-current-plist org-capture-plist) prop))
   (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
 ;;; 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.
   "Keymap for `org-capture-mode', a minor mode.
 Use this map to set additional keybindings for when Org mode is used
 Use this map to set additional keybindings for when Org mode is used
 for a capture buffer.")
 for a capture buffer.")
 
 
 (defvar org-capture-mode-hook nil
 (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
 (define-minor-mode org-capture-mode
   "Minor mode for special key bindings in a capture buffer.
   "Minor mode for special key bindings in a capture buffer.
 
 
 Turning on this mode runs the normal hook `org-capture-mode-hook'."
 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
   (setq-local
    header-line-format
    header-line-format
    (substitute-command-keys
    (substitute-command-keys
     "\\<org-capture-mode-map>Capture buffer.  Finish \
     "\\<org-capture-mode-map>Capture buffer.  Finish \
 `\\[org-capture-finalize]', refile `\\[org-capture-refile]', \
 `\\[org-capture-finalize]', refile `\\[org-capture-refile]', \
 abort `\\[org-capture-kill]'.")))
 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
 ;;; The main commands
 
 
@@ -1021,7 +1017,7 @@ Store them in the capture property list."
 	       (org-today))))
 	       (org-today))))
 	    ;; the following is the keep-restriction argument for
 	    ;; the following is the keep-restriction argument for
 	    ;; org-datetree-find-date-create
 	    ;; org-datetree-find-date-create
-	    (if outline-path 'subtree-at-point))))
+	    (when outline-path 'subtree-at-point))))
 	(`(file+function ,path ,function)
 	(`(file+function ,path ,function)
 	 (set-buffer (org-capture-target-buffer path))
 	 (set-buffer (org-capture-target-buffer path))
 	 (org-capture-put-target-region-and-position)
 	 (org-capture-put-target-region-and-position)
@@ -1193,9 +1189,9 @@ may have been stored before."
     (setq end (point))
     (setq end (point))
     (org-capture-mark-kill-region beg end)
     (org-capture-mark-kill-region beg end)
     (org-capture-narrow 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 ()
 (defun org-capture-place-table-line ()
   "Place the template as a 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))
     (setq end (point))
     (org-capture-mark-kill-region beg (1- end))
     (org-capture-mark-kill-region beg (1- end))
     (org-capture-narrow 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)
 (defun org-capture-mark-kill-region (beg end)
   "Mark the region that will have to be killed when aborting capture."
   "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)))
   (let ((pos (point)))
     (org-back-over-empty-lines)
     (org-back-over-empty-lines)
     (delete-region (point) pos)
     (delete-region (point) pos)
-    (if (> n 0) (newline n))))
+    (when (> n 0) (newline n))))
 
 
 (defun org-capture-empty-lines-after (&optional n)
 (defun org-capture-empty-lines-after (&optional n)
   "Set the correct number of empty lines after the inserted string.
   "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)
   (org-back-over-empty-lines)
   (while (looking-at "[ \t]*\n") (replace-match ""))
   (while (looking-at "[ \t]*\n") (replace-match ""))
   (let ((pos (point)))
   (let ((pos (point)))
-    (if (> n 0) (newline n))
+    (when (> n 0) (newline n))
     (goto-char pos)))
     (goto-char pos)))
 
 
 (defvar org-clock-marker) ; Defined in org.el
 (defvar org-clock-marker) ; Defined in org.el
@@ -1852,9 +1848,9 @@ Assume sexps have been marked with
 		 (setq jump-to-captured t))
 		 (setq jump-to-captured t))
 
 
 	       (append (list key desc type target template)
 	       (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))))
 	   org-remember-templates))))
 
 

+ 3 - 3
lisp/org-colview.el

@@ -569,7 +569,7 @@ Where possible, use the standard interface for changing this line."
 	 (action
 	 (action
 	  (pcase key
 	  (pcase key
 	    ("CLOCKSUM"
 	    ("CLOCKSUM"
-	     (error "This special column cannot be edited"))
+	     (user-error "This special column cannot be edited"))
 	    ("ITEM"
 	    ("ITEM"
 	     (lambda () (org-with-point-at pom (org-edit-headline))))
 	     (lambda () (org-with-point-at pom (org-edit-headline))))
 	    ("TODO"
 	    ("TODO"
@@ -1036,8 +1036,8 @@ the current buffer."
 
 
 (defun org-columns-uncompile-format (compiled)
 (defun org-columns-uncompile-format (compiled)
   "Turn the compiled columns format back into a string representation.
   "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
   (mapconcat
    (lambda (spec)
    (lambda (spec)
      (pcase spec
      (pcase spec

+ 6 - 11
lisp/org-compat.el

@@ -496,18 +496,13 @@ Unlike to `use-region-p', this function also checks
 
 
 ;;; Invisibility compatibility
 ;;; 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)
 (defun org-in-invisibility-spec-p (arg)
   "Is ARG a member of `buffer-invisibility-spec'?"
   "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)
 (defun org-move-to-column (column &optional force _buffer)
   "Move to column COLUMN.
   "Move to column COLUMN.
@@ -526,8 +521,8 @@ Pass COLUMN and FORCE to `move-to-column'."
   (let ((start 0) (n 1))
   (let ((start 0) (n 1))
     (while (string-match "\n" s start)
     (while (string-match "\n" s start)
       (setq start (match-end 0) n (1+ n)))
       (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))
     n))
 
 
 (defun org-kill-new (string &rest args)
 (defun org-kill-new (string &rest args)

+ 5 - 5
lisp/org-element.el

@@ -5958,11 +5958,11 @@ end of ELEM-A."
     ;; ELEM-A position in such a situation.  Note that the case of
     ;; ELEM-A position in such a situation.  Note that the case of
     ;; a footnote definition is impossible: it cannot contain two
     ;; a footnote definition is impossible: it cannot contain two
     ;; paragraphs in a row because it cannot contain a blank line.
     ;; 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
     ;; 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).
     ;; give it ELEM-B's (which will in, in turn, have no indentation).
     (let* ((ind-B (when specialp
     (let* ((ind-B (when specialp

+ 5 - 5
lisp/org-entities.el

@@ -543,11 +543,11 @@ This first checks the user list, then the built-in list."
     (dolist (e org-entities)
     (dolist (e org-entities)
       (pcase e
       (pcase e
 	(`(,name ,latex ,mathp ,html ,ascii ,latin ,utf8)
 	(`(,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
 	 (insert "|" name
 		 "|" (format "=%s=" latex)
 		 "|" (format "=%s=" latex)
 		 "|" (format (if mathp "$%s$" "$\\mbox{%s}$") latex)
 		 "|" (format (if mathp "$%s$" "$\\mbox{%s}$") latex)

+ 1 - 1
lisp/org-eshell.el

@@ -32,7 +32,7 @@
 			 :store #'org-eshell-store-link)
 			 :store #'org-eshell-store-link)
 
 
 (defun org-eshell-open (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
    The link can be just a command line (executed in the default
    eshell buffer) or a command line prefixed by a buffer name
    eshell buffer) or a command line prefixed by a buffer name
    followed by a colon."
    followed by a colon."

+ 1 - 1
lisp/org-list.el

@@ -2260,7 +2260,7 @@ item is invisible."
 				(string-match "[.)]" (match-string 1))))
 				(string-match "[.)]" (match-string 1))))
 			 (match-beginning 4)
 			 (match-beginning 4)
 		       (match-end 0)))
 		       (match-end 0)))
-	  (if desc (backward-char 1))
+	  (when desc (backward-char 1))
 	  t)))))
 	  t)))))
 
 
 (defun org-list-repair ()
 (defun org-list-repair ()

+ 7 - 10
lisp/org-macs.el

@@ -78,7 +78,7 @@
   (org-with-gensyms (mpom)
   (org-with-gensyms (mpom)
     `(let ((,mpom ,pom))
     `(let ((,mpom ,pom))
        (save-excursion
        (save-excursion
-	 (if (markerp ,mpom) (set-buffer (marker-buffer ,mpom)))
+	 (when (markerp ,mpom) (set-buffer (marker-buffer ,mpom)))
 	 (org-with-wide-buffer
 	 (org-with-wide-buffer
 	  (goto-char (or ,mpom (point)))
 	  (goto-char (or ,mpom (point)))
 	  ,@body)))))
 	  ,@body)))))
@@ -206,8 +206,7 @@ because otherwise all these markers will point to nowhere."
 
 
 (defun org-base-buffer (buffer)
 (defun org-base-buffer (buffer)
   "Return the base buffer of BUFFER, if it has one.  Else return the 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)
     (or (buffer-base-buffer buffer)
 	buffer)))
 	buffer)))
 
 
@@ -216,9 +215,7 @@ because otherwise all these markers will point to nowhere."
 not an indirect buffer."
 not an indirect buffer."
   (let ((buf (or (get-file-buffer file)
   (let ((buf (or (get-file-buffer file)
 		 (find-buffer-visiting 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)
 (defun org-switch-to-buffer-other-window (&rest args)
   "Switch to buffer in a second window on the current frame.
   "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)
 (defun org-overlay-display (ovl text &optional face evap)
   "Make overlay OVL display TEXT with face FACE."
   "Make overlay OVL display TEXT with face FACE."
   (overlay-put ovl 'display text)
   (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)
 (defun org-overlay-before-string (ovl text &optional face evap)
   "Make overlay OVL display TEXT with face FACE."
   "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)
   (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)
 (defun org-find-overlays (prop &optional pos delete)
   "Find all overlays specifying PROP at POS or point.
   "Find all overlays specifying PROP at POS or point.

+ 15 - 11
lisp/org-pcomplete.el

@@ -38,6 +38,10 @@
 (declare-function org-entry-properties "org" (&optional pom which))
 (declare-function org-entry-properties "org" (&optional pom which))
 (declare-function org-tag-alist-to-string "org" (alist &optional skip-key))
 (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
 ;;;; Customization variables
 
 
 (defvar org-drawer-regexp)
 (defvar org-drawer-regexp)
@@ -193,7 +197,7 @@ When completing for #+STARTUP, for example, this function returns
   "Complete arguments for the #+LANGUAGE file option."
   "Complete arguments for the #+LANGUAGE file option."
   (require 'ox)
   (require 'ox)
   (pcomplete-here
   (pcomplete-here
-   (pcomplete-uniqify-list
+   (pcomplete-uniquify-list
     (list org-export-default-language "en"))))
     (list org-export-default-language "en"))))
 
 
 (defvar org-default-priority)
 (defvar org-default-priority)
@@ -218,7 +222,7 @@ When completing for #+STARTUP, for example, this function returns
 (defun pcomplete/org-mode/file-option/startup ()
 (defun pcomplete/org-mode/file-option/startup ()
   "Complete arguments for the #+STARTUP file option."
   "Complete arguments for the #+STARTUP file option."
   (while (pcomplete-here
   (while (pcomplete-here
-	  (let ((opts (pcomplete-uniqify-list
+	  (let ((opts (pcomplete-uniquify-list
 		       (mapcar 'car org-startup-options))))
 		       (mapcar 'car org-startup-options))))
 	    ;; Some options are mutually exclusive, and shouldn't be completed
 	    ;; Some options are mutually exclusive, and shouldn't be completed
 	    ;; against if certain other options have already been seen.
 	    ;; 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 ()
 (defun pcomplete/org-mode/file-option/options ()
   "Complete arguments for the #+OPTIONS file option."
   "Complete arguments for the #+OPTIONS file option."
   (while (pcomplete-here
   (while (pcomplete-here
-	  (pcomplete-uniqify-list
+	  (pcomplete-uniquify-list
 	   (append
 	   (append
 	    ;; Hard-coded OPTION items always available.
 	    ;; Hard-coded OPTION items always available.
 	    '("H:" "\\n:" "num:" "timestamp:" "arch:" "author:" "c:"
 	    '("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 ()
 (defun pcomplete/org-mode/file-option/infojs_opt ()
   "Complete arguments for the #+INFOJS_OPT file option."
   "Complete arguments for the #+INFOJS_OPT file option."
   (while (pcomplete-here
   (while (pcomplete-here
-	  (pcomplete-uniqify-list
+	  (pcomplete-uniquify-list
 	   (mapcar (lambda (item) (format "%s:" (car item)))
 	   (mapcar (lambda (item) (format "%s:" (car item)))
 		   (bound-and-true-p org-html-infojs-opts-table))))))
 		   (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."
   "Complete arguments for the #+BIND file option, which are variable names."
   (let (vars)
   (let (vars)
     (mapatoms
     (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)))
     (pcomplete-here vars)))
 
 
 (defvar org-link-abbrev-alist-local)
 (defvar org-link-abbrev-alist-local)
@@ -282,7 +286,7 @@ When completing for #+STARTUP, for example, this function returns
 (defun pcomplete/org-mode/link ()
 (defun pcomplete/org-mode/link ()
   "Complete against defined #+LINK patterns."
   "Complete against defined #+LINK patterns."
   (pcomplete-here
   (pcomplete-here
-   (pcomplete-uniqify-list
+   (pcomplete-uniquify-list
     (copy-sequence
     (copy-sequence
      (append (mapcar 'car org-link-abbrev-alist-local)
      (append (mapcar 'car org-link-abbrev-alist-local)
 	     (mapcar 'car org-link-abbrev-alist))))))
 	     (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."
   "Complete against TeX-style HTML entity names."
   (require 'org-entities)
   (require 'org-entities)
   (while (pcomplete-here
   (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))))
 	  (substring pcomplete-stub 1))))
 
 
 (defvar org-todo-keywords-1)
 (defvar org-todo-keywords-1)
 (defun pcomplete/org-mode/todo ()
 (defun pcomplete/org-mode/todo ()
   "Complete against known TODO keywords."
   "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)
 (defvar org-todo-line-regexp)
 (defun pcomplete/org-mode/searchhead ()
 (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
 	       (push (org-make-org-heading-search-string
 		      (match-string-no-properties 3))
 		      (match-string-no-properties 3))
 		     tbl)))
 		     tbl)))
-	   (pcomplete-uniqify-list tbl)))
+	   (pcomplete-uniquify-list tbl)))
        (substring pcomplete-stub 1))))
        (substring pcomplete-stub 1))))
 
 
 (defun pcomplete/org-mode/tag ()
 (defun pcomplete/org-mode/tag ()
   "Complete a tag name.  Omit tags already set."
   "Complete a tag name.  Omit tags already set."
   (while (pcomplete-here
   (while (pcomplete-here
 	  (mapcar (lambda (x) (concat x ":"))
 	  (mapcar (lambda (x) (concat x ":"))
-		  (let ((lst (pcomplete-uniqify-list
+		  (let ((lst (pcomplete-uniquify-list
 			      (or (remq
 			      (or (remq
 				   nil
 				   nil
 				   (mapcar (lambda (x) (org-string-nw-p (car x)))
 				   (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
   (pcomplete-here
    (mapcar (lambda (x)
    (mapcar (lambda (x)
 	     (concat x ": "))
 	     (concat x ": "))
-	   (let ((lst (pcomplete-uniqify-list
+	   (let ((lst (pcomplete-uniquify-list
 		       (copy-sequence (org-buffer-property-keys nil t t)))))
 		       (copy-sequence (org-buffer-property-keys nil t t)))))
 	     (dolist (prop (org-entry-properties))
 	     (dolist (prop (org-entry-properties))
 	       (setq lst (delete (car prop) lst)))
 	       (setq lst (delete (car prop) lst)))

+ 10 - 10
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\\='+ ...
   javascript:location.href = \\='org-protocol://capture?template=b\\='+ ...
 
 
 Now template ?b will be used."
 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)
   nil)
 
 
 (defun org-protocol-convert-query-to-plist (query)
 (defun org-protocol-convert-query-to-plist (query)
   "Convert QUERY key=value pairs in the URL to a property list."
   "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)
 (defun org-protocol-do-capture (info)
   "Perform the actual capture based on INFO."
   "Perform the actual capture based on INFO."
   (let* ((temp-parts (org-protocol-parse-parameters 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)
 	 (template (or (plist-get parts :template)
 		       org-protocol-default-template-key))
 		       org-protocol-default-template-key))
 	 (url (and (plist-get parts :url) (org-protocol-sanitize-uri (plist-get parts :url))))
 	 (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) ""))
 	 (title (or (plist-get parts :title) ""))
 	 (region (or (plist-get parts :body) ""))
 	 (region (or (plist-get parts :body) ""))
 	 (orglink (if url
 	 (orglink (if url

+ 21 - 22
lisp/org-table.el

@@ -551,13 +551,13 @@ and table.el tables."
   (interactive)
   (interactive)
   (require 'table)
   (require 'table)
   (cond
   (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))))
    (t (call-interactively 'table-insert))))
 
 
 ;;;###autoload
 ;;;###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))
     ;; (mapcar (lambda (x) (insert line)) (make-list rows t))
     (dotimes (_ rows) (insert line))
     (dotimes (_ rows) (insert line))
     (goto-char pos)
     (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)))
     (org-table-align)))
 
 
 ;;;###autoload
 ;;;###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)
     (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"
 	(user-error "Region is longer than `org-table-convert-region-max-lines' (%s) lines; not converting"
 		    org-table-convert-region-max-lines)
 		    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)
       (goto-char beg)
       (beginning-of-line 1)
       (beginning-of-line 1)
       (setq beg (point-marker))
       (setq beg (point-marker))
@@ -993,9 +992,9 @@ Before doing so, re-align the table if necessary."
   (interactive)
   (interactive)
   (org-table-maybe-eval-formula)
   (org-table-maybe-eval-formula)
   (org-table-maybe-recalculate-line)
   (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)))
   (let ((end (org-table-end)))
     (if (org-at-table-hline-p)
     (if (org-at-table-hline-p)
 	(end-of-line 1))
 	(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")
 	(user-error "No more table fields before the current")
       (goto-char (match-end 0))
       (goto-char (match-end 0))
       (and (looking-at " ") (forward-char 1)))
       (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)
 (defun org-table-end-of-field (&optional n)
   "Move to the end of the current table field.
   "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)
     (when (re-search-forward "|" (point-at-eol 1) t)
       (backward-char 1)
       (backward-char 1)
       (skip-chars-backward " ")
       (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
 ;;;###autoload
 (defun org-table-next-row ()
 (defun org-table-next-row ()

+ 9 - 9
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-start (region-beginning))
       (setq transform-end (region-end))
       (setq transform-end (region-end))
       ;; Deactivate mark if current mark is activate.
       ;; Deactivate mark if current mark is activate.
-      (if (fboundp 'deactivate-mark) (deactivate-mark)))
+      (when (fboundp 'deactivate-mark) (deactivate-mark)))
     (message "Transforming links...")
     (message "Transforming links...")
     (save-excursion
     (save-excursion
       (goto-char transform-start)
       (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
         (if (<= (point) transform-end) ; if point is inside transform bound
             (progn
             (progn
               ;; get content between two links.
               ;; 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.
               ;; get link location at current point.
               (setq link-location (get-text-property (point) 'w3m-href-anchor))
               (setq link-location (get-text-property (point) 'w3m-href-anchor))
               ;; get link title at current point.
               ;; 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
           (goto-char temp-position) ; reset point before jump next anchor
           (setq out-bound t)))	    ; for break out `while' loop
           (setq out-bound t)))	    ; for break out `while' loop
       ;; add the rest until end of the region to be copied
       ;; 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)
       (org-kill-new return-content)
       (message "Transforming links...done, use C-y to insert text into Org file")
       (message "Transforming links...done, use C-y to insert text into Org file")
       (message "Copy with link transformation complete."))))
       (message "Copy with link transformation complete."))))

+ 34 - 35
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))))
     (let ((active (cdr pair)) (lang (symbol-name (car pair))))
       (if active
       (if active
 	  (require (intern (concat "ob-" lang)))
 	  (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))
 (declare-function org-babel-tangle-file "ob-tangle" (file &optional target-file lang))
 ;;;###autoload
 ;;;###autoload
@@ -9955,7 +9955,7 @@ If the link is in hidden text, expose it."
   "Move backward to the previous link.
   "Move backward to the previous link.
 If the link is in hidden text, expose it."
 If the link is in hidden text, expose it."
   (interactive)
   (interactive)
-  (funcall 'org-next-link t))
+  (org-next-link t))
 
 
 (defun org-translate-link (s)
 (defun org-translate-link (s)
   "Translate a link string if a translation function has been defined."
   "Translate a link string if a translation function has been defined."
@@ -11209,7 +11209,7 @@ the *old* location.")
   "Like `org-refile', but copy."
   "Like `org-refile', but copy."
   (interactive)
   (interactive)
   (let ((org-refile-keep t))
   (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)
 (defun org-refile (&optional arg default-buffer rfloc msg)
   "Move the entry or entries at point to another heading.
   "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))
     (let ((org-inhibit-startup t)) (org-mode))
     (insert (format "# Insert note for %s.
     (insert (format "# Insert note for %s.
 # Finish with C-c C-c, or cancel with C-c C-k.\n\n"
 # 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\""
 		      (format "state change from \"%s\" to \"%s\""
 			      (or org-log-note-previous-state "")
 			      (or org-log-note-previous-state "")
 			      (or org-log-note-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")))))
 		     (t (error "This should not happen")))))
     (when org-log-note-extra (insert org-log-note-extra))
     (when org-log-note-extra (insert org-log-note-extra))
     (setq-local org-finish-function 'org-store-log-note)
     (setq-local org-finish-function 'org-store-log-note)
@@ -13526,10 +13520,19 @@ from the `before-change-functions' in the current buffer."
   (interactive)
   (interactive)
   (org-priority 'down))
   (org-priority 'down))
 
 
-(defun org-priority (&optional action _show)
+(defun org-priority (&optional action show)
   "Change the priority of an item.
   "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")
   (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))
   (if (equal action '(4))
       (org-show-priority)
       (org-show-priority)
     (unless org-enable-priority-commands
     (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)
 	  (when (and (= (upcase org-highest-priority) org-highest-priority)
 		     (= (upcase org-lowest-priority) org-lowest-priority))
 		     (= (upcase org-lowest-priority) org-lowest-priority))
 	    (setq new (upcase new)))
 	    (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))
 		((or (< (upcase new) org-highest-priority) (> (upcase new) org-lowest-priority))
 		 (user-error "Priority must be between `%c' and `%c'"
 		 (user-error "Priority must be between `%c' and `%c'"
 			     org-highest-priority org-lowest-priority))))
 			     org-highest-priority org-lowest-priority))))
@@ -14442,7 +14445,7 @@ This works in the agenda, and also in an Org buffer."
       (assoc s2 ctable)))))
       (assoc s2 ctable)))))
 
 
 (defun org-fast-tag-insert (kwd tags face &optional end)
 (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."
 Also insert END."
   (insert (format "%-12s" (concat kwd ":"))
   (insert (format "%-12s" (concat kwd ":"))
 	  (org-add-props (mapconcat 'identity tags " ") nil 'face face)
 	  (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."
   "Toggle the literal or descriptive display of links."
   (interactive)
   (interactive)
   (if org-descriptive-links
   (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 ()
 (defun org-in-clocktable-p ()
   "Check if the cursor is in a clocktable."
   "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."
 filling the current element."
   (interactive (progn
   (interactive (progn
 		 (barf-if-buffer-read-only)
 		 (barf-if-buffer-read-only)
-		 (list (if current-prefix-arg 'full) t)))
+		 (list (when current-prefix-arg 'full) t)))
   (cond
   (cond
    ((and region transient-mark-mode mark-active
    ((and region transient-mark-mode mark-active
 	 (not (eq (region-beginning) (region-end))))
 	 (not (eq (region-beginning) (region-end))))
@@ -22995,8 +22996,6 @@ empty."
 (defun org-at-target-p ()
 (defun org-at-target-p ()
   (or (org-in-regexp org-radio-target-regexp)
   (or (org-in-regexp org-radio-target-regexp)
       (org-in-regexp org-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)
 (defun org-up-heading-all (arg)
   "Move to the heading line of which the present line is a subheading.
   "Move to the heading line of which the present line is a subheading.