Merge branch 'maint' into emacs-sync

This commit is contained in:
Kyle Meyer 2018-05-06 02:29:17 -04:00
commit ac94897c2c
5 changed files with 117 additions and 92 deletions

View File

@ -1625,8 +1625,8 @@ bullets between START and END."
(funcall change-bullet-maybe item)
(cond
;; First item indented but not parent: error
((and (not prev) (< parent start))
(error "Cannot indent the first item of a list"))
((and (not prev) (or (not parent) (< parent start)))
(user-error "Cannot indent the first item of a list"))
;; First item and parent indented: keep same
;; parent.
((not prev) (funcall set-assoc cell))

View File

@ -229,23 +229,48 @@ issued in the language major mode buffer."
;;; Internal functions and variables
(defvar org-src--allow-write-back t)
(defvar org-src--auto-save-timer nil)
(defvar org-src--babel-info nil)
(defvar org-src--beg-marker nil)
(defvar org-src--block-indentation nil)
(defvar org-src--end-marker nil)
(defvar org-src--from-org-mode nil)
(defvar org-src--overlay nil)
(defvar org-src--preserve-indentation nil)
(defvar org-src--remote nil)
(defvar org-src--saved-temp-window-config nil)
(defvar org-src--source-type nil
(defvar-local org-src--allow-write-back t)
(put 'org-src--allow-write-back 'permanent-local t)
(defvar-local org-src--auto-save-timer nil)
(put 'org-src--auto-save-timer 'permanent-local t)
(defvar-local org-src--babel-info nil)
(put 'org-src--babel-info 'permanent-local t)
(defvar-local org-src--beg-marker nil)
(put 'org-src--beg-marker 'permanent-local t)
(defvar-local org-src--block-indentation nil)
(put 'org-src--block-indentation 'permanent-local t)
(defvar-local org-src--end-marker nil)
(put 'org-src--end-marker 'permanent-local t)
(defvar-local org-src--from-org-mode nil)
(put 'org-src--from-org-mode 'permanent-local t)
(defvar-local org-src--overlay nil)
(put 'org-src--overlay 'permanent-local t)
(defvar-local org-src--preserve-indentation nil)
(put 'org-src--preserve-indentation 'permanent-local t)
(defvar-local org-src--remote nil)
(put 'org-src--remote 'permanent-local t)
(defvar-local org-src--saved-temp-window-config nil)
(put 'org-src--saved-temp-window-config 'permanent-local t)
(defvar-local org-src--source-type nil
"Type of element being edited, as a symbol.")
(defvar org-src--tab-width nil
(put 'org-src--source-type 'permanent-local t)
(defvar-local org-src--tab-width nil
"Contains `tab-width' value from Org source buffer.
However, if `indent-tabs-mode' is nil in that buffer, its value
is 0.")
(put 'org-src--tab-width 'permanent-local t)
(defun org-src--construct-edit-buffer-name (org-buffer-name lang)
"Construct the buffer name for a source editing buffer."
@ -498,16 +523,16 @@ Leave point in edit buffer."
;; Transmit buffer-local variables for exit function. It must
;; be done after initializing major mode, as this operation
;; may reset them otherwise.
(setq-local org-src--tab-width source-tab-width)
(setq-local org-src--from-org-mode org-mode-p)
(setq-local org-src--beg-marker beg)
(setq-local org-src--end-marker end)
(setq-local org-src--remote remote)
(setq-local org-src--source-type type)
(setq-local org-src--block-indentation ind)
(setq-local org-src--preserve-indentation preserve-ind)
(setq-local org-src--overlay overlay)
(setq-local org-src--allow-write-back write-back)
(setq org-src--tab-width source-tab-width)
(setq org-src--from-org-mode org-mode-p)
(setq org-src--beg-marker beg)
(setq org-src--end-marker end)
(setq org-src--remote remote)
(setq org-src--source-type type)
(setq org-src--block-indentation ind)
(setq org-src--preserve-indentation preserve-ind)
(setq org-src--overlay overlay)
(setq org-src--allow-write-back write-back)
;; Start minor mode.
(org-src-mode)
;; Move mark and point in edit buffer to the corresponding
@ -977,7 +1002,7 @@ name of the sub-editing buffer."
(or (org-element-property :label-fmt element)
org-coderef-label-format))
(when (eq type 'src-block)
(setq-local org-src--babel-info babel-info)
(setq org-src--babel-info babel-info)
(let ((edit-prep-func (intern (concat "org-babel-edit-prep:" lang))))
(when (fboundp edit-prep-func)
(funcall edit-prep-func babel-info))))
@ -1010,8 +1035,8 @@ name of the sub-editing buffer."
(skip-chars-backward " \t")
(delete-region (point) (point-max))))
;; Finalize buffer.
(setq-local org-src--babel-info babel-info)
(setq-local org-src--preserve-indentation t)
(setq org-src--babel-info babel-info)
(setq org-src--preserve-indentation t)
(let ((edit-prep-func (intern (concat "org-babel-edit-prep:" lang))))
(when (fboundp edit-prep-func) (funcall edit-prep-func babel-info)))
;; Return success.

View File

@ -7,7 +7,7 @@
;; Maintainer: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: https://orgmode.org
;; Version: 9.1.12
;; Version: 9.1.13
;;
;; This file is part of GNU Emacs.
;;
@ -10539,7 +10539,7 @@ Raise an error when there is nothing to follow. "
(with-temp-buffer
(let ((org-inhibit-startup (not reference-buffer)))
(org-mode)
(insert (org-link-escape s))
(insert s)
(goto-char (point-min))
(when reference-buffer
(setq org-link-abbrev-alist-local

View File

@ -1981,19 +1981,15 @@ communication channel."
(format "<p class=\"creator\">%s</p>\n" creator))
(format "<p class=\"validation\">%s</p>\n"
validation-link))))
(t (format-spec
(or (cadr (assoc-string
(plist-get info :language)
(eval (intern
(format "org-html-%s-format" type)))
t))
(cadr
(assoc-string
"en"
(eval
(intern (format "org-html-%s-format" type)))
t)))
spec))))))
(t
(let ((formats (plist-get info (if (eq type 'preamble)
:html-preamble-format
:html-postamble-format)))
(language (plist-get info :language)))
(format-spec
(cadr (or (assoc-string language formats t)
(assoc-string "en" formats t)))
spec)))))))
(let ((div (assq type (plist-get info :html-divs))))
(when (org-string-nw-p section-contents)
(concat

View File

@ -220,69 +220,73 @@
(ert-deftest test-org-list/indent-item ()
"Test `org-indent-item' specifications."
;; 1. Error when not at an item.
;; Error when not at an item.
(org-test-with-temp-text "Paragraph."
(should-error (org-indent-item)))
;; 2. Error when trying to move first item of a list.
(org-test-with-temp-text "
;; Error when trying to move first item of a list.
(should-error
(org-test-with-temp-text "
- Item 1
- Item 2"
(forward-line)
(should-error (org-indent-item)))
;; 3. Indent a single item, not its children.
(org-test-with-temp-text "
(forward-line)
(org-indent-item)))
(should-error
(org-test-with-temp-text "
- Item 1
- Item 2
- Item 2.1"
(search-forward "- Item 2")
(let (org-list-demote-modify-bullet) (org-indent-item))
(should (equal (buffer-string)
"
- Item 2"
(forward-line)
(let ((org-list-automatic-rules nil)) (org-indent-item))))
;; Indent a single item, not its children.
(should
(equal "
- Item 1
- Item 2
- Item 2.1")))
;; 4. Follow `org-list-demote-modify-bullet' specifications.
;;
;; 4.1. With unordered lists.
(org-test-with-temp-text "
- Item 2.1"
(org-test-with-temp-text "
- Item 1
- Item 2"
(search-forward "- Item 2")
(let ((org-list-demote-modify-bullet '(("-" . "+")))) (org-indent-item))
(should (equal (buffer-string)
"
- Item 2<point>
- Item 2.1"
(let (org-list-demote-modify-bullet) (org-indent-item))
(buffer-string))))
;; Follow `org-list-demote-modify-bullet' specifications.
(should
(equal "
- Item 1
+ Item 2")))
;; 4.2. and ordered lists.
(org-test-with-temp-text "
+ Item 2"
(org-test-with-temp-text "
- Item 1
- Item 2<point>"
(let ((org-list-demote-modify-bullet '(("-" . "+"))))
(org-indent-item))
(buffer-string))))
(should
(equal "
1. Item 1
2. Item 2"
(search-forward "2. Item 2")
(let ((org-plain-list-ordered-item-terminator t)
(org-list-demote-modify-bullet '(("1." . "+"))))
(org-indent-item))
(should (equal (buffer-string)
"
+ Item 2"
(org-test-with-temp-text "
1. Item 1
+ Item 2")))
;; 5. When a region is selected, indent every item within.
(org-test-with-temp-text "
- Item 1
- Item 2
- Item 3
"
(search-forward "- Item 2")
(beginning-of-line)
(transient-mark-mode 1)
(push-mark (point) t t)
(goto-char (point-max))
(let (org-list-demote-modify-bullet) (org-indent-item))
(should (equal (buffer-string)
"
2. Item 2<point>"
(let ((org-plain-list-ordered-item-terminator t)
(org-list-demote-modify-bullet '(("1." . "+"))))
(org-indent-item))
(buffer-string))))
;; When a region is selected, indent every item within.
(should
(equal "
- Item 1
- Item 2
- Item 3
"))))
"
(org-test-with-temp-text "
- Item 1
<point>- Item 2
- Item 3
"
(transient-mark-mode 1)
(push-mark (point) t t)
(goto-char (point-max))
(let (org-list-demote-modify-bullet) (org-indent-item))
(buffer-string)))))
(ert-deftest test-org-list/indent-item-tree ()
"Test `org-indent-item-tree' specifications."