summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Guerry <bzg@altern.org>2012-08-24 14:23:07 +0200
committerBastien Guerry <bzg@altern.org>2012-08-24 14:23:07 +0200
commit5e7ffbe1d4f3529e9f3489c29ce94c4c54aa9f87 (patch)
treebf674a7110deef130d0d69e3479cf6fd5fd36703
parentbfe3e2102fa656109e6ec04265c41ca3bd15c417 (diff)
parent8a97c601a14fd8358a5c1e90a1ffbeb9dc6a2e72 (diff)
downloadorg-mode-5e7ffbe1d4f3529e9f3489c29ce94c4c54aa9f87.tar.gz
Merge branch 'master' of orgmode.org:org-mode
-rw-r--r--lisp/org-element.el16
-rw-r--r--lisp/org.el46
-rw-r--r--testing/lisp/test-org.el15
3 files changed, 31 insertions, 46 deletions
diff --git a/lisp/org-element.el b/lisp/org-element.el
index 3bf217d..f0e1a0f 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -140,7 +140,7 @@
;; Horizontal rules.
"-\\{5,\\}[ \t]*$" "\\|"
;; LaTeX environments.
- "\\\\\\(begin\\|end\\)" "\\|"
+ "\\\\begin{\\([A-Za-z0-9]+\\*?\\)}" "\\|"
;; Planning and Clock lines.
(regexp-opt (list org-scheduled-string
org-deadline-string
@@ -1700,7 +1700,7 @@ Assume point is at the beginning of the latex environment."
(code-begin (point))
(keywords (org-element--collect-affiliated-keywords))
(begin (car keywords))
- (env (progn (looking-at "^[ \t]*\\\\begin{\\([A-Za-z0-9*]+\\)}")
+ (env (progn (looking-at "^[ \t]*\\\\begin{\\([A-Za-z0-9]+\\*?\\)}")
(regexp-quote (match-string 1))))
(code-end
(progn (re-search-forward (format "^[ \t]*\\\\end{%s}" env) limit t)
@@ -1773,6 +1773,15 @@ Assume point is at the beginning of the paragraph."
(concat "^[ \t]*#\\+END_"
(match-string 1))
limit t))))
+ ;; Skip incomplete latex environments.
+ ((save-excursion
+ (beginning-of-line)
+ (looking-at "^[ \t]*\\\\begin{\\([A-Za-z0-9]+\\*?\\)}"))
+ (not (save-excursion
+ (re-search-forward
+ (format "^[ \t]*\\\\end{%s}"
+ (match-string 1))
+ limit t))))
;; Skip ill-formed keywords.
((not (save-excursion
(beginning-of-line)
@@ -2346,7 +2355,8 @@ LIMIT bounds the search.
Return value is a cons cell whose CAR is `entity' or
`latex-fragment' and CDR is beginning position."
(save-excursion
- (let ((matchers (plist-get org-format-latex-options :matchers))
+ (let ((matchers
+ (remove "begin" (plist-get org-format-latex-options :matchers)))
;; ENTITY-RE matches both LaTeX commands and Org entities.
(entity-re
"\\\\\\(there4\\|sup[123]\\|frac[13][24]\\|[a-zA-Z]+\\)\\($\\|{}\\|[^[:alpha:]]\\)"))
diff --git a/lisp/org.el b/lisp/org.el
index 4a8e590..a18eed8 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -21000,16 +21000,17 @@ hierarchy of headlines by UP levels before marking the subtree."
'fill-nobreak-predicate
(org-uniquify
(append fill-nobreak-predicate
- '(org-fill-item-nobreak-p org-fill-line-break-nobreak-p)))))
+ '(org-fill-paragraph-separate-nobreak-p
+ org-fill-line-break-nobreak-p)))))
(org-set-local 'normal-auto-fill-function 'org-auto-fill-function)
(org-set-local 'align-mode-rules-list
'((org-in-buffer-settings
(regexp . "^#\\+[A-Z_]+:\\(\\s-*\\)\\S-+")
(modes . '(org-mode))))))
-(defun org-fill-item-nobreak-p ()
+(defun org-fill-paragraph-separate-nobreak-p ()
"Non-nil when a line break at point would insert a new item."
- (and (looking-at (org-item-re)) (org-list-in-valid-context-p)))
+ (looking-at (substring org-element-paragraph-separate 1)))
(defun org-fill-line-break-nobreak-p ()
"Non-nil when a line break at point would create an Org line break."
@@ -21054,7 +21055,7 @@ meant to be filled."
? ))
((looking-at "\\s-+") (match-string 0))
(t ""))))
- ((comment-block verse-block)
+ (comment-block
;; Only fill contents if P is within block boundaries.
(let* ((cbeg (save-excursion (goto-char post-affiliated)
(forward-line)
@@ -21073,8 +21074,8 @@ meant to be filled."
"Fill element at point, when applicable.
This function only applies to comment blocks, comments, example
-blocks, paragraphs and verse blocks. Also, as a special case,
-re-align table when point is at one.
+blocks and paragraphs. Also, as a special case, re-align table
+when point is at one.
If JUSTIFY is non-nil (interactively, with prefix argument),
justify as well. If `sentence-end-double-space' is non-nil, then
@@ -21113,41 +21114,24 @@ a footnote definition, try to fill the first paragraph within."
(org-table-align))
t)
;; Elements that may contain `line-break' type objects.
- ((paragraph verse-block)
+ (paragraph
(let ((beg (max (point-min)
(org-element-property :contents-begin element)))
(end (min (point-max)
(org-element-property :contents-end element)))
(type (org-element-type element)))
- ;; Do nothing if point is at an affiliated keyword or at
- ;; verse block markers.
- (if (or (< (point) beg)
- (and (eq type 'verse-block) (>= (point) end)))
- t
- ;; In verse blocks and `message-mode', boundaries of
- ;; region to fill have to be tweaked.
- (cond
- ;; At a verse block, fill current "paragraph", that
- ;; is part of text separated by blank lines.
- ((eq type 'verse-block)
- (save-excursion
- (when (looking-at "[ \t]*$")
- (skip-chars-backward " \r\t\n" beg))
- (when (re-search-backward "^[ \t]*$" beg t)
- (forward-line)
- (setq beg (point))))
- (when (save-excursion (re-search-forward "^[ \t]*$" end t))
- (setq end (match-beginning 0))))
- ;; In `message-mode', do not fill following citation
- ;; in current paragraph nor text before message
- ;; body.
- ((derived-mode-p 'message-mode)
+ ;; Do nothing if point is at an affiliated keyword.
+ (if (< (point) beg) t
+ (when (derived-mode-p 'message-mode)
+ ;; In `message-mode', do not fill following
+ ;; citation in current paragraph nor text before
+ ;; message body.
(let ((body-start (save-excursion (message-goto-body))))
(when body-start (setq beg (max body-start beg))))
(when (save-excursion
(re-search-forward
(concat "^" message-cite-prefix-regexp) end t))
- (setq end (match-beginning 0)))))
+ (setq end (match-beginning 0))))
;; Fill paragraph, taking line breaks into consideration.
;; For that, slice the paragraph using line breaks as
;; separators, and fill the parts in reverse order to
diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el
index 09bf328..a289cbf 100644
--- a/testing/lisp/test-org.el
+++ b/testing/lisp/test-org.el
@@ -182,15 +182,6 @@ http://article.gmane.org/gmane.emacs.orgmode/21459/"
(let ((fill-column 20))
(org-fill-paragraph)
(buffer-string)))))
- ;; At a verse block, fill paragraph at point, also preserving line
- ;; breaks. Though, do nothing when point is at the block
- ;; boundaries.
- (org-test-with-temp-text "#+BEGIN_VERSE\nSome \\\\\nlong\ntext\n#+END_VERSE"
- (forward-line)
- (let ((fill-column 20))
- (org-fill-paragraph)
- (should (equal (buffer-string)
- "#+BEGIN_VERSE\nSome \\\\\nlong text\n#+END_VERSE"))))
(org-test-with-temp-text "#+BEGIN_VERSE\nSome \\\\\nlong\ntext\n#+END_VERSE"
(let ((fill-column 20))
(org-fill-paragraph)
@@ -244,10 +235,10 @@ http://article.gmane.org/gmane.emacs.orgmode/21459/"
(end-of-line)
(org-auto-fill-function)
(buffer-string)))))
- ;; Verse and comment block: auto fill contents.
+ ;; Comment block: auto fill contents.
(should
- (equal "#+BEGIN_VERSE\n12345\n7890\n#+END_VERSE"
- (org-test-with-temp-text "#+BEGIN_VERSE\n12345 7890\n#+END_VERSE"
+ (equal "#+BEGIN_COMMENT\n12345\n7890\n#+END_COMMENT"
+ (org-test-with-temp-text "#+BEGIN_COMMENT\n12345 7890\n#+END_COMMENT"
(let ((fill-column 5))
(forward-line)
(end-of-line)