Merge Org 8.2.4

This commit is contained in:
Bastien Guerry 2013-12-06 12:21:31 +01:00
parent 64ed4306fc
commit 73d3db828e
27 changed files with 621 additions and 433 deletions

View file

@ -1,3 +1,12 @@
2013-12-06 Nicolas Goaziou <n.goaziou@gmail.com>
* org.texi (Creating one-off styles): Use new export snippet
syntax.
* org.texi (Export settings): documentation describing how text
above the first heading is ignored when an :export: tag is in a
file.
2013-12-05 Michael Albinus <michael.albinus@gmx.de>
* dbus.texi (Type Conversion): Clarify unibyte-ness of strings.

View file

@ -2,7 +2,7 @@
@c %**start of header
@setfilename ../../info/org
@settitle The Org Manual
@set VERSION 8.2.3 (GNU Emacs 24.3)
@set VERSION 8.2.4 (GNU Emacs 24.3)
@c Use proper quote and backtick for code sections in PDF output
@c Cf. Texinfo manual 14.2
@ -10518,7 +10518,8 @@ clocktable.
The tags that select a tree for export (@code{org-export-select-tags}). The
default value is @code{:export:}. Within a subtree tagged with
@code{:export:}, you can still exclude entries with @code{:noexport:} (see
below).
below). When headlines are selectively exported with @code{:export:}
anywhere in a file, text before the first headline is ignored.
@item EXCLUDE_TAGS
The tags that exclude a tree from export (@code{org-export-exclude-tags}).
@ -12542,13 +12543,13 @@ file. The use of this feature is better illustrated with couple of examples.
@enumerate
@item Embedding ODT tags as part of regular text
You can include simple OpenDocument tags by prefixing them with
@samp{@@}. For example, to highlight a region of text do the following:
You can inline OpenDocument syntax by enclosing it within
@samp{@@@@odt:...@@@@} markup. For example, to highlight a region of text do
the following:
@example
@@<text:span text:style-name="Highlight">This is a
highlighted text@@</text:span>. But this is a
regular text.
@@@@odt:<text:span text:style-name="Highlight">This is a highlighted
text</text:span>@@@@. But this is a regular text.
@end example
@strong{Hint:} To see the above example in action, edit your

View file

@ -1,5 +1,5 @@
% Reference Card for Org Mode
\def\orgversionnumber{8.2.3}
\def\orgversionnumber{8.2.4}
\def\versionyear{2013} % latest update
\input emacsver.tex

View file

@ -1,3 +1,187 @@
2013-12-06 Achim Gratz <Stromeko@Stromeko.DE>
* org-crypt.el: Declare `epg-context´.
(org-encrypt-string): Correct indentation.
* org.el (org-version): Replace `_version´ by `version1´.
2013-12-06 Alexander Vorobiev <alexander.vorobiev@gmail.com> (tiny change)
* org-compat.el (org-get-x-clipboard): Use w32-get-clipboard-data
to get the clipboard data under Windows.
2013-12-06 Bastien Guerry <bzg@gnu.org>
* ox.el (org-export-with-sub-superscripts):
* org.el (org-use-sub-superscripts): Fix version and enhance
docstring again.
* ox.el (org-export-with-sub-superscripts):
* org.el (org-use-sub-superscripts): Enhance docstrings.
* org-macs.el (org-autoload): Delete.
* org-docview.el ("docview"): Fix declarations and require
doc-view directly.
* org-id.el (org-id-copy)
(org-id-get-with-outline-path-completion)
(org-id-get-with-outline-drilling, org-id-new):
* org-colview.el:
(org-colview-initial-truncate-line-value)
(org-columns-open-link, org-string-to-number):
* org-clock.el:
(org-clock-put-overlay, org-count-quarter, org-clock-loaded):
* org-archive.el (org-get-local-archive-location):
* org-agenda.el (org-agenda-todo-custom-ignore-p):
Autoload.
* org.el (org-return-follows-link):
* ob-python.el (org-babel-python-command): Don't use :set.
* ox-odt.el (org-odt-content-template-file): Fix version.
* ox-texinfo.el (org-texinfo-filename): Fix default value.
(org-texinfo-format-headline-function): Use 'ignore as the
default value.
(org-texinfo-format-drawer-function): Use a function as the
default value. Update docstring.
(org-texinfo-drawer): Always use
`org-texinfo-format-drawer-function' as it is now a function
by default.
(org-texinfo-headline): Compare
`org-texinfo-format-headline-function' against 'ignore.
(org-texinfo-inlinetask): Compare
`org-texinfo-format-inlinetask-function' against 'ignore.
* ox-odt.el (org-odt-format-drawer-function): Use a function as
the default value. Update docstring.
(org-odt-format-headline-function)
(org-odt-format-inlinetask-function): Fix default value.
(org-odt-drawer): Always use `org-odt-format-drawer-function'
as it is now a function by default.
(org-odt-format-headline--wrap): Compare
`org-odt-format-headline-function' against 'ignore.
* ox-latex.el (org-latex-format-drawer-function): Use a function
as the default value. Update docstring.
(org-latex-format-inlinetask-function): Fix default value.
(org-latex-drawer): Always use
`org-latex-format-drawer-function' as it is now a function by
default.
(org-latex-inlinetask): Compare
`org-latex-format-inlinetask-function' against 'ignore.
* ox-html.el (org-html-format-drawer-function): Use a function as
the default value. Update docstring.
(org-html-format-headline-function)
(org-html-format-inlinetask-function): Fix default value.
(org-html--format-toc-headline)
(org-html-format-headline--wrap): Compare
`org-html-format-headline-function' against 'ignore.
(org-html-inlinetask): Compare
`org-html-format-inlinetask-function' against 'ignore.
* ox-ascii.el (org-ascii-format-drawer-function): Use a
function as the default value. Update docstring.
(org-ascii-drawer): Always use
`org-ascii-format-drawer-function' as it is now a function by
default.
(org-ascii-format-inlinetask-default): New function.
(org-ascii-format-inlinetask-function): Use
`org-ascii-format-inlinetask-default' as the default.
* org.el (org-mouse-1-follows-link): Use :set to set the default
value. Update custom type.
(org-log-note-headings): Fix order or list items in the custom
type.
(orgstruct-heading-prefix-regexp): Use an empty string as the
default value. Use 'regexp as the custom type.
(orgstruct-make-binding): Tiny docstring enhancement. Assume
`orgstruct-heading-prefix-regexp' is a string.
* org-agenda.el (org-agenda-search-view-max-outline-level): Set
default value to 0. Update docstring.
(org-agenda-deadline-leaders): Fix custom type.
(org-search-view): Assume
`org-agenda-search-view-max-outline-level' is a number.
* ob-ruby.el (org-babel-ruby-nil-to): Fix custom type.
* ob-python.el (org-babel-python-mode): Use :set to set the
default value.
(org-babel-python-None-to): Fix custom type.
* ob-plantuml.el (org-plantuml-jar-path): Fix default value.
(org-babel-execute:plantuml): Assume `org-plantuml-jar-path' is a
string.
* ob-latex.el (org-babel-latex-htlatex): Fix default value.
(org-babel-latex-htlatex-packages): Fix custom type.
(org-babel-execute:latex): Assume `org-babel-latex-htlatex' is a
string.
* ox-odt.el (org-odt-display-outline-level): Fix version.
* ox-odt.el (org-odt-inline-formula-rules)
(org-odt-inline-image-rules, org-odt-use-date-fields): Add version
and package-version.
* ox-html.el (org-html-format-drawer-function)
(org-html-format-headline-function)
(org-html-format-inlinetask-function)
(org-html-creator-string): Add version and package-version.
* ox-html.el (org-html-text-markup-alist): Fix version.
* org-agenda.el (org-agenda-set-restriction-lock): Autoload.
* ob-abc.el (org-babel-expand-body:abc): Use dolist.
(org-babel-execute:abc): Fix regexp quoting.
* ob-calc.el (org--var-syms): Rename from `var-syms'.
* ob-lilypond.el (ly-compile-lilyfile): Remove redundant
let-binding.
* ob-table.el (sbe): Move debug declaration.
* org-clock.el (org--msg-extra): Rename from `msg-extra'.
2013-12-06 Nicolas Goaziou <n.goaziou@gmail.com>
* org.el (org-ctrl-c-ctrl-c): When point is on an unsupported
object, look for something to do at a higher level instead of
bailing out.
* ox-html.el (org-html-format-latex): Add an argument. Ensure
latex header is the same as specified in the original buffer when
exporting a LaTeX fragment or environment.
(org-html-latex-environment, org-html-latex-fragment): Apply
signature change.
* ox-publish.el (org-publish-cache-ctime-of-src): Return an error
when publishing a non-existent file.
* org-element.el (org-element-paragraph-separate): More accurate
regexp.
* org.el (org-entry-get): Widen buffer in order to retrieve
properties, as `org-entry-properties' and
`org-entry-get-with-inheritance' already do.
* ox-html.el (org-html--format-toc-headline): Add missing headline
number in TOC entries.
* org.el (org-entry-properties): Ignore narrowing when retrieving
current headline properties.
2013-12-06 Thierry Volpiatto <thierry.volpiatto@gmail.com> (tiny change)
* org-crypt.el (org-encrypt-string, org-encrypt-entry)
(org-decrypt-entry): Fix warning.
2013-11-17 Paul Eggert <eggert@cs.ucla.edu>
Spelling fixes.

View file

@ -50,7 +50,7 @@
'((:results . "latex") (:exports . "results"))
"Default arguments to use when evaluating a LaTeX source block.")
(defcustom org-babel-latex-htlatex nil
(defcustom org-babel-latex-htlatex ""
"The htlatex command to enable conversion of latex to SVG or HTML."
:group 'org-babel
:type 'string)
@ -59,7 +59,7 @@
'("[usenames]{color}" "{tikz}" "{color}" "{listings}" "{amsmath}")
"Packages to use for htlatex export."
:group 'org-babel
:type '(list string))
:type '(list (string)))
(defun org-babel-expand-body:latex (body params)
"Expand BODY according to PARAMS, return the expanded body."
@ -141,7 +141,7 @@ This function is called by `org-babel-execute-src-block'."
(delete-file transient-pdf-file))))))
((and (or (string-match "\\.svg$" out-file)
(string-match "\\.html$" out-file))
org-babel-latex-htlatex)
(not (string= "" org-babel-latex-htlatex)))
(with-temp-file tex-file
(insert (concat
"\\documentclass[preview]{standalone}

View file

@ -40,7 +40,7 @@
'((:results . "file") (:exports . "results"))
"Default arguments for evaluating a plantuml source block.")
(defcustom org-plantuml-jar-path nil
(defcustom org-plantuml-jar-path ""
"Path to the plantuml.jar file."
:group 'org-babel
:version "24.1"
@ -55,7 +55,7 @@ This function is called by `org-babel-execute-src-block'."
(cmdline (cdr (assoc :cmdline params)))
(in-file (org-babel-temp-file "plantuml-"))
(java (or (cdr (assoc :java params)) ""))
(cmd (if (not org-plantuml-jar-path)
(cmd (if (string= "" org-plantuml-jar-path)
(error "`org-plantuml-jar-path' is not set")
(concat "java " java " -jar "
(shell-quote-argument

View file

@ -54,7 +54,7 @@ This will typically be either 'python or 'python-mode."
:group 'org-babel
:version "24.4"
:package-version '(Org . "8.0")
:type 'function)
:type 'symbol)
(defvar org-src-preserve-indentation)
@ -70,7 +70,7 @@ This will typically be either 'python or 'python-mode."
:group 'org-babel
:version "24.4"
:package-version '(Org . "8.0")
:type 'string)
:type 'symbol)
(defun org-babel-execute:python (body params)
"Execute a block of Python code with Babel.

View file

@ -62,9 +62,7 @@
:group 'org-babel
:version "24.4"
:package-version '(Org . "8.0")
:type 'string)
:type 'symbol)
(defun org-babel-execute:ruby (body params)
"Execute a block of Ruby code with Babel.

View file

@ -1419,13 +1419,14 @@ When nil, they may also match part of a word."
:version "24.1"
:type 'boolean)
(defcustom org-agenda-search-view-max-outline-level nil
(defcustom org-agenda-search-view-max-outline-level 0
"Maximum outline level to display in search view.
E.g. when this is set to 1, the search view will only
show headlines of level 1."
show headlines of level 1. When set to 0, the default
value, don't limit agenda view by outline level."
:group 'org-agenda-search-view
:version "24.4"
:package-version '(Org . "8.0")
:package-version '(Org . "8.3")
:type 'integer)
(defgroup org-agenda-time-grid nil
@ -1746,10 +1747,9 @@ to capture the number of days."
:version "24.4"
:package-version '(Org . "8.0")
:type '(list
(string :tag "Deadline today ")
(choice :tag "Deadline relative"
(string :tag "Format string")
(function))))
(string :tag "Deadline today ")
(string :tag "Deadline in the future ")
(string :tag "Deadline in the past ")))
(defcustom org-agenda-remove-times-when-in-prefix t
"Non-nil means remove duplicate time specifications in agenda items.
@ -4583,7 +4583,7 @@ in `org-agenda-text-search-extra-files'."
(goto-char (max (point-min) (1- (point))))
(while (re-search-forward regexp nil t)
(org-back-to-heading t)
(while (and org-agenda-search-view-max-outline-level
(while (and (not (zerop org-agenda-search-view-max-outline-level))
(> (org-reduced-level (org-outline-level))
org-agenda-search-view-max-outline-level)
(forward-line -1)
@ -4593,7 +4593,7 @@ in `org-agenda-text-search-extra-files'."
beg1 (point)
end (progn
(outline-next-heading)
(while (and org-agenda-search-view-max-outline-level
(while (and (not (zerop org-agenda-search-view-max-outline-level))
(> (org-reduced-level (org-outline-level))
org-agenda-search-view-max-outline-level)
(forward-line 1)
@ -5451,6 +5451,7 @@ This function is invoked if `org-agenda-todo-ignore-deadlines',
(>= days n)
(<= days n))))
;;;###autoload
(defun org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item
(&optional end)
"Do we have a reason to ignore this TODO entry because it has a time stamp?"

View file

@ -135,6 +135,7 @@ information."
(match-string 1))
(t org-archive-location))))))
;;;###autoload
(defun org-add-archive-files (files)
"Splice the archive files into the list of files.
This implies visiting all these files and finding out what the

View file

@ -1871,6 +1871,7 @@ will be easy to remove."
(overlay-put ov 'end-glyph (make-glyph tx)))
(push ov org-clock-overlays)))
;;;###autoload
(defun org-clock-remove-overlays (&optional beg end noremove)
"Remove the occur highlights from the buffer.
BEG and END are ignored. If NOREMOVE is nil, remove this function
@ -2143,6 +2144,7 @@ If you can combine both, the month starting day will have priority."
((= n 3) "3rd")
((= n 4) "4th")))
;;;###autoload
(defun org-clocktable-shift (dir n)
"Try to shift the :block date of the clocktable at point.
Point must be in the #+BEGIN: line of a clocktable, or this function
@ -2752,6 +2754,7 @@ This function is made for clock tables."
(defvar org-clock-loaded nil
"Was the clock file loaded?")
;;;###autoload
(defun org-clock-update-time-maybe ()
"If this is a CLOCK line, update it and return t.
Otherwise, return nil."

View file

@ -323,6 +323,7 @@ for the duration of the command.")
(defvar org-colview-initial-truncate-line-value nil
"Remember the value of `truncate-lines' across colview.")
;;;###autoload
(defun org-columns-remove-overlays ()
"Remove all currently active column overlays."
(interactive)
@ -670,6 +671,7 @@ around it."
(let ((value (get-char-property (point) 'org-columns-value)))
(org-open-link-from-string value arg)))
;;;###autoload
(defun org-columns-get-format-and-top-level ()
(let ((fmt (org-columns-get-format)))
(org-columns-goto-top-level)
@ -951,6 +953,8 @@ display, or in the #+COLUMNS line of the current buffer."
(defvar org-inlinetask-min-level
(if (featurep 'org-inlinetask) org-inlinetask-min-level 15))
;;;###autoload
(defun org-columns-compute (property)
"Sum the values of property PROPERTY hierarchically, for the entire buffer."
(interactive)
@ -1054,6 +1058,7 @@ display, or in the #+COLUMNS line of the current buffer."
(setq sum (+ (string-to-number (pop l)) (/ sum 60))))
sum)))
;;;###autoload
(defun org-columns-number-to-string (n fmt &optional printf)
"Convert a computed column number to a string value, according to FMT."
(cond

View file

@ -190,10 +190,12 @@ If DELETE is non-nil, delete all those overlays."
found))
(defun org-get-x-clipboard (value)
"Get the value of the x clipboard, compatible with XEmacs, and GNU Emacs 21."
(if (eq window-system 'x)
(let ((x (org-get-x-clipboard-compat value)))
(if x (org-no-properties x)))))
"Get the value of the x or Windows clipboard, compatible with XEmacs, and GNU Emacs 21."
(cond ((eq window-system 'x)
(let ((x (org-get-x-clipboard-compat value)))
(if x (org-no-properties x))))
((and (eq window-system 'w32) (fboundp 'w32-get-clipboard-data))
(w32-get-clipboard-data))))
(defsubst org-decompose-region (beg end)
"Decompose from BEG to END."

View file

@ -73,6 +73,8 @@
compress-algorithm))
(declare-function epg-encrypt-string "epg"
(context plain recipients &optional sign always-trust))
(defvar epg-context)
(defgroup org-crypt nil
"Org Crypt."
@ -161,8 +163,8 @@ See `org-crypt-disable-auto-save'."
(if (and (string= crypt-key (get-text-property 0 'org-crypt-key str))
(string= (sha1 str) (get-text-property 0 'org-crypt-checksum str)))
(get-text-property 0 'org-crypt-text str)
(let ((epg-context (epg-make-context nil t t)))
(epg-encrypt-string epg-context str (epg-list-keys epg-context crypt-key)))))
(set (make-local-variable 'epg-context) (epg-make-context nil t t))
(epg-encrypt-string epg-context str (epg-list-keys epg-context crypt-key))))
(defun org-encrypt-entry ()
"Encrypt the content of the current headline."
@ -170,11 +172,11 @@ See `org-crypt-disable-auto-save'."
(require 'epg)
(save-excursion
(org-back-to-heading t)
(set (make-local-variable 'epg-context) (epg-make-context nil t t))
(let ((start-heading (point)))
(forward-line)
(when (not (looking-at "-----BEGIN PGP MESSAGE-----"))
(let ((folded (outline-invisible-p))
(epg-context (epg-make-context nil t t))
(crypt-key (org-crypt-key-for-heading))
(beg (point))
end encrypted-text)
@ -206,11 +208,11 @@ See `org-crypt-disable-auto-save'."
(forward-line)
(when (looking-at "-----BEGIN PGP MESSAGE-----")
(org-crypt-check-auto-save)
(set (make-local-variable 'epg-context) (epg-make-context nil t t))
(let* ((end (save-excursion
(search-forward "-----END PGP MESSAGE-----")
(forward-line)
(point)))
(epg-context (epg-make-context nil t t))
(encrypted-text (buffer-substring-no-properties (point) end))
(decrypted-text
(decode-coding-string

View file

@ -44,12 +44,10 @@
(require 'org)
(require 'doc-view)
(declare-function doc-view-goto-page "ext:doc-view" (page))
(declare-function image-mode-window-get "ext:image-mode"
(prop &optional winprops))
(org-autoload "doc-view" '(doc-view-goto-page))
(declare-function doc-view-goto-page "doc-view" (page))
(declare-function image-mode-window-get "image-mode" (prop &optional winprops))
(org-add-link-type "docview" 'org-docview-open 'org-docview-export)
(add-hook 'org-store-link-functions 'org-docview-store-link)

View file

@ -143,10 +143,12 @@
"$" "\\|"
;; Tables (any type).
"\\(?:|\\|\\+-[-+]\\)" "\\|"
;; Blocks (any type), Babel calls, drawers (any type),
;; fixed-width areas and keywords. Note: this is only an
;; indication and need some thorough check.
"[#:]" "\\|"
;; Blocks (any type), Babel calls and keywords. Note: this
;; is only an indication and need some thorough check.
"#\\(?:[+ ]\\|$\\)" "\\|"
;; Drawers (any type) and fixed-width areas. This is also
;; only an indication.
":" "\\|"
;; Horizontal rules.
"-\\{5,\\}[ \t]*$" "\\|"
;; LaTeX environments.

View file

@ -233,6 +233,7 @@ With optional argument FORCE, force the creation of a new ID."
(org-entry-put (point) "ID" nil))
(org-id-get (point) 'create))
;;;###autoload
(defun org-id-copy ()
"Copy the ID of the entry at point to the kill ring.
Create an ID if necessary."
@ -258,6 +259,7 @@ In any case, the ID of the entry is returned."
(org-id-add-location id (buffer-file-name (buffer-base-buffer)))
id)))))
;;;###autoload
(defun org-id-get-with-outline-path-completion (&optional targets)
"Use `outline-path-completion' to retrieve the ID of an entry.
TARGETS may be a setting for `org-refile-targets' to define
@ -274,6 +276,7 @@ If necessary, the ID is created."
(prog1 (org-id-get pom 'create)
(move-marker pom nil))))
;;;###autoload
(defun org-id-get-with-outline-drilling (&optional targets)
"Use an outline-cycling interface to retrieve the ID of an entry.
This only finds entries in the current buffer, using `org-get-location'.
@ -320,6 +323,7 @@ With optional argument MARKERP, return the position as a new marker."
;; Creating new IDs
;;;###autoload
(defun org-id-new (&optional prefix)
"Create a new globally unique ID.

View file

@ -283,14 +283,6 @@ we turn off invisibility temporarily. Use this in a `let' form."
(<= (match-beginning n) pos)
(>= (match-end n) pos)))
(defun org-autoload (file functions)
"Establish autoload for all FUNCTIONS in FILE, if not bound already."
(let ((d (format "Documentation will be available after `%s.el' is loaded."
file))
f)
(while (setq f (pop functions))
(or (fboundp f) (autoload f file d t)))))
(defun org-match-line (re)
"Looking-at at the beginning of the current line."
(save-excursion

View file

@ -915,6 +915,7 @@ When nil, simply write \"#ERROR\" in corrupted fields.")
(setq org-table-may-need-update nil)
))
;;;###autoload
(defun org-table-begin (&optional table-type)
"Find the beginning of the table and return its position.
With argument TABLE-TYPE, go to the beginning of a table.el-type table."
@ -928,6 +929,7 @@ With argument TABLE-TYPE, go to the beginning of a table.el-type table."
(beginning-of-line 2)
(point))))
;;;###autoload
(defun org-table-end (&optional table-type)
"Find the end of the table and return its position.
With argument TABLE-TYPE, go to the end of a table.el-type table."
@ -1199,6 +1201,7 @@ Return t when the line exists, nil if it does not exist."
(< (setq cnt (1+ cnt)) N)))
(= cnt N)))
;;;###autoload
(defun org-table-blank-field ()
"Blank the current table field or active region."
(interactive)
@ -4121,7 +4124,7 @@ to execute outside of tables."
'(arg)
(concat "In tables, run `" (symbol-name fun) "'.\n"
"Outside of tables, run the binding of `"
(mapconcat (lambda (x) (format "%s" x)) keys "' or `")
(mapconcat #'key-description keys "' or `")
"'.")
'(interactive "p")
(list 'if

View file

@ -309,7 +309,7 @@ When MESSAGE is non-nil, display a message with the version."
(if here
(insert version)
(message version))
(if message (message _version))
(if message (message version1))
version1)))
(defconst org-version (org-version))
@ -654,11 +654,17 @@ the following lines anywhere in the buffer:
(defcustom org-use-sub-superscripts t
"Non-nil means interpret \"_\" and \"^\" for display.
When this option is turned on, you can use TeX-like syntax for sub- and
superscripts. Several characters after \"_\" or \"^\" will be
considered as a single item - so grouping with {} is normally not
needed. For example, the following things will be parsed as single
sub- or superscripts.
If you want to control how Org exports those characters, see
`org-export-with-sub-superscripts'. `org-use-sub-superscripts'
used to be an alias for `org-export-with-sub-superscripts' in
Org <8.0, it is not anymore.
When this option is turned on, you can use TeX-like syntax for
sub- and superscripts within the buffer. Several characters after
\"_\" or \"^\" will be considered as a single item - so grouping
with {} is normally not needed. For example, the following things
will be parsed as single sub- or superscripts:
10^24 or 10^tau several digits will be considered 1 item.
10^-12 or 10^-tau a leading sign with digits or a word
@ -666,13 +672,14 @@ sub- or superscripts.
terminated by almost any nonword/nondigit char.
x_{i^2} or x^(2-i) braces or parenthesis do grouping.
Still, ambiguity is possible - so when in doubt use {} to enclose
the sub/superscript. If you set this variable to the symbol
`{}', the braces are *required* in order to trigger
interpretations as sub/superscript. This can be helpful in
documents that need \"_\" frequently in plain text."
Still, ambiguity is possible. So when in doubt, use {} to enclose
the sub/superscript. If you set this variable to the symbol `{}',
the braces are *required* in order to trigger interpretations as
sub/superscript. This can be helpful in documents that need \"_\"
frequently in plain text."
:group 'org-startup
:version "24.1"
:version "24.4"
:package-version '(Org . "8.0")
:type '(choice
(const :tag "Always interpret" t)
(const :tag "Only with braces" {})
@ -1731,7 +1738,12 @@ In tables, the special behavior of RET has precedence."
A longer mouse click will still set point. Does not work on XEmacs.
Needs to be set before org.el is loaded."
:group 'org-link-follow
:type 'boolean)
:version "24.4"
:package-version '(Org . "8.3")
:type '(choice
(const :tag "A double click follows the link" 'double)
(const :tag "Unconditionally follow the link with mouse-1" t)
(integer :tag "mouse-1 click does not follow the link if longer than N ms" 450)))
(defcustom org-mark-ring-length 4
"Number of different positions to be recorded in the ring.
@ -2663,12 +2675,12 @@ agenda log mode depends on the format of these entries."
"Heading when changing todo state (todo sequence only)"
state) string)
(cons (const :tag "Heading when just taking a note" note) string)
(cons (const :tag "Heading when clocking out" clock-out) string)
(cons (const :tag "Heading when an item is no longer scheduled" delschedule) string)
(cons (const :tag "Heading when rescheduling" reschedule) string)
(cons (const :tag "Heading when an item is no longer scheduled" delschedule) string)
(cons (const :tag "Heading when changing deadline" redeadline) string)
(cons (const :tag "Heading when deleting a deadline" deldeadline) string)
(cons (const :tag "Heading when refiling" refile) string)))
(cons (const :tag "Heading when refiling" refile) string)
(cons (const :tag "Heading when clocking out" clock-out) string)))
(unless (assq 'note org-log-note-headings)
(push '(note . "%t") org-log-note-headings))
@ -4242,12 +4254,6 @@ Normal means, no org-mode-specific context."
"Detect the first line outside a table when searching from within it.
This works for both table types.")
;; Autoload the functions in org-table.el that are needed by functions here.
(eval-and-compile
(org-autoload "org-table"
'(org-table-begin org-table-blank-field org-table-end)))
(defconst org-TBLFM-regexp "^[ \t]*#\\+TBLFM: "
"Detect a #+TBLFM line.")
@ -4328,12 +4334,6 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables."
(re-search-forward org-table-any-border-regexp nil 1))))
(unless quietly (message "Mapping tables: done")))
;; Declare and autoload functions from org-agenda.el
(eval-and-compile
(org-autoload "org-agenda"
'(org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item)))
(declare-function org-clock-save-markers-for-cut-and-paste "org-clock" (beg end))
(declare-function org-clock-update-mode-line "org-clock" ())
(declare-function org-resolve-clocks "org-clock"
@ -4359,11 +4359,6 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables."
Return nil if no clock is running."
(marker-buffer org-clock-marker))
(eval-and-compile
(org-autoload "org-clock" '(org-clock-remove-overlays
org-clock-update-time-maybe
org-clocktable-shift)))
(defun org-check-running-clock ()
"Check if the current buffer contains the running clock.
If yes, offer to stop it and to save the buffer with the changes."
@ -4563,33 +4558,18 @@ Otherwise, these types are allowed:
(defalias 'org-advertized-archive-subtree 'org-archive-subtree)
(eval-and-compile
(org-autoload "org-archive"
'(org-add-archive-files)))
;; Autoload Column View Code
;; Declare Column View Code
(declare-function org-columns-number-to-string "org-colview" (n fmt &optional printf))
(declare-function org-columns-get-format-and-top-level "org-colview" ())
(declare-function org-columns-compute "org-colview" (property))
(org-autoload (if (featurep 'xemacs) "org-colview-xemacs" "org-colview")
'(org-columns-number-to-string
org-columns-get-format-and-top-level
org-columns-compute
org-columns-remove-overlays))
;; Autoload ID code
;; Declare ID code
(declare-function org-id-store-link "org-id")
(declare-function org-id-locations-load "org-id")
(declare-function org-id-locations-save "org-id")
(defvar org-id-track-globally)
(org-autoload "org-id"
'(org-id-new
org-id-copy
org-id-get-with-outline-path-completion
org-id-get-with-outline-drilling))
;;; Variables for pre-computed regular expressions, all buffer local
@ -8850,13 +8830,13 @@ If WITH-CASE is non-nil, the sorting will be case-sensitive."
;; command. There might be problems if any of the keys is otherwise
;; used as a prefix key.
(defcustom orgstruct-heading-prefix-regexp nil
(defcustom orgstruct-heading-prefix-regexp ""
"Regexp that matches the custom prefix of Org headlines in
orgstruct(++)-mode."
:group 'org
:version "24.4"
:package-version '(Org . "8.0")
:type 'string)
:package-version '(Org . "8.3")
:type 'regexp)
;;;###autoload(put 'orgstruct-heading-prefix-regexp 'safe-local-variable 'stringp)
(defcustom orgstruct-setup-hook nil
@ -9017,8 +8997,8 @@ buffer. It will also recognize item context in multiline items."
"Create a function for binding in the structure minor mode.
FUN is the command to call inside a table. KEY is the key that
should be checked in for a command to execute outside of tables.
Non-nil DISABLE-WHEN-HEADING-PREFIX means to disable the command
if `orgstruct-heading-prefix-regexp' is non-nil."
Non-nil `disable-when-heading-prefix' means to disable the command
if `orgstruct-heading-prefix-regexp' is not empty."
(let ((name (concat "orgstruct-hijacker-" (symbol-name fun))))
(let ((nname name)
(i 0))
@ -9044,14 +9024,13 @@ if `orgstruct-heading-prefix-regexp' is non-nil."
(key-description key) "'."
(when disable-when-heading-prefix
(concat
"\nIf `orgstruct-heading-prefix-regexp' is non-nil, this command will always fall\n"
"\nIf `orgstruct-heading-prefix-regexp' is not empty, this command will always fall\n"
"back to the default binding due to limitations of Org's implementation of\n"
"`" (symbol-name fun) "'.")))
(interactive "p")
(let* ((disable
,(when disable-when-heading-prefix
'(and orgstruct-heading-prefix-regexp
(not (string= orgstruct-heading-prefix-regexp "")))))
,(and disable-when-heading-prefix
'(not (string= orgstruct-heading-prefix-regexp ""))))
(fallback
(or disable
(not
@ -15204,103 +15183,102 @@ is a string only get exactly this property. SPECIFIC can be a string, the
specific property we are interested in. Specifying it can speed
things up because then unnecessary parsing is avoided."
(setq which (or which 'all))
(org-with-point-at pom
(let ((clockstr (substring org-clock-string 0 -1))
(excluded '("TODO" "TAGS" "ALLTAGS" "PRIORITY" "BLOCKED"))
(case-fold-search nil)
beg end range props sum-props key key1 value string clocksum clocksumt)
(save-excursion
(when (condition-case nil
(and (derived-mode-p 'org-mode) (org-back-to-heading t))
(error nil))
(setq beg (point))
(setq sum-props (get-text-property (point) 'org-summaries))
(setq clocksum (get-text-property (point) :org-clock-minutes)
clocksumt (get-text-property (point) :org-clock-minutes-today))
(outline-next-heading)
(setq end (point))
(when (memq which '(all special))
;; Get the special properties, like TODO and tags
(goto-char beg)
(when (and (or (not specific) (string= specific "TODO"))
(looking-at org-todo-line-regexp) (match-end 2))
(push (cons "TODO" (org-match-string-no-properties 2)) props))
(when (and (or (not specific) (string= specific "PRIORITY"))
(looking-at org-priority-regexp))
(push (cons "PRIORITY" (org-match-string-no-properties 2)) props))
(when (or (not specific) (string= specific "FILE"))
(push (cons "FILE" buffer-file-name) props))
(when (and (or (not specific) (string= specific "TAGS"))
(setq value (org-get-tags-string))
(string-match "\\S-" value))
(push (cons "TAGS" value) props))
(when (and (or (not specific) (string= specific "ALLTAGS"))
(setq value (org-get-tags-at)))
(push (cons "ALLTAGS" (concat ":" (mapconcat 'identity value ":")
":"))
props))
(when (or (not specific) (string= specific "BLOCKED"))
(push (cons "BLOCKED" (if (org-entry-blocked-p) "t" "")) props))
(when (or (not specific)
(member specific
'("SCHEDULED" "DEADLINE" "CLOCK" "CLOSED"
"TIMESTAMP" "TIMESTAMP_IA")))
(catch 'match
(while (re-search-forward org-maybe-keyword-time-regexp end t)
(setq key (if (match-end 1)
(substring (org-match-string-no-properties 1)
0 -1))
string (if (equal key clockstr)
(org-trim
(buffer-substring-no-properties
(match-beginning 3) (goto-char
(point-at-eol))))
(substring (org-match-string-no-properties 3)
1 -1)))
;; Get the correct property name from the key. This is
;; necessary if the user has configured time keywords.
(setq key1 (concat key ":"))
(cond
((not key)
(setq key
(if (= (char-after (match-beginning 3)) ?\[)
"TIMESTAMP_IA" "TIMESTAMP")))
((equal key1 org-scheduled-string) (setq key "SCHEDULED"))
((equal key1 org-deadline-string) (setq key "DEADLINE"))
((equal key1 org-closed-string) (setq key "CLOSED"))
((equal key1 org-clock-string) (setq key "CLOCK")))
(if (and specific (equal key specific) (not (equal key "CLOCK")))
(progn
(push (cons key string) props)
;; no need to search further if match is found
(throw 'match t))
(when (or (equal key "CLOCK") (not (assoc key props)))
(push (cons key string) props)))))))
(org-with-wide-buffer
(org-with-point-at pom
(let ((clockstr (substring org-clock-string 0 -1))
(excluded '("TODO" "TAGS" "ALLTAGS" "PRIORITY" "BLOCKED"))
(case-fold-search nil)
beg end range props sum-props key key1 value string clocksum clocksumt)
(when (and (derived-mode-p 'org-mode)
(ignore-errors (org-back-to-heading t)))
(setq beg (point))
(setq sum-props (get-text-property (point) 'org-summaries))
(setq clocksum (get-text-property (point) :org-clock-minutes)
clocksumt (get-text-property (point) :org-clock-minutes-today))
(outline-next-heading)
(setq end (point))
(when (memq which '(all special))
;; Get the special properties, like TODO and tags
(goto-char beg)
(when (and (or (not specific) (string= specific "TODO"))
(looking-at org-todo-line-regexp) (match-end 2))
(push (cons "TODO" (org-match-string-no-properties 2)) props))
(when (and (or (not specific) (string= specific "PRIORITY"))
(looking-at org-priority-regexp))
(push (cons "PRIORITY" (org-match-string-no-properties 2)) props))
(when (or (not specific) (string= specific "FILE"))
(push (cons "FILE" buffer-file-name) props))
(when (and (or (not specific) (string= specific "TAGS"))
(setq value (org-get-tags-string))
(string-match "\\S-" value))
(push (cons "TAGS" value) props))
(when (and (or (not specific) (string= specific "ALLTAGS"))
(setq value (org-get-tags-at)))
(push (cons "ALLTAGS" (concat ":" (mapconcat 'identity value ":")
":"))
props))
(when (or (not specific) (string= specific "BLOCKED"))
(push (cons "BLOCKED" (if (org-entry-blocked-p) "t" "")) props))
(when (or (not specific)
(member specific
'("SCHEDULED" "DEADLINE" "CLOCK" "CLOSED"
"TIMESTAMP" "TIMESTAMP_IA")))
(catch 'match
(while (re-search-forward org-maybe-keyword-time-regexp end t)
(setq key (if (match-end 1)
(substring (org-match-string-no-properties 1)
0 -1))
string (if (equal key clockstr)
(org-trim
(buffer-substring-no-properties
(match-beginning 3) (goto-char
(point-at-eol))))
(substring (org-match-string-no-properties 3)
1 -1)))
;; Get the correct property name from the key. This is
;; necessary if the user has configured time keywords.
(setq key1 (concat key ":"))
(cond
((not key)
(setq key
(if (= (char-after (match-beginning 3)) ?\[)
"TIMESTAMP_IA" "TIMESTAMP")))
((equal key1 org-scheduled-string) (setq key "SCHEDULED"))
((equal key1 org-deadline-string) (setq key "DEADLINE"))
((equal key1 org-closed-string) (setq key "CLOSED"))
((equal key1 org-clock-string) (setq key "CLOCK")))
(if (and specific (equal key specific) (not (equal key "CLOCK")))
(progn
(push (cons key string) props)
;; no need to search further if match is found
(throw 'match t))
(when (or (equal key "CLOCK") (not (assoc key props)))
(push (cons key string) props)))))))
(when (memq which '(all standard))
;; Get the standard properties, like :PROP: ...
(setq range (org-get-property-block beg end))
(when range
(goto-char (car range))
(while (re-search-forward org-property-re
(cdr range) t)
(setq key (org-match-string-no-properties 2)
value (org-trim (or (org-match-string-no-properties 3) "")))
(unless (member key excluded)
(push (cons key (or value "")) props)))))
(if clocksum
(push (cons "CLOCKSUM"
(org-columns-number-to-string (/ (float clocksum) 60.)
'add_times))
props))
(if clocksumt
(push (cons "CLOCKSUM_T"
(org-columns-number-to-string (/ (float clocksumt) 60.)
'add_times))
props))
(unless (assoc "CATEGORY" props)
(push (cons "CATEGORY" (org-get-category)) props))
(append sum-props (nreverse props)))))))
(when (memq which '(all standard))
;; Get the standard properties, like :PROP: ...
(setq range (org-get-property-block beg end))
(when range
(goto-char (car range))
(while (re-search-forward org-property-re
(cdr range) t)
(setq key (org-match-string-no-properties 2)
value (org-trim (or (org-match-string-no-properties 3) "")))
(unless (member key excluded)
(push (cons key (or value "")) props)))))
(if clocksum
(push (cons "CLOCKSUM"
(org-columns-number-to-string (/ (float clocksum) 60.)
'add_times))
props))
(if clocksumt
(push (cons "CLOCKSUM_T"
(org-columns-number-to-string (/ (float clocksumt) 60.)
'add_times))
props))
(unless (assoc "CATEGORY" props)
(push (cons "CATEGORY" (org-get-category)) props))
(append sum-props (nreverse props)))))))
(defun org-entry-get (pom property &optional inherit literal-nil)
"Get value of PROPERTY for entry or content at point-or-marker POM.
@ -15320,30 +15298,32 @@ when a \"nil\" value can supersede a non-nil value higher up the hierarchy."
t))
(org-entry-get-with-inheritance property literal-nil)
(if (member property org-special-properties)
;; We need a special property. Use `org-entry-properties' to
;; retrieve it, but specify the wanted property
;; We need a special property. Use `org-entry-properties'
;; to retrieve it, but specify the wanted property
(cdr (assoc property (org-entry-properties nil 'special property)))
(let ((range (org-get-property-block)))
(when (and range (not (eq (car range) (cdr range))))
(let* ((props (list (or (assoc property org-file-properties)
(assoc property org-global-properties)
(assoc property org-global-properties-fixed))))
(ap (lambda (key)
(when (re-search-forward
(org-re-property key) (cdr range) t)
(setq props
(org-update-property-plist
key
(if (match-end 3)
(org-match-string-no-properties 3) "")
props)))))
val)
(goto-char (car range))
(funcall ap property)
(goto-char (car range))
(while (funcall ap (concat property "+")))
(setq val (cdr (assoc property props)))
(when val (if literal-nil val (org-not-nil val))))))))))
(org-with-wide-buffer
(let ((range (org-get-property-block)))
(when (and range (not (eq (car range) (cdr range))))
(let* ((props
(list (or (assoc property org-file-properties)
(assoc property org-global-properties)
(assoc property org-global-properties-fixed))))
(ap (lambda (key)
(when (re-search-forward
(org-re-property key) (cdr range) t)
(setq props
(org-update-property-plist
key
(if (match-end 3)
(org-match-string-no-properties 3) "")
props)))))
val)
(goto-char (car range))
(funcall ap property)
(goto-char (car range))
(while (funcall ap (concat property "+")))
(setq val (cdr (assoc property props)))
(when val (if literal-nil val (org-not-nil val)))))))))))
(defun org-property-or-variable-value (var &optional inherit)
"Check if there is a property fixing the value of VAR.
@ -19525,9 +19505,6 @@ because, in this case the deletion might narrow the column."
(put 'org-self-insert-command 'pabbrev-expand-after-command t)
(put 'orgtbl-self-insert-command 'pabbrev-expand-after-command t)
;; How to do this: Measure non-white length of current string
;; If equal to column width, we should realign.
(defun org-remap (map &rest commands)
"In MAP, remap the functions given in COMMANDS.
COMMANDS is a list of alternating OLDDEF NEWDEF command names."
@ -20237,10 +20214,17 @@ This command does many different things, depending on context:
(if (save-excursion (beginning-of-line) (looking-at "[ \t]*$"))
(or (run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook)
(user-error "C-c C-c can do nothing useful at this location"))
;; When at a link, act according to the parent instead.
(when (eq type 'link)
(setq context (org-element-property :parent context))
(setq type (org-element-type context)))
(case type
;; When at a link, act according to the parent instead.
(link (setq context (org-element-property :parent context))
(setq type (org-element-type context)))
;; Unsupported object types: check parent element instead.
((bold code entity export-snippet inline-babel-call inline-src-block
italic latex-fragment line-break macro strike-through subscript
superscript underline verbatim)
(while (and (setq context (org-element-property :parent context))
(not (memq (setq type (org-element-type context))
'(paragraph verse-block)))))))
;; For convenience: at the first line of a paragraph on the
;; same line as an item, apply function on that item instead.
(when (eq type 'paragraph)

View file

@ -336,7 +336,8 @@ Otherwise, place it right after it."
:package-version '(Org . "8.0")
:type 'string)
(defcustom org-ascii-format-drawer-function nil
(defcustom org-ascii-format-drawer-function
(lambda (name contents width) contents)
"Function called to format a drawer in ASCII.
The function must accept three parameters:
@ -347,63 +348,32 @@ The function must accept three parameters:
The function should return either the string to be exported or
nil to ignore the drawer.
For example, the variable could be set to the following function
in order to mimic default behaviour:
\(defun org-ascii-format-drawer-default (name contents width)
\"Format a drawer element for ASCII export.\"
contents)"
The default value simply returns the value of CONTENTS."
:group 'org-export-ascii
:version "24.4"
:package-version '(Org . "8.0")
:type 'function)
(defcustom org-ascii-format-inlinetask-function nil
(defcustom org-ascii-format-inlinetask-function
'org-ascii-format-inlinetask-default
"Function called to format an inlinetask in ASCII.
The function must accept six parameters:
TODO the todo keyword, as a string
TODO-TYPE the todo type, a symbol among `todo', `done' and nil.
PRIORITY the inlinetask priority, as a string
NAME the inlinetask name, as a string.
TAGS the inlinetask tags, as a list of strings.
CONTENTS the contents of the inlinetask, as a string.
The function must accept nine parameters:
TODO the todo keyword, as a string
TODO-TYPE the todo type, a symbol among `todo', `done' and nil.
PRIORITY the inlinetask priority, as a string
NAME the inlinetask name, as a string.
TAGS the inlinetask tags, as a list of strings.
CONTENTS the contents of the inlinetask, as a string.
WIDTH the width of the inlinetask, as a number.
INLINETASK the inlinetask itself.
INFO the info channel.
The function should return either the string to be exported or
nil to ignore the inline task.
For example, the variable could be set to the following function
in order to mimic default behaviour:
\(defun org-ascii-format-inlinetask-default
\(todo type priority name tags contents\)
\"Format an inline task element for ASCII export.\"
\(let* \(\(utf8p \(eq \(plist-get info :ascii-charset\) 'utf-8\)\)
\(width org-ascii-inlinetask-width\)
\(org-ascii--indent-string
\(concat
;; Top line, with an additional blank line if not in UTF-8.
\(make-string width \(if utf8p ?━ ?_\)\) \"\\n\"
\(unless utf8p \(concat \(make-string width ? \) \"\\n\"\)\)
;; Add title. Fill it if wider than inlinetask.
\(let \(\(title \(org-ascii--build-title inlinetask info width\)\)\)
\(if \(<= \(length title\) width\) title
\(org-ascii--fill-string title width info\)\)\)
\"\\n\"
;; If CONTENTS is not empty, insert it along with
;; a separator.
\(when \(org-string-nw-p contents\)
\(concat \(make-string width \(if utf8p ?─ ?-\)\) \"\\n\" contents\)\)
;; Bottom line.
\(make-string width \(if utf8p ?━ ?_\)\)\)
;; Flush the inlinetask to the right.
\(- \(plist-get info :ascii-width\)
\(plist-get info :ascii-margin\)
\(plist-get info :ascii-inner-margin\)
\(org-ascii--current-text-width inlinetask info\)\)"
nil to ignore the inline task."
:group 'org-export-ascii
:version "24.4"
:package-version '(Org . "8.0")
:package-version '(Org . "8.3")
:type 'function)
@ -1071,11 +1041,7 @@ CONTENTS holds the contents of the block. INFO is a plist
holding contextual information."
(let ((name (org-element-property :drawer-name drawer))
(width (org-ascii--current-text-width drawer info)))
(if (functionp org-ascii-format-drawer-function)
(funcall org-ascii-format-drawer-function name contents width)
;; If there's no user defined function: simply
;; display contents of the drawer.
contents)))
(funcall org-ascii-format-drawer-function name contents width)))
;;;; Dynamic Block
@ -1228,55 +1194,58 @@ contextual information."
;;;; Inlinetask
(defun org-ascii-format-inlinetask-default
(todo type priority name tags contents width inlinetask info)
"Format an inline task element for ASCII export.
See `org-ascii-format-inlinetask-function' for a description
of the paramaters."
(let* ((utf8p (eq (plist-get info :ascii-charset) 'utf-8))
(width (or width org-ascii-inlinetask-width)))
(org-ascii--indent-string
(concat
;; Top line, with an additional blank line if not in UTF-8.
(make-string width (if utf8p ?━ ?_)) "\n"
(unless utf8p (concat (make-string width ? ) "\n"))
;; Add title. Fill it if wider than inlinetask.
(let ((title (org-ascii--build-title inlinetask info width)))
(if (<= (length title) width) title
(org-ascii--fill-string title width info)))
"\n"
;; If CONTENTS is not empty, insert it along with
;; a separator.
(when (org-string-nw-p contents)
(concat (make-string width (if utf8p ?─ ?-)) "\n" contents))
;; Bottom line.
(make-string width (if utf8p ?━ ?_)))
;; Flush the inlinetask to the right.
(- org-ascii-text-width org-ascii-global-margin
(if (not (org-export-get-parent-headline inlinetask)) 0
org-ascii-inner-margin)
(org-ascii--current-text-width inlinetask info)))))
(defun org-ascii-inlinetask (inlinetask contents info)
"Transcode an INLINETASK element from Org to ASCII.
CONTENTS holds the contents of the block. INFO is a plist
holding contextual information."
(let ((width (org-ascii--current-text-width inlinetask info)))
;; If `org-ascii-format-inlinetask-function' is provided, call it
;; with appropriate arguments.
(if (functionp org-ascii-format-inlinetask-function)
(funcall org-ascii-format-inlinetask-function
;; todo.
(and (plist-get info :with-todo-keywords)
(let ((todo (org-element-property
:todo-keyword inlinetask)))
(and todo (org-export-data todo info))))
;; todo-type
(org-element-property :todo-type inlinetask)
;; priority
(and (plist-get info :with-priority)
(org-element-property :priority inlinetask))
;; title
(org-export-data (org-element-property :title inlinetask) info)
;; tags
(and (plist-get info :with-tags)
(org-element-property :tags inlinetask))
;; contents and width
contents width)
;; Otherwise, use a default template.
(let* ((utf8p (eq (plist-get info :ascii-charset) 'utf-8)))
(org-ascii--indent-string
(concat
;; Top line, with an additional blank line if not in UTF-8.
(make-string width (if utf8p ?━ ?_)) "\n"
(unless utf8p (concat (make-string width ? ) "\n"))
;; Add title. Fill it if wider than inlinetask.
(let ((title (org-ascii--build-title inlinetask info width)))
(if (<= (length title) width) title
(org-ascii--fill-string title width info)))
"\n"
;; If CONTENTS is not empty, insert it along with
;; a separator.
(when (org-string-nw-p contents)
(concat (make-string width (if utf8p ?─ ?-)) "\n" contents))
;; Bottom line.
(make-string width (if utf8p ?━ ?_)))
;; Flush the inlinetask to the right.
(- org-ascii-text-width org-ascii-global-margin
(if (not (org-export-get-parent-headline inlinetask)) 0
org-ascii-inner-margin)
(org-ascii--current-text-width inlinetask info)))))))
(funcall org-ascii-format-inlinetask-function
;; todo.
(and (plist-get info :with-todo-keywords)
(let ((todo (org-element-property
:todo-keyword inlinetask)))
(and todo (org-export-data todo info))))
;; todo-type
(org-element-property :todo-type inlinetask)
;; priority
(and (plist-get info :with-priority)
(org-element-property :priority inlinetask))
;; title
(org-export-data (org-element-property :title inlinetask) info)
;; tags
(and (plist-get info :with-tags)
(org-element-property :tags inlinetask))
;; contents and width
contents width inlinetask info)))
;;;; Italic

View file

@ -130,7 +130,9 @@
(:infojs-opt "INFOJS_OPT" nil nil)
;; Redefine regular options.
(:creator "CREATOR" nil org-html-creator-string)
(:with-latex nil "tex" org-html-with-latex)))
(:with-latex nil "tex" org-html-with-latex)
;; Retrieve LaTeX header for fragments.
(:latex-header "LATEX_HEADER" nil nil newline)))
;;; Internal Variables
@ -544,6 +546,8 @@ a formatting string to wrap fontified text with.
If no association can be found for a given markup, text will be
returned as-is."
:group 'org-export-html
:version "24.4"
:package-version '(Org . "8.0")
:type '(alist :key-type (symbol :tag "Markup type")
:value-type (string :tag "Format string"))
:options '(bold code italic strike-through underline verbatim))
@ -565,7 +569,8 @@ Warning: non-nil may break indentation of source code blocks."
;;;; Drawers
(defcustom org-html-format-drawer-function nil
(defcustom org-html-format-drawer-function
(lambda (name contents) contents)
"Function called to format a drawer in HTML code.
The function must accept two parameters:
@ -577,10 +582,10 @@ The function should return the string to be exported.
For example, the variable could be set to the following function
in order to mimic default behaviour:
\(defun org-html-format-drawer-default \(name contents\)
\"Format a drawer element for HTML export.\"
contents\)"
The default value simply returns the value of CONTENTS."
:group 'org-export-html
:version "24.4"
:package-version '(Org . "8.0")
:type 'function)
;;;; Footnotes
@ -622,7 +627,7 @@ document title."
:group 'org-export-html
:type 'integer)
(defcustom org-html-format-headline-function nil
(defcustom org-html-format-headline-function 'ignore
"Function to format headline text.
This function will be called with 5 arguments:
@ -634,6 +639,8 @@ TAGS the tags (string or nil).
The function result will be used in the section format string."
:group 'org-export-html
:version "24.4"
:package-version '(Org . "8.0")
:type 'function)
;;;; HTML-specific
@ -649,7 +656,7 @@ attributes, when appropriate."
;;;; Inlinetasks
(defcustom org-html-format-inlinetask-function nil
(defcustom org-html-format-inlinetask-function 'ignore
"Function called to format an inlinetask in HTML code.
The function must accept six parameters:
@ -662,6 +669,8 @@ The function must accept six parameters:
The function should return the string to be exported."
:group 'org-export-html
:version "24.4"
:package-version '(Org . "8.0")
:type 'function)
;;;; LaTeX
@ -1119,6 +1128,8 @@ like that: \"%%\"."
"Information about the creator of the HTML document.
This option can also be set on with the CREATOR keyword."
:group 'org-export-html
:version "24.4"
:package-version '(Org . "8.0")
:type '(string :tag "Creator string"))
;;;; Template :: Preamble
@ -1971,7 +1982,8 @@ and value is its relative level, as an integer."
(defun org-html--format-toc-headline (headline info)
"Return an appropriate table of contents entry for HEADLINE.
INFO is a plist used as a communication channel."
(let* ((todo (and (plist-get info :with-todo-keywords)
(let* ((headline-number (org-export-get-headline-number headline info))
(todo (and (plist-get info :with-todo-keywords)
(let ((todo (org-element-property :todo-keyword headline)))
(and todo (org-export-data todo info)))))
(todo-type (and todo (org-element-property :todo-type headline)))
@ -1992,19 +2004,23 @@ INFO is a plist used as a communication channel."
(tags (and (eq (plist-get info :with-tags) t)
(org-export-get-tags headline info))))
(format "<a href=\"#%s\">%s</a>"
;; Label.
(org-export-solidify-link-text
(or (org-element-property :CUSTOM_ID headline)
(concat "sec-"
(mapconcat
#'number-to-string
(org-export-get-headline-number headline info)
"-"))))
(apply (if (functionp org-html-format-headline-function)
(lambda (todo todo-type priority text tags &rest ignore)
(funcall org-html-format-headline-function
todo todo-type priority text tags))
#'org-html-format-headline)
todo todo-type priority text tags :section-number nil))))
(mapconcat #'number-to-string headline-number "-"))))
;; Body.
(concat
(and (not (org-export-low-level-p headline info))
(org-export-numbered-headline-p headline info)
(concat (mapconcat #'number-to-string headline-number ".")
". "))
(apply (if (not (eq org-html-format-headline-function 'ignore))
(lambda (todo todo-type priority text tags &rest ignore)
(funcall org-html-format-headline-function
todo todo-type priority text tags))
#'org-html-format-headline)
todo todo-type priority text tags :section-number nil)))))
(defun org-html-list-of-listings (info)
"Build a list of listings.
@ -2244,7 +2260,7 @@ holding contextual information."
headline-number "-"))))
(format-function
(cond ((functionp format-function) format-function)
((functionp org-html-format-headline-function)
((not (eq org-html-format-headline-function 'ignore))
(lambda (todo todo-type priority text tags &rest ignore)
(funcall org-html-format-headline-function
todo todo-type priority text tags)))
@ -2371,9 +2387,9 @@ contextual information."
CONTENTS holds the contents of the block. INFO is a plist
holding contextual information."
(cond
;; If `org-html-format-inlinetask-function' is provided, call it
;; If `org-html-format-inlinetask-function' is not 'ignore, call it
;; with appropriate arguments.
((functionp org-html-format-inlinetask-function)
((not (eq org-html-format-inlinetask-function 'ignore))
(let ((format-function
(function*
(lambda (todo todo-type priority text tags
@ -2474,18 +2490,34 @@ CONTENTS is nil. INFO is a plist holding contextual information."
;;;; Latex Environment
(defun org-html-format-latex (latex-frag processing-type)
"Format a LaTeX fragment LATEX-FRAG into HTML."
(defun org-html-format-latex (latex-frag processing-type info)
"Format a LaTeX fragment LATEX-FRAG into HTML.
PROCESSING-TYPE designates the tool used for conversion. It is
a symbol among `mathjax', `dvipng', `imagemagick', `verbatim' nil
and t. See `org-html-with-latex' for more information. INFO is
a plist containing export properties."
(let ((cache-relpath "") (cache-dir ""))
(unless (eq processing-type 'mathjax)
(let ((bfn (or (buffer-file-name)
(make-temp-name
(expand-file-name "latex" temporary-file-directory)))))
(expand-file-name "latex" temporary-file-directory))))
(latex-header
(let ((header (plist-get info :latex-header)))
(and header
(concat (mapconcat
(lambda (line) (concat "#+LATEX_HEADER: " line))
(org-split-string header "\n")
"\n")
"\n")))))
(setq cache-relpath
(concat "ltxpng/"
(file-name-sans-extension
(file-name-nondirectory bfn)))
cache-dir (file-name-directory bfn))))
cache-dir (file-name-directory bfn))
;; Re-create LaTeX environment from original buffer in
;; temporary buffer so that dvipng/imagemagick can properly
;; turn the fragment into an image.
(setq latex-frag (concat latex-header latex-frag))))
(with-temp-buffer
(insert latex-frag)
(org-format-latex cache-relpath cache-dir nil "Creating LaTeX Image..."
@ -2501,9 +2533,10 @@ CONTENTS is nil. INFO is a plist holding contextual information."
(attributes (org-export-read-attribute :attr_html latex-environment)))
(case processing-type
((t mathjax)
(org-html-format-latex latex-frag 'mathjax))
(org-html-format-latex latex-frag 'mathjax info))
((dvipng imagemagick)
(let ((formula-link (org-html-format-latex latex-frag processing-type)))
(let ((formula-link
(org-html-format-latex latex-frag processing-type info)))
(when (and formula-link (string-match "file:\\([^]]*\\)" formula-link))
;; Do not provide a caption or a name to be consistent with
;; `mathjax' handling.
@ -2521,9 +2554,10 @@ CONTENTS is nil. INFO is a plist holding contextual information."
(processing-type (plist-get info :with-latex)))
(case processing-type
((t mathjax)
(org-html-format-latex latex-frag 'mathjax))
(org-html-format-latex latex-frag 'mathjax info))
((dvipng imagemagick)
(let ((formula-link (org-html-format-latex latex-frag processing-type)))
(let ((formula-link
(org-html-format-latex latex-frag processing-type info)))
(when (and formula-link (string-match "file:\\([^]]*\\)" formula-link))
(org-html--format-image (match-string 1 formula-link) nil info))))
(t latex-frag))))

View file

@ -556,7 +556,8 @@ returned as-is."
;;;; Drawers
(defcustom org-latex-format-drawer-function nil
(defcustom org-latex-format-drawer-function
(lambda (name contents) contents)
"Function called to format a drawer in LaTeX code.
The function must accept two parameters:
@ -565,19 +566,16 @@ The function must accept two parameters:
The function should return the string to be exported.
For example, the variable could be set to the following function
in order to mimic default behaviour:
\(defun org-latex-format-drawer-default \(name contents\)
\"Format a drawer element for LaTeX export.\"
contents\)"
The default function simply returns the value of CONTENTS."
:group 'org-export-latex
:version "24.4"
:package-version '(Org . "8.3")
:type 'function)
;;;; Inlinetasks
(defcustom org-latex-format-inlinetask-function nil
(defcustom org-latex-format-inlinetask-function 'ignore
"Function called to format an inlinetask in LaTeX code.
The function must accept six parameters:
@ -1212,12 +1210,8 @@ channel."
CONTENTS holds the contents of the block. INFO is a plist
holding contextual information."
(let* ((name (org-element-property :drawer-name drawer))
(output (if (functionp org-latex-format-drawer-function)
(funcall org-latex-format-drawer-function
name contents)
;; If there's no user defined function: simply
;; display contents of the drawer.
contents)))
(output (funcall org-latex-format-drawer-function
name contents)))
(org-latex--wrap-label drawer output)))
@ -1502,7 +1496,7 @@ holding contextual information."
(org-element-property :priority inlinetask))))
;; If `org-latex-format-inlinetask-function' is provided, call it
;; with appropriate arguments.
(if (functionp org-latex-format-inlinetask-function)
(if (not (eq org-latex-format-inlinetask-function 'ignore))
(funcall org-latex-format-inlinetask-function
todo todo-type priority title tags contents)
;; Otherwise, use a default template.

View file

@ -449,7 +449,7 @@ under `org-odt-styles-dir' is used."
:type '(choice (const nil)
(file))
:group 'org-export-odt
:version "24.1")
:version "24.3")
(defcustom org-odt-styles-file nil
"Default styles file for use with ODT export.
@ -498,7 +498,8 @@ a per-file basis. For example,
(defcustom org-odt-display-outline-level 2
"Outline levels considered for enumerating captioned entities."
:group 'org-export-odt
:version "24.2"
:version "24.4"
:package-version '(Org . "8.0")
:type 'integer)
;;;; Document conversion
@ -645,7 +646,8 @@ values. See Info node `(emacs) File Variables'."
;;;; Drawers
(defcustom org-odt-format-drawer-function nil
(defcustom org-odt-format-drawer-function
(lambda (name contents) contents)
"Function called to format a drawer in ODT code.
The function must accept two parameters:
@ -654,21 +656,16 @@ The function must accept two parameters:
The function should return the string to be exported.
For example, the variable could be set to the following function
in order to mimic default behaviour:
\(defun org-odt-format-drawer-default \(name contents\)
\"Format a drawer element for ODT export.\"
contents\)"
The default value simply returns the value of CONTENTS."
:group 'org-export-odt
:version "24.4"
:package-version '(Org . "8.0")
:package-version '(Org . "8.3")
:type 'function)
;;;; Headline
(defcustom org-odt-format-headline-function nil
(defcustom org-odt-format-headline-function 'ignore
"Function to format headline text.
This function will be called with 5 arguments:
@ -687,7 +684,7 @@ The function result will be used as headline text."
;;;; Inlinetasks
(defcustom org-odt-format-inlinetask-function nil
(defcustom org-odt-format-inlinetask-function 'ignore
"Function called to format an inlinetask in ODT code.
The function must accept six parameters:
@ -746,6 +743,8 @@ A rule consists in an association whose key is the type of link
to consider, and value is a regexp that will be matched against
link's path."
:group 'org-export-odt
:version "24.4"
:package-version '(Org . "8.0")
:type '(alist :key-type (string :tag "Type")
:value-type (regexp :tag "Path")))
@ -757,6 +756,8 @@ A rule consists in an association whose key is the type of link
to consider, and value is a regexp that will be matched against
link's path."
:group 'org-export-odt
:version "24.4"
:package-version '(Org . "8.0")
:type '(alist :key-type (string :tag "Type")
:value-type (regexp :tag "Path")))
@ -929,6 +930,8 @@ the application UI or through a custom styles file.
See `org-odt--build-date-styles' for implementation details."
:group 'org-export-odt
:version "24.4"
:package-version '(Org . "8.0")
:type 'boolean)
@ -1619,12 +1622,8 @@ channel."
CONTENTS holds the contents of the block. INFO is a plist
holding contextual information."
(let* ((name (org-element-property :drawer-name drawer))
(output (if (functionp org-odt-format-drawer-function)
(funcall org-odt-format-drawer-function
name contents)
;; If there's no user defined function: simply
;; display contents of the drawer.
contents)))
(output (funcall org-odt-format-drawer-function
name contents)))
output))
@ -1805,10 +1804,10 @@ INFO is a plist holding contextual information."
headline-number "-")))
(format-function (cond
((functionp format-function) format-function)
((functionp org-odt-format-headline-function)
((not (eq org-odt-format-headline-function 'ignore))
(function*
(lambda (todo todo-type priority text tags
&allow-other-keys)
&allow-other-keys)
(funcall org-odt-format-headline-function
todo todo-type priority text tags))))
(t 'org-odt-format-headline))))
@ -1931,9 +1930,9 @@ contextual information."
CONTENTS holds the contents of the block. INFO is a plist
holding contextual information."
(cond
;; If `org-odt-format-inlinetask-function' is provided, call it
;; If `org-odt-format-inlinetask-function' is not 'ignore, call it
;; with appropriate arguments.
((functionp org-odt-format-inlinetask-function)
((not (eq org-odt-format-inlinetask-function 'ignore))
(let ((format-function
(function*
(lambda (todo todo-type priority text tags

View file

@ -1225,8 +1225,9 @@ Returns value on success, else nil."
(let ((attr (file-attributes
(expand-file-name (or (file-symlink-p file) file)
(file-name-directory file)))))
(+ (lsh (car (nth 5 attr)) 16)
(cadr (nth 5 attr)))))
(if (not attr) (error "No such file: \"%s\"" file)
(+ (lsh (car (nth 5 attr)) 16)
(cadr (nth 5 attr))))))
(provide 'ox-publish)

View file

@ -143,7 +143,7 @@
;;; Preamble
(defcustom org-texinfo-filename nil
(defcustom org-texinfo-filename ""
"Default filename for Texinfo output."
:group 'org-export-texinfo
:type '(string :tag "Export Filename"))
@ -202,7 +202,7 @@ a format string in which the section title will be added."
;;; Headline
(defcustom org-texinfo-format-headline-function nil
(defcustom org-texinfo-format-headline-function 'ignore
"Function to format headline text.
This function will be called with 5 arguments:
@ -316,7 +316,8 @@ returned as-is."
;;; Drawers
(defcustom org-texinfo-format-drawer-function nil
(defcustom org-texinfo-format-drawer-function
(lambda (name contents) contents)
"Function called to format a drawer in Texinfo code.
The function must accept two parameters:
@ -325,18 +326,15 @@ The function must accept two parameters:
The function should return the string to be exported.
For example, the variable could be set to the following function
in order to mimic default behaviour:
\(defun org-texinfo-format-drawer-default \(name contents\)
\"Format a drawer element for Texinfo export.\"
contents\)"
The default function simply returns the value of CONTENTS."
:group 'org-export-texinfo
:version "24.4"
:package-version '(Org . "8.3")
:type 'function)
;;; Inlinetasks
(defcustom org-texinfo-format-inlinetask-function nil
(defcustom org-texinfo-format-inlinetask-function 'ignore
"Function called to format an inlinetask in Texinfo code.
The function must accept six parameters:
@ -882,12 +880,8 @@ contextual information."
CONTENTS holds the contents of the block. INFO is a plist
holding contextual information."
(let* ((name (org-element-property :drawer-name drawer))
(output (if (functionp org-texinfo-format-drawer-function)
(funcall org-texinfo-format-drawer-function
name contents)
;; If there's no user defined function: simply
;; display contents of the drawer.
contents)))
(output (funcall org-texinfo-format-drawer-function
name contents)))
output))
;;; Dynamic Block
@ -1036,7 +1030,7 @@ holding contextual information."
;; Create the headline text along with a no-tag version. The
;; latter is required to remove tags from table of contents.
(full-text (org-texinfo--sanitize-content
(if (functionp org-texinfo-format-headline-function)
(if (not (eq org-texinfo-format-headline-function 'ignore))
;; User-defined formatting function.
(funcall org-texinfo-format-headline-function
todo todo-type priority text tags)
@ -1051,7 +1045,7 @@ holding contextual information."
(mapconcat 'identity tags ":")))))))
(full-text-no-tag
(org-texinfo--sanitize-content
(if (functionp org-texinfo-format-headline-function)
(if (not (eq org-texinfo-format-headline-function 'ignore))
;; User-defined formatting function.
(funcall org-texinfo-format-headline-function
todo todo-type priority text nil)
@ -1153,7 +1147,7 @@ holding contextual information."
(org-element-property :priority inlinetask))))
;; If `org-texinfo-format-inlinetask-function' is provided, call it
;; with appropriate arguments.
(if (functionp org-texinfo-format-inlinetask-function)
(if (not (eq org-texinfo-format-inlinetask-function 'ignore))
(funcall org-texinfo-format-inlinetask-function
todo todo-type priority title tags contents)
;; Otherwise, use a default template.

View file

@ -626,11 +626,20 @@ e.g. \"stat:nil\""
(defcustom org-export-with-sub-superscripts t
"Non-nil means interpret \"_\" and \"^\" for export.
If you want to control how Org displays those characters, see
`org-use-sub-superscripts'. `org-export-with-sub-superscripts'
used to be an alias for `org-use-sub-superscripts' in Org <8.0,
it is not anymore.
When this option is turned on, you can use TeX-like syntax for
sub- and superscripts. Several characters after \"_\" or \"^\"
will be considered as a single item - so grouping with {} is
normally not needed. For example, the following things will be
parsed as single sub- or superscripts.
sub- and superscripts and see them exported correctly.
You can also set the option with #+OPTIONS: ^:t
Several characters after \"_\" or \"^\" will be considered as a
single item - so grouping with {} is normally not needed. For
example, the following things will be parsed as single sub- or
superscripts:
10^24 or 10^tau several digits will be considered 1 item.
10^-12 or 10^-tau a leading sign with digits or a word
@ -638,15 +647,14 @@ parsed as single sub- or superscripts.
terminated by almost any nonword/nondigit char.
x_{i^2} or x^(2-i) braces or parenthesis do grouping.
Still, ambiguity is possible - so when in doubt use {} to enclose
the sub/superscript. If you set this variable to the symbol
`{}', the braces are *required* in order to trigger
interpretations as sub/superscript. This can be helpful in
documents that need \"_\" frequently in plain text.
This option can also be set with the OPTIONS keyword,
e.g. \"^:nil\"."
Still, ambiguity is possible. So when in doubt, use {} to enclose
the sub/superscript. If you set this variable to the symbol `{}',
the braces are *required* in order to trigger interpretations as
sub/superscript. This can be helpful in documents that need \"_\"
frequently in plain text."
:group 'org-export-general
:version "24.4"
:package-version '(Org . "8.0")
:type '(choice
(const :tag "Interpret them" t)
(const :tag "Curly brackets only" {})