Merge branch 'master' of orgmode.org:org-mode
This commit is contained in:
commit
bb2dd85938
|
@ -7969,7 +7969,7 @@ The prefix arg is passed through to the command if possible."
|
|||
(interactive "P")
|
||||
(unless org-agenda-bulk-marked-entries
|
||||
(error "No entries are marked"))
|
||||
(message "Bulk: [r]efile [$]arch [A]rch->sib [t]odo [+/-]tag [s]chd [S]catter [d]eadline")
|
||||
(message "Bulk: [r]efile [$]arch [A]rch->sib [t]odo [+/-]tag [s]chd [S]catter [d]eadline [f]unction")
|
||||
(let* ((action (read-char-exclusive))
|
||||
(org-log-refile (if org-log-refile 'time nil))
|
||||
(entries (reverse org-agenda-bulk-marked-entries))
|
||||
|
@ -8059,6 +8059,11 @@ The prefix arg is passed through to the command if possible."
|
|||
(org-agenda-date-later distance)
|
||||
(error nil)))))))
|
||||
|
||||
((equal action ?f)
|
||||
(setq cmd (list (intern
|
||||
(org-icompleting-read "Function: "
|
||||
obarray 'fboundp t nil nil)))))
|
||||
|
||||
(t (error "Invalid bulk action")))
|
||||
|
||||
;; Sort the markers, to make sure that parents are handled before children
|
||||
|
|
|
@ -102,7 +102,10 @@ ln create a hard link. Note that this is not supported
|
|||
(defcustom org-attach-store-link-p nil
|
||||
"Non-nil means store a link to a file when attaching it."
|
||||
:group 'org-attach
|
||||
:type 'boolean)
|
||||
:type '(choice
|
||||
(const :tag "Don't store link" nil)
|
||||
(const :tag "Link to origin location" t)
|
||||
(const :tag "Link to the attach-dir location" 'attached)))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-attach ()
|
||||
|
@ -294,8 +297,10 @@ METHOD may be `cp', `mv', or `ln', default taken from `org-attach-method'."
|
|||
((eq method 'ln) (add-name-to-file file fname)))
|
||||
(org-attach-commit)
|
||||
(org-attach-tag)
|
||||
(when org-attach-store-link-p
|
||||
(org-attach-store-link file))
|
||||
(cond ((eq org-attach-store-link-p 'attached)
|
||||
(org-attach-store-link fname))
|
||||
((eq org-attach-store-link-p t)
|
||||
(org-attach-store-link file)))
|
||||
(if visit-dir
|
||||
(dired attach-dir)
|
||||
(message "File \"%s\" is now a task attachment." basename)))))
|
||||
|
|
|
@ -992,6 +992,7 @@ the clocking selection, associated with the letter `d'."
|
|||
ts selected-task target-pos (msg-extra "")
|
||||
(leftover (and (not org-clock-resolving-clocks)
|
||||
org-clock-leftover-time)))
|
||||
|
||||
(when (and org-clock-auto-clock-resolution
|
||||
(or (not interrupting)
|
||||
(eq t org-clock-auto-clock-resolution))
|
||||
|
@ -1000,11 +1001,17 @@ the clocking selection, associated with the letter `d'."
|
|||
(setq org-clock-leftover-time nil)
|
||||
(let ((org-clock-clocking-in t))
|
||||
(org-resolve-clocks))) ; check if any clocks are dangling
|
||||
|
||||
(when (equal select '(4))
|
||||
(setq selected-task (org-clock-select-task "Clock-in on task: "))
|
||||
(if selected-task
|
||||
(setq selected-task (copy-marker selected-task))
|
||||
(error "Abort")))
|
||||
|
||||
(when (equal select '(16))
|
||||
;; Mark as default clocking task
|
||||
(org-clock-mark-default-task))
|
||||
|
||||
(when interrupting
|
||||
;; We are interrupting the clocking of a different task.
|
||||
;; Save a marker to this task, so that we can go back.
|
||||
|
@ -1019,7 +1026,8 @@ the clocking selection, associated with the letter `d'."
|
|||
(= (marker-position org-clock-hd-marker)
|
||||
(if selected-task
|
||||
(marker-position selected-task)
|
||||
(point)))))
|
||||
(point)))
|
||||
(equal org-clock-current-task (nth 4 (org-heading-components)))))
|
||||
(message "Clock continues in \"%s\"" org-clock-heading)
|
||||
(throw 'abort nil))
|
||||
(move-marker org-clock-interrupted-task
|
||||
|
@ -1028,10 +1036,6 @@ the clocking selection, associated with the letter `d'."
|
|||
(let ((org-clock-clocking-in t))
|
||||
(org-clock-out t)))
|
||||
|
||||
(when (equal select '(16))
|
||||
;; Mark as default clocking task
|
||||
(org-clock-mark-default-task))
|
||||
|
||||
;; Clock in at which position?
|
||||
(setq target-pos
|
||||
(if (and (eobp) (not (org-on-heading-p)))
|
||||
|
|
|
@ -1042,7 +1042,7 @@ Pressing `1' will switch between these two options."
|
|||
"Alist of code references and line numbers.")
|
||||
|
||||
(defun org-export-preprocess-string (string &rest parameters)
|
||||
"Cleanup STRING so that that the true exported has a more consistent source.
|
||||
"Cleanup STRING so that the true exported has a more consistent source.
|
||||
This function takes STRING, which should be a buffer-string of an org-file
|
||||
to export. It then creates a temporary buffer where it does its job.
|
||||
The result is then again returned as a string, and the exporter works
|
||||
|
@ -2062,7 +2062,7 @@ can work correctly."
|
|||
(let* ((rtn
|
||||
(mapconcat
|
||||
'identity
|
||||
(org-split-string s "[^a-zA-Z0-9_\\.-]+") "--"))
|
||||
(org-split-string s "[^a-zA-Z0-9_\\.-]+") "-"))
|
||||
(a (assoc rtn alist)))
|
||||
(or (cdr a) rtn))))
|
||||
|
||||
|
@ -3084,4 +3084,3 @@ The depends on the variable `org-export-copy-to-kill'."
|
|||
;; arch-tag: 65985fe9-095c-49c7-a7b6-cb4ee15c0a95
|
||||
|
||||
;;; org-exp.el ends here
|
||||
|
||||
|
|
|
@ -314,7 +314,7 @@ or new, let the user edit the definition of the footnote."
|
|||
;; Skip existing footnotes
|
||||
(while (re-search-forward "^[[:space:]]*\\[[^]]+\\] " nil t)
|
||||
(forward-line))
|
||||
(insert "[" label "] \n")
|
||||
(insert "\n[" label "] \n")
|
||||
(goto-char (1- (point)))
|
||||
(message "Edit definition and go back with `C-c &' or, if unique, with `C-c C-c'.")))
|
||||
|
||||
|
@ -500,7 +500,7 @@ ENTRY is (fn-label num-mark definition)."
|
|||
(when (re-search-forward (format ".\\[%s[]:]" (regexp-quote (car entry)))
|
||||
nil t)
|
||||
(org-footnote-goto-local-insertion-point)
|
||||
(insert (format "\n\n[%s] %s" (car entry) (nth 2 entry))))))
|
||||
(insert (format "\n[%s] %s\n" (car entry) (nth 2 entry))))))
|
||||
|
||||
(defun org-footnote-goto-local-insertion-point ()
|
||||
"Find insertion point for footnote, just before next outline heading."
|
||||
|
|
|
@ -826,9 +826,9 @@ MAY-INLINE-P allows inlining it as an image."
|
|||
(message "image %s %s" thefile org-par-open)
|
||||
(org-export-html-format-image thefile org-par-open))
|
||||
(concat
|
||||
"<a href=\"" thefile "\"" (if attr (concat " " attr)) ">"
|
||||
"@<a href=\"" thefile "\"" (if attr (concat " " attr)) ">"
|
||||
(org-export-html-format-desc desc)
|
||||
"</a>")))))
|
||||
"@</a>")))))
|
||||
|
||||
(defun org-html-handle-links (line opt-plist)
|
||||
"Return LINE with markup of Org mode links.
|
||||
|
@ -864,7 +864,7 @@ OPT-PLIST is the export options list."
|
|||
(if (string-match "^file:" desc)
|
||||
(setq desc (substring desc (match-end 0)))))
|
||||
(setq desc (org-add-props
|
||||
(concat "<img src=\"" desc "\"/>")
|
||||
(concat "@<img src=\"" desc "\"/>")
|
||||
'(org-protected t))))
|
||||
(cond
|
||||
((equal type "internal")
|
||||
|
@ -990,9 +990,9 @@ OPT-PLIST is the export options list."
|
|||
|
||||
(t
|
||||
;; just publish the path, as default
|
||||
(setq rpl (concat "<i><" type ":"
|
||||
(setq rpl (concat "@<i><" type ":"
|
||||
(save-match-data (org-link-unescape path))
|
||||
"></i>"))))
|
||||
">@</i>"))))
|
||||
(setq line (replace-match rpl t t line)
|
||||
start (+ start (length rpl))))
|
||||
line))
|
||||
|
@ -1504,17 +1504,17 @@ lang=\"%s\" xml:lang=\"%s\">
|
|||
"@</a> ")
|
||||
t t line)))))
|
||||
|
||||
;; Format the links
|
||||
(setq line (org-html-handle-links line opt-plist))
|
||||
|
||||
(setq line (org-html-handle-time-stamps line))
|
||||
|
||||
;; replace "&" by "&", "<" and ">" by "<" and ">"
|
||||
;; handle @<..> HTML tags (replace "@>..<" by "<..>")
|
||||
;; Also handle sub_superscripts and checkboxes
|
||||
(or (string-match org-table-hline-regexp line)
|
||||
(setq line (org-html-expand line)))
|
||||
|
||||
;; Format the links
|
||||
(setq line (org-html-handle-links line opt-plist))
|
||||
|
||||
(setq line (org-html-handle-time-stamps line))
|
||||
|
||||
;; TODO items
|
||||
(if (and (string-match org-todo-line-regexp line)
|
||||
(match-beginning 2))
|
||||
|
@ -1705,7 +1705,8 @@ lang=\"%s\" xml:lang=\"%s\">
|
|||
(when (and (plist-get opt-plist :author-info) author)
|
||||
(insert "<p class=\"author\">" (nth 1 lang-words) ": " author "</p>\n"))
|
||||
(when (and (plist-get opt-plist :email-info) email)
|
||||
(insert "<p class=\"mailto:" email "\"><" email "></p>\n"))
|
||||
(insert "<p class=\"email\"><a href=\"mailto:"
|
||||
email "\"><" email "></a></p>\n"))
|
||||
(when (plist-get opt-plist :creator-info)
|
||||
(insert "<p class=\"creator\">"
|
||||
(concat "Org version " org-version " with Emacs version "
|
||||
|
@ -1715,7 +1716,7 @@ lang=\"%s\" xml:lang=\"%s\">
|
|||
(if org-export-html-with-timestamp
|
||||
(insert org-export-html-html-helper-timestamp))
|
||||
|
||||
(insert "\n</div>\n</body>\n</html>\n")
|
||||
(unless body-only (insert "\n</div>\n</body>\n</html>\n"))
|
||||
|
||||
(unless (plist-get opt-plist :buffer-will-be-killed)
|
||||
(normal-mode)
|
||||
|
@ -1996,8 +1997,8 @@ for formatting. This is required for the DocBook exporter."
|
|||
;; DocBook document, we want to always include the caption to make
|
||||
;; DocBook XML file valid.
|
||||
(push (format "<caption>%s</caption>" (or caption "")) html)
|
||||
(when label (push (format "<a name=\"%s\" id=\"%s\"></a>" (org-solidify-link-text label) (org-solidify-link-text label))
|
||||
html))
|
||||
(when label
|
||||
(setq html-table-tag (org-export-splice-attributes html-table-tag (format "id=\"%s\"" (org-solidify-link-text label)))))
|
||||
(push html-table-tag html))
|
||||
(setq html (mapcar
|
||||
(lambda (x)
|
||||
|
@ -2112,14 +2113,14 @@ But it has the disadvantage, that Org-mode's HTML conversions cannot be used."
|
|||
(or b (setq b (substring s 0 (match-beginning 0))))
|
||||
(setq r (concat
|
||||
r (substring s 0 (match-beginning 0))
|
||||
" <span class=\"timestamp-wrapper\">"
|
||||
" @<span class=\"timestamp-wrapper\">"
|
||||
(if (match-end 1)
|
||||
(format "<span class=\"timestamp-kwd\">%s </span>"
|
||||
(format "@<span class=\"timestamp-kwd\">%s @</span>"
|
||||
(match-string 1 s)))
|
||||
(format " <span class=\"timestamp\">%s</span>"
|
||||
(format " @<span class=\"timestamp\">%s@</span>"
|
||||
(substring
|
||||
(org-translate-time (match-string 3 s)) 1 -1))
|
||||
"</span>")
|
||||
"@</span>")
|
||||
s (substring s (match-end 0))))
|
||||
;; Line break if line started and ended with time stamp stuff
|
||||
(if (not r)
|
||||
|
@ -2181,12 +2182,12 @@ that uses these same face definitions."
|
|||
(defun org-html-protect (s)
|
||||
"Convert characters to HTML equivalent.
|
||||
Possible conversions are set in `org-export-html-protect-char-alist'."
|
||||
(let ((start 0)
|
||||
(cl org-export-html-protect-char-alist) c)
|
||||
(let ((cl org-export-html-protect-char-alist) c)
|
||||
(while (setq c (pop cl))
|
||||
(let ((start 0))
|
||||
(while (string-match (car c) s start)
|
||||
(setq s (replace-match (cdr c) t t s)
|
||||
start (1+ (match-beginning 0)))))
|
||||
start (1+ (match-beginning 0))))))
|
||||
s))
|
||||
|
||||
(defun org-html-expand (string)
|
||||
|
|
|
@ -400,6 +400,17 @@ group 4: description tag")
|
|||
(goto-char (match-end 0)))
|
||||
(looking-at regexp))))
|
||||
|
||||
(defun org-list-in-valid-block-p ()
|
||||
"Non-nil if point is in a valid block.
|
||||
Invalid blocks are referring to `org-list-forbidden-blocks'."
|
||||
(save-match-data
|
||||
(let ((case-fold-search t))
|
||||
(not (org-in-regexps-block-p
|
||||
(concat "^[ \t]*#\\+begin_\\("
|
||||
(mapconcat 'regexp-quote org-list-forbidden-blocks "\\|")
|
||||
"\\)")
|
||||
'(concat "^[ \t]*#\\+end_" (match-string 1)))))))
|
||||
|
||||
(defun org-in-item-p ()
|
||||
"Return item beginning position when in a plain list, nil otherwise.
|
||||
This checks `org-list-ending-method'."
|
||||
|
@ -476,8 +487,7 @@ This checks `org-list-ending-method'."
|
|||
"Is point in a line starting a hand-formatted item?"
|
||||
(save-excursion
|
||||
(beginning-of-line)
|
||||
(and (looking-at (org-item-re))
|
||||
(not (eq (nth 2 (org-list-context)) 'invalid)))))
|
||||
(and (looking-at (org-item-re)) (org-list-in-valid-block-p))))
|
||||
|
||||
(defun org-at-item-bullet-p ()
|
||||
"Is point at the bullet of a plain list item?"
|
||||
|
@ -1037,9 +1047,9 @@ in `re-search-forward'."
|
|||
(unless (funcall search re bound noerr)
|
||||
(throw 'exit (and (goto-char (if (memq noerr '(t nil)) origin bound))
|
||||
nil)))
|
||||
;; 2. Match in an `invalid' context: continue searching. Else,
|
||||
;; return point.
|
||||
(unless (eq (org-list-context) 'invalid) (throw 'exit (point)))))))
|
||||
;; 2. Match in valid context: return point. Else, continue
|
||||
;; searching.
|
||||
(when (org-list-in-valid-block-p) (throw 'exit (point)))))))
|
||||
|
||||
(defun org-list-search-backward (regexp &optional bound noerror)
|
||||
"Like `re-search-backward' but stop only where lists are recognized.
|
||||
|
@ -1150,10 +1160,10 @@ This function modifies STRUCT."
|
|||
;; BEFOREP and SPLIT-LINE-P. The difference of size
|
||||
;; between what was cut and what was inserted in buffer
|
||||
;; is stored in SIZE-OFFSET.
|
||||
(ind (let ((ind-ref (org-list-get-ind item struct)))
|
||||
(if (not indent-tabs-mode)
|
||||
ind-ref
|
||||
(+ (/ ind-ref tab-width) (mod ind-ref tab-width)))))
|
||||
(ind (org-list-get-ind item struct))
|
||||
(ind-size (if indent-tabs-mode
|
||||
(+ (/ ind tab-width) (mod ind tab-width))
|
||||
ind))
|
||||
(bullet (org-list-bullet-string (org-list-get-bullet item struct)))
|
||||
(box (when checkbox "[ ]"))
|
||||
(text-cut
|
||||
|
@ -1170,7 +1180,7 @@ This function modifies STRUCT."
|
|||
text-cut))
|
||||
"")))
|
||||
(item-sep (make-string (1+ blank-nb) ?\n))
|
||||
(item-size (+ ind (length body) (length item-sep)))
|
||||
(item-size (+ ind-size (length body) (length item-sep)))
|
||||
(size-offset (- item-size (length text-cut))))
|
||||
;; 4. Insert effectively item into buffer
|
||||
(goto-char item)
|
||||
|
@ -2097,8 +2107,8 @@ in subtree, ignoring drawers."
|
|||
((equal toggle-presence '(16)) "[-]")
|
||||
((equal toggle-presence '(4))
|
||||
(unless cbox "[ ]"))
|
||||
((equal "[ ]" cbox) "[X]")
|
||||
(t "[ ]"))))))
|
||||
((equal "[X]" cbox) "[ ]")
|
||||
(t "[X]"))))))
|
||||
;; When an item is found within bounds, grab the full list at
|
||||
;; point structure, then: 1. set checkbox of all its items
|
||||
;; within bounds to ref-checkbox; 2. fix checkboxes of the whole
|
||||
|
|
|
@ -335,12 +335,10 @@ point nowhere."
|
|||
|
||||
(defmacro org-with-wide-buffer (&rest body)
|
||||
"Execute body while temporarily widening the buffer."
|
||||
`(let ((beg (point-min)) (end (point-max)) (pos (point)))
|
||||
(prog2
|
||||
`(save-excursion
|
||||
(save-restriction
|
||||
(widen)
|
||||
,@body
|
||||
(narrow-to-region beg end)
|
||||
(goto-char pos))))
|
||||
,@body)))
|
||||
|
||||
(defmacro org-with-limited-levels (&rest body)
|
||||
"Execute BODY with limited number of outline levels."
|
||||
|
|
|
@ -207,21 +207,20 @@ it in the buffer."
|
|||
(defun org-timer-item (&optional arg)
|
||||
"Insert a description-type item with the current timer value."
|
||||
(interactive "P")
|
||||
(let ((itemp (org-in-item-p)))
|
||||
(let ((itemp (org-in-item-p)) (pos (point)))
|
||||
(cond
|
||||
;; In a timer list, insert with `org-list-insert-item',
|
||||
;; then fix the list.
|
||||
((and itemp
|
||||
(save-excursion (goto-char itemp) (org-at-item-timer-p)))
|
||||
((and itemp (goto-char itemp) (org-at-item-timer-p))
|
||||
(let* ((struct (org-list-struct))
|
||||
(prevs (org-list-prevs-alist struct))
|
||||
(s (concat (org-timer (when arg '(4)) t) ":: ")))
|
||||
(setq struct (org-list-insert-item (point) struct prevs nil s))
|
||||
(setq struct (org-list-insert-item pos struct prevs nil s))
|
||||
(org-list-write-struct struct (org-list-parents-alist struct))
|
||||
(looking-at org-list-full-item-re)
|
||||
(goto-char (match-end 0))))
|
||||
;; In a list of another type, don't break anything: throw an error.
|
||||
(itemp (error "This is not a timer list"))
|
||||
(itemp (goto-char pos) (error "This is not a timer list"))
|
||||
;; Else, start a new list.
|
||||
(t
|
||||
(beginning-of-line)
|
||||
|
|
39
lisp/org.el
39
lisp/org.el
|
@ -13402,7 +13402,8 @@ but in some other way.")
|
|||
'("ARCHIVE" "CATEGORY" "SUMMARY" "DESCRIPTION" "CUSTOM_ID"
|
||||
"LOCATION" "LOGGING" "COLUMNS" "VISIBILITY"
|
||||
"TABLE_EXPORT_FORMAT" "TABLE_EXPORT_FILE"
|
||||
"EXPORT_FILE_NAME" "EXPORT_TITLE" "EXPORT_AUTHOR" "EXPORT_DATE"
|
||||
"EXPORT_OPTIONS" "EXPORT_TEXT" "EXPORT_FILE_NAME"
|
||||
"EXPORT_TITLE" "EXPORT_AUTHOR" "EXPORT_DATE"
|
||||
"ORDERED" "NOBLOCKING" "COOKIE_DATA" "LOG_INTO_DRAWER" "REPEAT_TO_STATE"
|
||||
"CLOCK_MODELINE_TOTAL" "STYLE" "HTML_CONTAINER_CLASS")
|
||||
"Some properties that are used by Org-mode for various purposes.
|
||||
|
@ -13853,7 +13854,8 @@ and the new value.")
|
|||
With INCLUDE-SPECIALS, also list the special properties that reflect things
|
||||
like tags and TODO state.
|
||||
With INCLUDE-DEFAULTS, also include properties that has special meaning
|
||||
internally: ARCHIVE, CATEGORY, SUMMARY, DESCRIPTION, LOCATION, and LOGGING.
|
||||
internally: ARCHIVE, CATEGORY, SUMMARY, DESCRIPTION, LOCATION, and LOGGING
|
||||
and others.
|
||||
With INCLUDE-COLUMNS, also include property names given in COLUMN
|
||||
formats in the current buffer."
|
||||
(let (rtn range cfmt s p)
|
||||
|
@ -17512,8 +17514,8 @@ This command does many different things, depending on context:
|
|||
(cond
|
||||
((equal arg '(16)) "[-]")
|
||||
((equal arg '(4)) nil)
|
||||
((equal "[ ]" cbox) "[X]")
|
||||
(t "[ ]")))
|
||||
((equal "[X]" cbox) "[ ]")
|
||||
(t "[X]")))
|
||||
(org-list-struct-fix-ind struct parents)
|
||||
(org-list-struct-fix-bul struct prevs)
|
||||
(setq block-item
|
||||
|
@ -18773,10 +18775,9 @@ Taken from `count' in cl-seq.el with all keyword arguments removed."
|
|||
"Move backwards over whitespace, to the beginning of the first empty line.
|
||||
Returns the number of empty lines passed."
|
||||
(let ((pos (point)))
|
||||
(if (cdr (assoc 'heading org-blank-before-new-entry))
|
||||
(skip-chars-backward " \t\n\r")
|
||||
;; (if (cdr (assoc 'heading org-blank-before-new-entry))
|
||||
;; (skip-chars-backward " \t\n\r")
|
||||
;; (forward-line -1))
|
||||
(forward-line -1))
|
||||
(beginning-of-line 2)
|
||||
(goto-char (min (point) pos))
|
||||
(count-lines (point) pos)))
|
||||
|
@ -18990,6 +18991,12 @@ If point is in an inline task, mark that task instead."
|
|||
;; Literal examples
|
||||
((looking-at "[ \t]*:[ \t]")
|
||||
(setq column (org-get-indentation))) ; do nothing
|
||||
;; Lists
|
||||
((ignore-errors (goto-char (org-in-item-p)))
|
||||
(setq column (if itemp
|
||||
(org-get-indentation)
|
||||
(org-list-item-body-column (point))))
|
||||
(goto-char pos))
|
||||
;; Drawers
|
||||
((and (looking-at "[ \t]*:END:")
|
||||
(save-excursion (re-search-backward org-drawer-regexp nil t)))
|
||||
|
@ -19011,12 +19018,6 @@ If point is in an inline task, mark that task instead."
|
|||
;; src blocks: let `org-edit-src-exit' handle them
|
||||
(org-get-indentation)
|
||||
(org-get-indentation (match-string 0)))))
|
||||
;; Lists
|
||||
((ignore-errors (goto-char (org-in-item-p)))
|
||||
(setq column (if itemp
|
||||
(org-get-indentation)
|
||||
(org-list-item-body-column (point))))
|
||||
(goto-char pos))
|
||||
;; This line has nothing special, look at the previous relevant
|
||||
;; line to compute indentation
|
||||
(t
|
||||
|
@ -19184,13 +19185,13 @@ the functionality can be provided as a fall-back.")
|
|||
;; a paragraph adjacent to a list: make sure this paragraph
|
||||
;; doesn't get merged with the end of the list by narrowing
|
||||
;; buffer first.
|
||||
((save-excursion (fill-forward-paragraph -1)
|
||||
((save-excursion (forward-paragraph -1)
|
||||
(setq itemp (org-in-item-p)))
|
||||
(let ((struct (save-excursion (goto-char itemp)
|
||||
(org-list-struct))))
|
||||
(save-restriction
|
||||
(narrow-to-region (org-list-get-bottom-point struct)
|
||||
(save-excursion (fill-forward-paragraph 1)
|
||||
(save-excursion (forward-paragraph 1)
|
||||
(point)))
|
||||
(fill-paragraph justify) t)))
|
||||
;; Else simply call `fill-paragraph'.
|
||||
|
@ -19207,15 +19208,15 @@ the functionality can be provided as a fall-back.")
|
|||
;; Comment line
|
||||
((looking-at "#[ \t]+")
|
||||
(match-string-no-properties 0))
|
||||
;; Plain list item
|
||||
((org-at-item-p)
|
||||
(make-string (org-list-item-body-column (point-at-bol)) ?\ ))
|
||||
;; Point is in a list after `backward-paragraph': original
|
||||
;; point wasn't in the list, or filling would have been taken
|
||||
;; care of by `org-auto-fill-function', but the list and the
|
||||
;; real paragraph are not separated by a blank line. Thus, move
|
||||
;; point after the list to go back to real paragraph and
|
||||
;; determine fill-prefix. If point is at an item, do not
|
||||
;; compute prefix and list structure, as first line of
|
||||
;; paragraph will be skipped anyway.
|
||||
((org-at-item-p) "")
|
||||
;; determine fill-prefix.
|
||||
((setq itemp (org-in-item-p))
|
||||
(goto-char itemp)
|
||||
(let* ((struct (org-list-struct))
|
||||
|
|
Loading…
Reference in New Issue