* lisp/ob-ref.el (org-babel-ref-goto-headline-id): Split out into its
own function.
(org-babel-ref-headline-body): Split out into its own function.
(org-babel-ref-resolve): Using new functions, and alignment.
* lisp/ob.el (org-babel-ref-goto-headline-id): Declare function.
(org-babel-ref-headline-body): Declare function.
(org-babel-expand-noweb-references): Now expands noweb references to
headlines during expansion.
* lisp/ob-ref.el (org-babel-ref-resolve): Now resolves references to
headlines by either global or custom id, in which case the contents
of the headline are returned literally.
* lisp/ob-exp.el (org-babel-in-example-or-verbatim): Also check for in
verbatim emphasis.
(org-babel-exp-lob-one-liners): Cleaner checking for escaped call
lines.
* lisp/org-list.el (org-cycle-item-indentation): cycling back to
original position deleted any additional information in the item,
like a counter or a tag.
As auto-save-mode can only cause leakage when there's actual decrypted
data lying around, don't check for it (and potentially cause annoyance)
on init, but only when org-decrypt-entry is called.
* lisp/org-crypt.el:
- add defcustom `org-crypt-disable-auto-save'
- `org-decrypt-entry': before decrypting, check whether
`auto-save-mode' is enabled for the current buffer, and act
on it according to how `org-crypt-disable-auto-save' is set.
- remove comment re "encrypt[ing] Org auto-saved buffers"
- remove on-init check for `auto-save-default'
* lisp/ob.el (org-babel-merge-params): Ensure variable parameters are
not reversed.
* lisp/ob-ref.el (org-babel-ref-split-args): Ensure variable
parameters are not reversed.
* lisp/org.el (defcustom org-log-into-drawer): correct typo
* lisp/org-clock.el: new function org-clock-into-drawer to change
the location of clock events based on properties CLOCK_INTO_DRAWER
or, as fallback, LOG_INTO_DRAWER, like it is already possible for
state change logs.
* lisp/org-clock.el (org-clock-jump-to-current-clock): add statement
to let clause to bind org-clock-into-drawer to result of function
eval
* lisp/org-clock.el (org-clock-find-position): add statement
to let clause to bind org-clock-into-drawer to result of function
eval, change let to let* since the binding is used later in the
same clause
* doc/org.texi: document that both CLOCK_INTO_DRAWER and
LOG_INTO_DRAWER can be used to override the contents of variable
org-clock-into-drawer (or if unset, org-log-into-drawer)
* doc/org.texi: @xref->@pxref
* lisp/ob-lob.el (org-babel-inline-lob-one-liner-regexp): Updated to
successfully match optional trailing header arguments in square
brackets.
(org-babel-lob-get-info): Updated to match the new regexp.
* lisp/ob-lob.el (org-babel-inline-lob-one-liner-regexp): Removing
this trailing space ensures that the insertion of the results looks
nice.
* lisp/ob.el (org-babel-insert-result): Insert inline lob line results
as inline results.
* lisp/ob-exp.el (org-babel-exp-lob-one-liners): Calculate length
appropriately given the style (block or inline) of the lob line.
* lisp/ob-lob.el (org-babel-block-lob-one-liner-regexp): New regexp
specific for block lob lines.
(org-babel-inline-lob-one-liner-regexp): New regexp specific for
inline lob lines.
(org-babel-lob-one-liner-regexp): Combination of two lob regexps.
(org-babel-lob-get-info): Return info from *either* the block or
inline lob lines.
* lisp/ob-exp.el (org-babel-exp-lob-one-liners): Corrected the
structure of the resulting info list.
* lisp/ob-lob.el (org-babel-default-lob-header-args): Export the
results of call lines by default.
property based on the ID property of the org entry to the first
character of the diary entry.
This text property can be used by `icalendar--create-uid', instead
of creating a uid by itself.
NOTE: `icalendar--create-uid' should be patched to pick up this uid.
TINYCHANGE
PATCH-5/5 org-odt compatibility patch
From 22c4feee78ff9a1ab7cc48275ec29d322a3472a1 Mon Sep 17 00:00:00 2001
From: Jambunathan K <kjambunathan@gmail.com>
Date: Thu, 23 Jun 2011 13:17:18 +0530
Subject: [PATCH 5/5] Control insertion point for footnote definitions during pre-process.
* lisp/org-footnote.el
(org-footnote-insert-pos-for-preprocessor): New variable.
(org-footnote-normalize): Use it.
PATCH-4/5 org-odt compatibility patch
Addtional Note: Diff looks primarily because of
un-indentation. Effective changes are just couple of lines.
From 923402f12f30a39d54e16c0b105db2b1f20c2a7c Mon Sep 17 00:00:00 2001
From: Jambunathan K <kjambunathan@gmail.com>
Date: Thu, 23 Jun 2011 12:06:33 +0530
Subject: [PATCH 4/5] Simplify org-export-format-source-code-or-example.
* lisp/org-exp.el (org-export-format-source-code-or-example):
Simplify. Also add `org-native-text' as a text property to the
formatted text and throw error for unknown backends.
PATCH-3/5 org-odt compatibility patch
From a7881b8d146ddb27452b00ff19c345899d356536 Mon Sep 17 00:00:00 2001
From: Jambunathan K <kjambunathan@gmail.com>
Date: Thu, 23 Jun 2011 11:24:32 +0530
Subject: [PATCH 3/5] Support custom formatters for marking up source or example blocks.
* lisp/org-exp.el (org-export-format-source-code-or-example):
Add support for:
- custom formatters for existing backends
- seamless plugging in of new backends.
PATCH-2/5: org-odt compatibility
From 2bc4854fb86a96b69e53db00603e0b2f8f47fe08 Mon Sep 17 00:00:00 2001
From: Jambunathan K <kjambunathan@gmail.com>
Date: Thu, 23 Jun 2011 02:16:30 +0530
Subject: [PATCH 2/5] org-exp.el: Allow easy plugging in of new backends.
* lisp/org-exp.el (org-export-backends): New variable.
(org-export-select-backend-specific-text): Use above
variable. Also mark text between #+BACKEND and
#+BEGIN_BACKEND...#+END_BACKEND with org-native-text
property. This text property is currently used only by the new
line-oriented generic exporter (which is not yet part of the
repo).
PATCH-1/5 for org-odt compatibility
From 06379ccef996e8dabd8dcced6cbe430aacdef3f0 Mon Sep 17 00:00:00 2001
From: Jambunathan K <kjambunathan@gmail.com>
Date: Thu, 23 Jun 2011 01:53:37 +0530
Subject: [PATCH 1/5] org-export: Reserve a slot for OpenDocumentExporter.
* lisp/org-exp.el (org-export): Reserve keys 'o' and 'O' for
OpenDocumentText export and bind them to org-export-as-odt and
org-export-as-odt-and-open.
* lisp/org-agenda.el (org-float): Aliases for `diary-float'.
This is just to make sure that all the diary sexp functions
have org- equivalents. org-float is just an alias because no
arguments need to be switched around.
* lisp/org-list.el (org-reset-checkbox-state-subtree): make the
command more robust, and correctly update check-boxes in the whole
sub-tree.
(org-update-checkbox-count): fix bug accumulating count of checkboxes
when walking a subtree.
(org-update-checkbox-count-maybe): add an optional argument passed to
org-update-checkbox-count.
Thanks to Paul Mead for the report.
* lisp/ob-tangle.el (org-babel-tangle-file): Use the new argument list
to org-babel-tangle.
(org-babel-tangle): Now when called with a prefix argument, only the
current code block is tangled.
* lisp/org-list.el (org-list-parse-list): replace transitional
check-boxes with "[CBTRANS]" string during parsing.
(org-list-to-generic): use the new property `:cbtrans' to configure
export string for transitional check-boxes.
* lisp/org-agenda.el (org-agenda-add-entry-to-org-agenda-diary-file):
Use stable internal `org-anniversary' instead of diary-anniversary.
(org-class): New function.
(org-diary-class): Use `org-class'.
(org-anniversary, org-cyclic, org-date, org-block): New functions.
This patch provides stable alternatives for a number of diary
functions to be used in diary sexp entries. The corresponding diary-*
functions swap around their input arguments depending on
`calendar-date-style', which is unstable and evil. The functions
provided here have a fixed order of arguments, the ISO order: year
month day.
Also, the `i a' key in the agenda now uses `org-anniversary' instead of
diary-anniversary.
Now *all* code blocks which either are named `ref-name' or have the
:noweb-ref header argument value `ref-name' will have their bodies
concatenated when resolving the noweb reference <<ref-name>>.
* lisp/ob.el (org-babel-expand-noweb-references): Concatenating all
bodies with the appropriate name or :noweb-ref header argument.
* lisp/org.el (org-find-dblock):
(org-clocktable-try-shift): Make regexp work also when #+begin
line is indentex.
Achim Gratz writes:
It wasn't possible to use S-up/down/left/right on the clocktable BEGIN
line when the whole table was indented. Interestingly enough calling
the function directly would work, it turned out to be a regexp in org.el
that was still pinned to bol. There was a second one further down that
is used to recognize dynamic blocks that got the same treatment.
TINYCHANGE
* lisp/org.el (mailcap-parse-mailcaps): Declaring functions used by
`org-open-file'.
(mailcap-extension-to-mime): Declaring functions used by
`org-open-file'.
(mailcap-mime-info): Declaring functions used by `org-open-file'.
* lisp/org-agenda.el (org-agenda-redo): Replacing call to now-defunct
function `interactive-p'.
(org-agenda-show-1): Replacing call to now-defunct function
`interactive-p'.
(org-agenda-set-tags): Replacing call to now-defunct function `interactive-p'.
* lisp/org-ascii.el: Replacing call to now-defunct function
`interactive-p'.
(org-export-as-latin1): Replacing call to now-defunct function
`interactive-p'.
(org-export-as-latin1-to-buffer): Replacing call to now-defunct
function `interactive-p'.
(org-export-as-utf8): Replacing call to now-defunct function
`interactive-p'.
(org-export-as-utf8-to-buffer): Replacing call to now-defunct function
`interactive-p'.
(org-export-region-as-ascii): Replacing call to now-defunct function
`interactive-p'.Replacing call to now-defunct function `interactive-p'.
* lisp/org-docbook.el: Replacing call to now-defunct function
`interactive-p'.
(org-export-region-as-docbook): Replacing call to now-defunct function
`interactive-p'.Replacing call to now-defunct function `interactive-p'.
* lisp/org-html.el: Replacing call to now-defunct function
`interactive-p'.
(org-export-region-as-html): Replacing call to now-defunct function
`interactive-p'.Replacing call to now-defunct function `interactive-p'.
* lisp/org-latex.el: Replacing call to now-defunct function
`interactive-p'.
(org-export-region-as-latex): Replacing call to now-defunct function
`interactive-p'.Replacing call to now-defunct function `interactive-p'.
* lisp/org-macs.el: Replacing call to now-defunct function
`interactive-p'.
(org-called-interactively-p): Replacing call to now-defunct function
`interactive-p'.Replacing call to now-defunct function `interactive-p'.
* lisp/org-table.el: Replacing call to now-defunct function
`interactive-p'.
(org-table-blank-field): Replacing call to now-defunct function
`interactive-p'.
(org-table-current-column): Replacing call to now-defunct function
`interactive-p'.Replacing call to now-defunct function
`interactive-p'.
(org-table-current-dline): Replacing call to now-defunct function
`interactive-p'.Replacing call to now-defunct function
`interactive-p'.
(org-table-sort-lines): Replacing call to now-defunct function
`interactive-p'.
(org-table-sum): Replacing call to now-defunct function
`interactive-p'.
(org-table-rotate-recalc-marks): Replacing call to now-defunct
function `interactive-p'.
(org-table-eval-formula): Replacing call to now-defunct function
`interactive-p'.
(orgtbl-send-table): Replacing call to now-defunct function `interactive-p'.
* lisp/org.el: Replacing call to now-defunct function `interactive-p'.
(org-mode): Replacing call to now-defunct function `interactive-p'.
(org-copy-subtree): Replacing call to now-defunct function
`interactive-p'.
(org-paste-subtree): Replacing call to now-defunct function
`interactive-p'.
(org-store-link): Replacing call to now-defunct function
`interactive-p'.
(org-todo): Replacing call to now-defunct function `interactive-p'.
(org-occur): Replacing call to now-defunct function `interactive-p'.
* lisp/ob-R.el (ess-local-process-name): This variable wasn't known to
be defined.
* lisp/ob-lisp.el (org-babel-lisp-dir-fmt): This defcustom now has a
group specified.
* lisp/ob-tangle.el (org-bracket-link-regexp): This variable wasn't
known to be defined.
(org-babel-tangle-combine-named-blocks): Roll my own version of a
forbidden common lisp function.
* lisp/ob.el (org-babel-sha1-hash): Using a non-deprecated version of
called-interactively.
This brings the behavior inline with the documentation.
* lisp/org-latex.el (org-export-latex-tables): Check for the
"multiline" option and set the `floatp' option to true when
multicolumn tables are requested.
* lisp/org-agenda.el (org-agenda-bulk-action): Fix bug caused by
`days-to-time, converting relative to 1 BC, while the code assumed it
would return a time relative to 1970.
For more information, see
http://thread.gmane.org/gmane.emacs.orgmode/42531
Thanks to Neeum Zawan for suggesting this behavior
* lisp/ob-tangle.el (org-babel-tangle-named-block-combination): Block
combination can now take a number of values.
(org-babel-tangle-combine-named-blocks): More sophisticated block
combination behavior.
* lisp/ob-tangle.el (org-babel-tangle-do-combine-named-blocks):
Switch to turn on the combination of code blocks of the same name.
(org-babel-tangle-combine-named-blocks): Combine blocks of the same
name.
Thanks to Avdi Grimm for suggesting this addition
* lisp/ob-ruby.el (xmp): Declaring this function to appease the
compiler.
(org-babel-execute:ruby): "xmp" result option for outputting
annotated source code.
* lisp/org-list.el (org-list-to-latex): the enumerate environment in
latex increments the counter before using it. Therefore, org-mode
should set the enumeration counter to the desired value minus one.
Patch from Darlan Cavalcante Moreira
TINYCHANGE
Fix the format specification for clock tables.
Niels writes:
Bernt was right in that there were more arguments to format than the
format string specified. I guess I must not have noticed that there was
a call to format (all the other times properties columns are 'maybe
inserted' go directly to `insert-before-markers'), and I must have
forgotten to test the multifile case (I never used multifile clock
reports myself).
However, to keep the layout of the table consistent the *File time*
cells should be in the Headline column. Attached patch fixes this by
putting the (empty) properties cells *before* the *File time* cell.
* lisp/org-taskjuggler.el (org-taskjuggler-clean-effort): handle any
effort that is accepted by `org-duration-string-to-minutes´.
* doc/org.texi (TaskJuggler export): Modified the example to reflect
the new effort durations.
The Effort property previously had no unit attached. With release 7.5
of orgmode you can now attach units to it such as 4h, 2d or 2m. This
patch enhances the exporter to accept the same effort specifications.
Note: This change is NOT BACKWARDS COMPATIBLE. Where the exporter
previously assumed a plain number was meant to be days, it now assumes
it to mean minutes. You will have to change existing effort
specifications from e.g. '2' to '2d'. A simple M-x
query-replace-regexp should do.
Hi,
When evaluating shell code blocks in org-babel, the execution seems to hang
indefinitely. The following patch is trying to fix this problem by modifying
the way shell code is send to comint and the way the end-of-evaluation
indicator is looking for.
As I am far from an emacs lisp expert and as the patch modifies the widely use
org-babel-comint-with-output function, it certainly needs some testing. I've
made some tests with shell and R code blocks, but I'm not sure it's enough.
Thanks !
Julien
Fix sh block execution in a session
* lisp/ob-sh.el (org-babel-sh-evaluate) : when sending input to comint, wait
until previous line execution is finished
* lisp/ob-comint.el (org-babel-comint-with-output) : when looking for
end-of-evaluation indicator, search forward for the indicator before searching
forward for the prompt
* lisp/org.el (org-auto-align-tags): change docstring.
(org-update-parent-todo-statistics): keep tags aligned even when
statistics cookies are shifting them.
* lisp/org-list.el (org-update-checkbox-count): keep tags aligned even
when statistics cookies are shifting them.
* lisp/ob.el (org-babel-sha1-hash): Don't modify info argument by
side-effect when sorting result-params list.
copy-sequence only does shallow copies, so if we're going to modify a
sub-list, we need to make sure we copy it first.
* lisp/ob.el (org-babel-result-regexp): Use non-shy group around
org-babel-data-names.
By default regexp-opt returns a shy group around its arguments. But
users of org-babel-result-regexp expect the third match-string to
contain the hash. With a shy group, the second match-string contains
the hash.
Once again, thanks to Mark Cox for raising these issues.
* lisp/ob-lisp.el (org-babel-lisp-dir-fmt): Defcustom for use in
changing how/if the current directory is represented to lisp code.
(org-babel-execute:lisp): More general handling of the default
directory value.
Thanks to Mark Cox for suggesting this change.
* lisp/ob-lisp.el (org-babel-execute:lisp): Setting the value of
*default-pathname-defaults* to either the value of the :dir header
argument or the directory of the containing Org-mode file.
* org.el (org-mode-flyspell-verify): This is useful when using
flyspell with a non-English dictionary, or if some of your
keywords are in another language.
Signed-off-by: Julien Danjou <julien@danjou.info>
* org-exp.el (org-export): Use new compatibility function
`org-activate-mark'.
* org-compat.el (org-activate-mark): New function. Provide
`activate-mark' if not present (e.g. Emacs22).
Emacs 22 misses this function. Defun copied from Emac23's
`active-mark' but removed reference to customization variable
`select-active-regions' which is not present in Emacs22.
* org-bibtex.el (org-bibtex-headline): Don't use equalp at run-time,
compare downcased strings.
Compiler complains about using `equalp' because other than for example
`concatenate' it is not declared 'inline.
Cf. [[info:cl#Declarations]] about the 'inline declaration
...
`inline'
The `inline' DECL-SPEC lists one or more functions whose bodies
should be expanded "in-line" into calling functions whenever the
compiler is able to arrange for it. For example, the Common Lisp
function `cadr' is declared `inline' by this package so that the
form `(cadr X)' will expand directly into `(car (cdr X))' when it
is called in user functions, for a savings of one (relatively
expensive) function call.
The following declarations are all equivalent. Note that the
`defsubst' form is a convenient way to define a function and
declare it inline all at once.
(declaim (inline foo bar))
(eval-when (compile load eval) (proclaim '(inline foo bar)))
(defsubst foo (...) ...) ; instead of defun
*Please note:* this declaration remains in effect after the
containing source file is done. It is correct to use it to
request that a function you have defined should be inlined, but it
is impolite to use it to request inlining of an external function.
In Common Lisp, it is possible to use `(declare (inline ...))'
before a particular call to a function to cause just that call to
be inlined; the current byte compilers provide no way to implement
this, so `(declare (inline ...))' is currently ignored by this
package.
...
Thus other than `concatenate' `equalp' is stored as a function call at
run-time.
* org-id.el (org-id-locations): Fix docstring, remove reference to
non-existent option.
The configuration option `org-id-use-hash' does not exist. Git bisect
and grepping for 'org-id-use-hash' showed that this string never ever
occured more than once, hence it was never there..
* org.el (org-self-insert-command): Use `delete-char' instead of
`delete-backward-char'.
* org-table.el (orgtbl-self-insert-command): Dto.
According to the doc string `delete-backward-char' "is meant for
interactive use only; from Lisp, better use `delete-char' with a
negated argument."
* lisp/org-latex.el (org-export-latex-preprocess): add
`original-indentation' property to footnotes so they cannot possibly
end a list by being less indented than the item they belong to.
Thanks to Mark Cox for suggesting this patch
* lisp/ob-lisp.el (org-babel-expand-body:lisp): No longer wraps
biddies in `progn'.
(org-babel-execute:lisp): Wraps bodies in `progn' as they are passed
to swank.
* doc/org.texi (The clock table): Document the :properties and :inherit-props
arguments for the clocktable.
* lisp/org-clock.el (org-clocktable-write-default): Implement adding property
columns to the clock table.
Patch by Niels Giesen.
* lisp/org.el (org-default-priority):
(org-priority-start-cycle-with-default): Improve docstring.
(org-priority): Throw error when priority is out of range.
Patch by Michael Brand.
* lisp/org.el (org-toggle-heading): region should be considered as
made of full lines, without the last one if region-end is at bol.
Removed unused variables. Refactored and commented code.
* lisp/org-list.el (org-list-to-subtree): if the list is before first
heading and `org-odd-levels-only' is non-nil, the first item gets
two stars instead of one.
* lisp/org.el (org-reduced-level): a level of 0 was reduced to 1 with
`org-odd-levels-only' non-nil.
* lisp/org.el (org-toggle-item): converting an heading to an item
would sometimes insert unnecessary spaces before it, and unwanted
space with `org-indent-mode' on. Changing some text into an item
wouldn't always preserve indentation.
Hello,
Here is a patch which allows one to change the (currently) hard-coded DIV name
in which the page contents is being inserted.
It currently is "content", but some prefer "container" or "wrapper".
If accepted, my next patch will be to make this a per-project variable.
Best regards,
Seb
* lisp/org-capture.el (org-capture-current-plist): Improve docstring.
(org-capture-put): Add docstring.
(org-capture-get): Add docstring.
(org-capture-member): Add LOCAL argument. Add docstring.
(org-capture-set-target-location): Store the time received from a date
prompt into the :prompt-time property.
When using the file+datetree+prompt target for capture, the time set
by the prompt is now stored in the :prompt-time property.
* lisp/org-exp.el (org-export-mark-list-properties): even if context
is invalid, mark list item with `list-context' property.
* lisp/org-list.el (org-list-forbidden-blocks): add exporters specific
blocks to the list of forbidden blocks.
Thanks to Jai Bharat Patel for reporting this.
* lisp/ob-sh.el (ob-ref): Uses ob-ref to resolve the value of the
:stdin header argument.
(org-babel-execute:sh): Use the :stdin header argument.
(org-babel-sh-var-to-sh): Split the bulk of this function off into a
new sub-function.
(org-babel-sh-var-to-string): New function for converting elisp
values to strings that make sense for parsing with sh.
(org-babel-sh-evaluate): Adding "stdin" option to session and
external evaluation options.
* lisp/org-html.el (org-export-as-html): Don't expand non-data
lines of table.el tables.
(org-html-expand): Removed the (buggy) test for non-data lines
in table.el tables. The test is now done as part of
org-export-as-html.
(org-format-table-table-html-using-table-generate-source):
Added test for spanning of cells in table.el tables using
table.el's own library routine. Optionlly Suppress export of
simple table.el tables.
(org-format-table-html): Removed the (buggy) test for spanned
table.el tables. The test is now done as part of
org-format-table-table-html-using-table-generate-source.
* lisp/org-exp.el (org-export-define-heading-targets): Use dash instead
of underscore to make labels valid.
Currently, the section number (a string of the form "X.Y.Z") is used
to manufacture a section label of the form sec-X_Y_Z. Underscores are
overloaded however, both in org and in LaTeX, and cause conflicts with
some packages. This patch changes underscores to hyphens in section
labels.
TINYCHANGE
Slight modification of patch by Christophe Rhodes
* lisp/ob-R.el (org-babel-R-write-object-command): Ensure that all
data is written to the results file before Emacs notices that the file
exists.
* lisp/ob-exp.el (org-babel-exp-do-export): Use `org-babel-exp-code'
to generate code block output.
(org-babel-exp-code): Re-create the code block body for exporting
source code.
* lisp/org-list.el (org-list-separating-blank-lines-number): fix
confusion between point and item beginning. Now, if no information
is avalaible, truly follow user preference when it inserts blank
lines manually.
(org-list-insert-item): send correct argument to the preceding
function.
* doc/orgcard.tex: Adding line for org-babel-check-src-block.
* lisp/ob-keys.el (org-babel-key-bindings): Adding key sequence for
org-babel-check-src-block.
* lisp/ob.el (org-babel-expand-src-block): Fit within 80 cols.
(org-babel-edit-distance): Returns the edit distance of two strings.
(org-babel-check-src-block): Check a code block for errors.
* doc/org.texi (Built-in table editor): Document the table field follow mode.
* lisp/org-table.el (org-table-exit-follow-field-mode-when-leaving-table):
New option.
(org-table-check-inside-data-field): New optional argument `noerror'.
When set, the function will only return nil instead of throwing an
error.
(org-table-edit-field): Interpret double prefix argument, and improve
the properties of the editing window.
(org-table-follow-field-mode): New minor mode.
(org-table-follow-fields-with-editor): New function.
The main purpose of this functionality is to make working with table
with long fields simpler, by always showing the full content of the
current field. This functionality is based on the following
mailing list thread
http://thread.gmane.org/gmane.emacs.orgmode/41584
and contains ideas by Jonny, Juan Pechiar, and Michael Brand.
* lisp/org-agenda.el (org-agenda-get-todos): Call `org-agenda-skip' first,
then check if timestamps cause exclusion.
* lisp/org.el (org-scan-tags): Call `org-agenda-skip' first,
then check if timestamps cause exclusion.
For more information, see the following mailing list thread:
http://thread.gmane.org/gmane.emacs.orgmode/41052/focus=41052
Aloha all,
The attached patch initializes the existing variable shortn, adds it to
two caption situations in addition to the one already coded, and adds
some description to the manual.
With this patch, #+CAPTION: [Short caption]{Long caption.} in the
Org-mode source exports to \caption[Short caption]{Long caption.} in the
LaTeX export, which is, I think, as it should be.
Many thanks to Nick Dokos who made me understand why earlier patches
hadn't shown up on the patchwork server (wrong mime type, evil mail
client). This one sent with gnus and fingers crossed.
All the best,
Tom
>From 9dc65f7e598dd171ebce9448cd39c4062f7cafff Mon Sep 17 00:00:00 2001
From: Tom Dye <tsd@tsdye.com>
Date: Sun, 8 May 2011 06:56:25 -1000
Subject: [PATCH] optional caption arguments in LaTeX export
* lisp/ob-ref.el (org-babel-ref-resolve): Using the new result regexp.
* lisp/ob.el (org-babel-data-names): Configurable list of names of data.
(org-babel-result-regexp): Using new results regexp.
* lisp/org-exp.el (org-export-add-options-to-plist): Fix the option parser
This fixes up commit aa6dba8a74.
Instead of looking for the start of a word (which does not work for
the options that are characters), it looks for the beginning of the
line or a whitespace character preceding the option.
* lisp/org.el (org-structure-template-alist): Add an easy template
for index (i), and move include file to I from i.
* doc/org.texi (Easy Templates): Document new template.
Notes about this patch:
1. It breaks some old user-visible behavior, since <i changes meaning.
Per Nick's posting, we expect that if index is used, it will be used
more commonly than include file. However, since this is a custom,
behavior could be changed. Indeed, we could put index on capital
I with a suggestion that users who are indexing should swap in their
customizations.
2. I modified the docstring for org-structure-template-alist, which did
not explain the function of the "?" in the string. Someone should
check and verify I didn't get this wrong.
3. There doesn't seem to be a Muse tag equivalent for #+index, so I
just made the Muse equivalent of #+index be #+index. I don't know
org-mtags enough to know if this is appropriate.
charles.sebold@lcms.org writes:
> On 7 Apr 2011, Charles Sebold wrote:
>
>> Here's a test. Take the line below and put it in an agenda file, then
>> view the agenda.
>>
>> %%(format "%s" (concat "[[elisp:(info)]" "[Link to info]]"))
>>
>> The results as I see them give me a link that I can mouse-click on,
>> but I can't move point to it and hit C-c C-o.
>>
>> What do I need to do to make this a normal org link in every way? Or
>> is this a bug?
>>
Here's what seems to be going on.
Clicking with the mouse works because it calls org-open-at-mouse, which
(by calling org-open-at-point) simply looks at the text surrounding the
click point to find a link.
The function org-agenda-open-link, on the other hand, grabs part of the
headline as a string (the prefix), then jumps to the location in the
original buffer and calls org-offer-links-in-entry to look for links in
both the entry and the prefix of agenda text. Obviously, it won't find
your link in the original entry since it looks like this:
%%(format "%s" (concat "[[elisp:(info)]" "[Link to info]]"))
I think it shouldn't be a problem to pass the whole agenda line to
org-offer-links-in-entry. This will not result in duplicate links, since
org-offer-links-in-entry "uniquifies" the links.
I've attached a patch.
The bigger question, however, is why the expression above is even
showing up in the agenda, since it contains no scheduling information.
:)
Best,
Matt
>From 58c7621c0c84b9c1930098a098e4559aa516eec0 Mon Sep 17 00:00:00 2001
From: Matt Lundin <mdl@imapmail.org>
Date: Tue, 3 May 2011 15:54:35 -0400
Subject: [PATCH] Pass entire text of agenda line to org-offer-links-in-entry.
* lisp/org-agenda.el (org-agenda-open-link): Pass entire text of
agenda line to org-offer-links-in-entry.
This fixes bug noticed by Charles Sebold, in which links that are
dynamically formatted for the agenda view are ignored.
http://permalink.gmane.org/gmane.emacs.orgmode/40673
* lisp/org-bibtex.el: (org-bibtex-search): New function.
(org-bibtex-export-to-kill-ring): New function. Export to kill ring.
(org-bibtex-create-in-current-entry): New function
(org-bibtex-create): Make it easier to add bib fields to an
existing headline
(org-bibtex-export-arbitrary-fields)
(org-bibtex-treat-headline-as-title): Fix typos
(org-bibtex-fleshout): Don't upcase optional field; remove ":" from
type completion
This patch implements several helper functions: exporting to kill
ring, searching only for entries with bib fields, and creating bib
fields in an existing headline. It makes the UI of org-bibtex-fleshout
more consistent.
* lisp/org-bibtex.el (org-bibtex-treat-headline-as-title): New
defcustom.
(org-bibtex-headline): Only use headline text (not TODO or other
metadata) to generate title field and auto key.
(org-bibtex-fleshout): Allow user to choose whether to treat
headline as title.
* lisp/org-bibtex.el (org-bibtex-tags): New variable
(org-bibtex-tags-are-keywords): New variable
(org-bibtex-no-export-tags): New variable
(org-bibtex-headline): Export tags as comma-separated bibtex keywords
(org-bibtex-read): Import bibtex keywords field as tags
Bibtex users often rely on the keywords field to tag their entries.
With biblatex, the keywords field can be used to organize and filter
bibliographic entries. This patch adds an option to import keywords as
org-mode tags, and to export tags as bibtex keywords.
It also adds an option to add user-defined tags to newly created bib
headlines.
Eden Cardim <edencardim@gmail.com> writes:
> Tassilo> No, I just wasn't really sure what that SCAN argument
> Tassilo> means, so I tried to be as safe as possible. If it's
> Tassilo> always safe to provide nil, let's change that.
>
> Well, right now all it does is to check split rules against incoming
> mail. But, if we have a link to a message in org, then that message
> already went through the split process, so re-splitting is
> unnecessary.
Ok, so here we go:
Bye,
Tassilo
>From 89fecc7b938385647618dc28c4df304df872e6eb Mon Sep 17 00:00:00 2001
From: Tassilo Horn <tassilo@member.fsf.org>
Date: Tue, 12 Apr 2011 20:27:54 +0200
Subject: [PATCH] Call gnus-activate-group without SCAN arg.
* org-gnus.el (org-gnus-follow-link): Don't request scan of
group when following link.
lisp/org-agenda.el (org-agenda-set-tags): Remove org-agenda-show to prevent
disrupting windows and changing point in original buffer.
(org-agenda-set-property): Same
(org-agenda-set-effort): Same
(org-agenda-toggle-archive-tag): Same
When setting a tag in the agenda, org-mode displays the corresponding
entry in the original org buffer by calling org-agenda-show. This has
the unwelcome side-effect of disrupting the current window arrangement
and changing the position of the point in the original buffer. This
behavior is inconsistent with the that of org-agenda-todo, which makes
all its changes "silently."
Here is the offending line (6799) in org-agenda-set-tags:
--8<---------------cut here---------------start------------->8---
(org-agenda-show) ;;; FIXME This is a stupid hack and should not be needed
--8<---------------cut here---------------end--------------->8---
The same line occurs in org-agenda-set-property, org-agenda-set-effort,
and org-agenda-toggle-archive tag.
* lisp/org-publish.el (org-publish-project-alist): Document new
:sitemap-sans-extension property.
(org-publish-org-sitemap): Use new sitemap-sans-extension setting.
The following patch adds an option to remove extensions of files linked
from the auto generated sitemap. This is useful if you want to follow
this: http://www.w3.org/Provider/Style/URI
* lisp/org.el (org-remove-uninherited-tags): Renamed from
org-remove-iniherited-tags.
(org-scan-tags): Fix typo in function call.
(org-get-tags-at): Fix typo in function call.
* lisp/org.el (org-get-tags-at): Don't include filetags if local is t.
The function org-get-tags-at and the functions that called it were
including inherited file tags even if the user requested only local
tags. This patch fixes the behavior.
Thanks to Tom Dye for suggesting this functionality
* lisp/org-bibtex.el (org-bibtex-create): Adding prefix argument which
will result in prompting for optional fields.
* lisp/org-bibtex.el (org-bibtex-headline): Renamed flet function
`get' which was causing compile problems.
(org-bibtex-fleshout): Renamed flet function `get' which was causing
compile problems.
(org-bibtex-write): Renamed flet function `get' which was causing
compile problems.
Patch by Matt Lundin adding two new customization options
* lisp/org-bibtex.el (org-bibtex-export-arbitrary-fields): New option.
(org-bibtex-key-property): New option.
(org-bibtex-put): Make use of new `org-bibtex-key-property' variable.
(org-bibtex-headline): Make use of new
`org-bibtex-export-arbitrary-fields' and `org-bibtex-key-property'
variables.
(org-bibtex-autokey): Make use of new `org-bibtex-key-property'
variable.
(org-bibtex-fleshout): Make use of new `org-bibtex-key-property'
variable.
(org-bibtex-write): Make use of new `org-bibtex-key-property'
variable.
* lisp/org-bibtex.el: Updating Copyright dates, author information,
commentary and history notes.
(org-bibtex-types): List of bibtex types with descriptions and
required and optional fields.
(org-bibtex-fields): List of bibtex fields with descriptions.
(*org-bibtex-entries*): Special variable to hold parsed bibtex
entries.
(org-bibtex-autogen-keys): Custom variable controlling whether
bibtex keys are automatically generated
(org-bibtex-prefix): Custom variable allowing use of optional prefix
for bibtex properties in Org-mode headlines.
(org-bibtex-get): Helper function for accessing bibtex elements of a
property list.
(org-bibtex-put): Helper function for inserting bibtex element into
a property list.
(org-bibtex-headline): Return a bibtex entry of the given headline
as a string.
(org-bibtex-ask): Prompt the user to fill in the value of a bibtex
field.
(org-bibtex-autokey): Generate a bibtex key for the current
headline.
(org-bibtex-fleshout): Fill in missing bibtex properties of the
current headline.
(org-bibtex): Export the current Org-mode buffer to a bibtex buffer.
(org-bibtex-check): Check that all bibtex properties are present in
the current headline.
(org-bibtex-check-all): Check all headlines in the current buffer.
(org-bibtex-create): Create a new bibtex headline at the current
level.
(org-bibtex-read): Read the current bibtex entry from a bibtex file.
(org-bibtex-write): Write the most recently read bibtex entry into
an Org-mode file.
* lisp/org-exp.el (org-export-preprocess-string): mark list end before
expanding macros. Thus, a macro inside a list and containing blank
lines cannot break the list structure.
(org-export-preprocess-apply-macros): multi-lines macros get
indented with the same indentation as the first line. Thus, we are
sure that every line belongs to the same list as the first line, if
such list exists. Also add comments in code.
* lisp/org-agenda.el (org-agenda-clock-consistency-checks): New option.
(org-agenda-list): Handle display change to clock check.
(org-agenda-get-progress): Show only clock entries if we are doing the
consistency check.
(org-agenda-show-clocking-issues): New function.
(org-agenda-check-clock-gap): New function.
(org-agenda-view-mode-dispatch): Offer consistency check.
(org-agenda-log-mode): Handle switch to clock only display.
(org-agenda-set-mode-name): Show lighter for Clockcheck.
* lisp/org.el (org-hh:mm-string-to-minutes): Accept an integer argument
and return it unchanged.
* doc/org.texi (Agenda commands): Document clock consistency checks.
* doc/orgcard.tex: Document key for clock consistency check.
* lisp/org-list.el (org-list-struct): when walking down the list, the
function would not pay attention to drawers or blocks indentation.
Thus, such constructs couldn't consistently end an item or a list.
This patch ensures line indentation is stored (if applicable) before
skipping them. Also fixed doc-string and comments.
* lisp/org-exp.el (org-export): Go to next heading before searching
backward, so make this also work if we are on the headline of the
entry with the property...
* lisp/org.el (org-promote):
(org-demote): Soften the previous change, by only removing the
flyspell function from after-change functions, because that was the
one causing the slowdown - at least much of it.
* lisp/org.el (org-promote):
(org-demote): Turn off after-change-functions to speed up the
reindentation of text.
This is mainly toob-oz: brought up to date with the rest of Babel
* ob-tangle.el (org-babel-tangle): Make it work in an indirect buffer.
The problem was that the message generated after tangling included the
file name of the current buffer which was nil in an indirect buffer.
TINYCHANGE
* lisp/org-agenda.el (org-agenda-get-timestamps): Fix agenda display when headlines are missing
The following entry breaks the agenda display.
,----
| ****
| :PROPERTIES:
| :DateCreated: <2011-04-13 Mi 10:00>
| :END:
|
| [[gnus:nntp%2BGwene:gwene.org.emacsen.planet][gnus:nntp+Gwene:gwene.org.emacsen.planet]]
`----
Provide the empty string as the headline if the search for the
headline returns nil. org-format-agenda-items requires a string for
the headline parameter.
* lisp/ob.el (org-babel-params-from-buffer): Now looking for header
arguments in #+Properties: as well as #+Babel:. Also, we're no
longer caching these results into a file local variable.
* lisp/ob-python.el (org-babel-python-evaluate-external-process):
Allow parsing as a table in the case of ":results output table".
(org-babel-python-evaluate-session): Allow parsing as a table in
the case of ":results output table".
* lisp/org-agenda.el (org-agenda-bulk-action): Allow bulk scatter
in all possible agenda views. Use `org-agenda-schedule' instead of
`org-agenda-date-later'.
The bulk scatter command so far shifted the date that was causing an
entry to appear in the agenda. However, the true intend was to
reschedule onto dates in the near future. This patch fixes this
issue. A side effect is that you can now bulk scatter tasks that to
not yet have a date, for example also tasks picked from the TODO
list.
* lisp/org.el (org-entry-get):
(org-entry-delete):
(org-entry-put):
(org-property-values):
(org-delete-property-globally): Use org-re-property.
(org-re-property): New function allowing to build a regexp to match a
property.
Signed-off-by: Julien Danjou <julien@danjou.info>
The problem is illustrated by the following example:
* Illustration of bug in html export
- This has a space after the colons :: so will work in latex and html
- This doesn't have a space after the colons ::so is an invalid
description item according to the org manual. Won't work in html
or docbook. Will nevertheless work in latex, provided /first/
description item is valid.
- Has a terminating space ::
- So it works in both html and latex export!
- Even though it's difficult to distinguish from the next example.
- Lacks a terminating space ::
- At present, *doesn't* work in html or docbook export, does in
latex. This is the case that the following patch fixes.
* lisp/org-table.el (org-table-cleanup-narrow-column-properties): Use
point-min rather than 1 when moving in the buffer.
Signed-off-by: Julien Danjou <julien@danjou.info>
* lisp/org-list.el (org-list-in-valid-context-p): renamed from
org-list-in-valid-block-p.
(org-at-item-p,org-list-search-generic): use renamed function.
* lisp/org.el (org-fill-item-nobreak-p): new function.
(org-set-autofill-regexps): modify `fill-nobreak-predicate' to
prevent auto-fill from breaking line just before an item regexp.
* lisp/org.el (org-set-font-lock-defaults): Be more strict when
recognizing description items, and do not fontify wrong cases like:
"- term ::description" or "1. term :: description"
* lisp/org-latex.el: pay attention to end of footnote. Before closing
the command, ensure that list is properly closed or that last link
is separated from the curly brace.
* lisp/org.el (org-indent-line-function): footnote definition must
stay at column 0 to be recognized as such. Body below can have
normal indentation, so it should ignore its definition when
computing indentation.
* org-capture.el (org-capture-clock-keep): New local variable.
(org-capture, org-capture-finalize): Use it and fix a bug when
:clock-keep is set to `t'.
* lisp/org-agenda.el: Remove obsolete code for adding todo list in front
of the agenda
Todo lists should be built with the TODO list or a block agenda instead.
This code was triggered for C-u R in block agendas which is used to
limit the clock report to the current tags filter applied to the
agenda.
* lisp/org-latex.el (org-export-latex-convert-table.el-table): Fix
format-string for insertion of captions.
This fixes a bug introduced in caa5da1 since when the caption itself
is not placed inside the caption command.
* lisp/org-exp.el (org-export-remove-comment-blocks-and-subtrees): Fix regexp.
Rasmus <rasmus.pank@gmail.com> wrote:
> Hi,
> It seems that
>
> ,----
> | #+BEGIN_COMMENT
> | ...
> | #+END_COMMENT
> `----
>
> Might be broken in Org-mode 7.5. According to the manual,
>
> ,----
> | Finally, regions surrounded by
> | #+BEGIN_COMMENT ... #+END_COMMENT will not be exported.
> `----
>
> Consider the following example generated with Org-mode 7.5 in Emacs 24.0.50
> (started without config files).
>
> ,----
> | #+TITLE: this is a test
> |
> | #+BEGIN_COMMENT
> | Don't export me
> | #+END_COMMENT
> |
> | I'd like to be exposed
> `----
>
> The HTML export is:
>
> ,----
> | <snip>
> | <h1 class="title">this is a test</h1>
> |
> | <div class="org-comment">
> | </br>
> | <p>
> | <p>
> | Don't export me
> | </p>
> | </div>
> |
> | I'd like to be exposed
> | <snip>
> `----
>
> The LaTeX export is:
>
> ,----
> | \begin{verbatim}
> | Don't export me
> | \end{verbatim}
> | I'd like to be exposed
> `----
>
Indeed.
It seems that one of the hair-raising regexps that Carsten manages
to come up with is not quite right. Try this patch for now:
--8<---------------cut here---------------start------------->8---
--8<---------------cut here---------------end--------------->8---
Nick
* lisp/ob-lisp.el (org-babel-execute:lisp): Turn vectors into lists
before reading by elisp
(org-bable-lisp-vector-to-list): Stub of a vector->list function,
should be replaced with a cl-vector->el-vector function.
* lisp/org.el (org-end-of-meta-data-and-drawers): New function.
* lisp/org-capture.el (org-capture-place-plain-text): Implement adding
plain text templates to Org nodes.
This is something which came out of a discussion with Philip Rooke, in
the thread
Philip tried to use a capture template with template type plain, but
using a date tree as a target. Plain templates where placed at the
end of the file, not at the end of the entry. I complained first that
mixing headlined entries and plain snippets into the same capture
target is not possible, but I realized that there is a way to make
this work OK. The headlined entries become children, and the plain
text snippets become part of the text before the first child.
* lisp/org-exp.el (org-export-handle-comments): Add the org-protected
property to the replacement string.
Although org-export-handle-comments adds the org-protected property to
the matched string, the subsequent `replace-match' call to change the
comment character does not add this property to the entire format
string. Fix this by propertizing the entirety of the newtext argument
to replace-match.
* lisp/org-html.el (org-export-as-html) (org-html-level-start): Fix
logic for section number printing when NUM is an integer.
Fixes a bug introduced in 9f57b8e which considered all non-integer
values of the num option to be nil.
* lisp/org-latex.el (org-export-latex-special-chars): Fix regexp for
`single' special characters and ellipsis.
Repeated special characters are exported differently depending on
their position in the buffer. A "&&" string at the start of a line is
exported as "&\&" whereas in the middle of a line you get "\&\&". The
former is incorrect. Fix this by matching the beginning of a line
before a character. While we're at it, amalgamate the regexps for the
different special characters.
* lisp/org.el (org-ts-regexp-both): Add "]" to class of characters that
should not be matched.
(org-ts-regexp0):
(org-ts-regexp1): Do not start a class with "^]-+", because that tries
to (not) match characters between "]" and "+". Instead, move the "-"
to the end of the class where it causes no harm.
* lisp/ob-R.el (org-babel-edit-prep:R): Associate the appropriate R
process with the edit buffer when :session is specified.
* lisp/org-src.el (org-edit-src-code): Allow language-specific
edit-buffer preparation by calling the org-babel-edit-prep:lang
function when it is defined.
* lisp/ob-lisp.el (org-babel-expand-body:lisp): New body expansion
wrapping the expression in either a let or progn, and possibly a
pretty-print function invocation.
(org-babel-execute:lisp): Greatly simplified method of executing
lisp code blocks.
* doc/org.texi (Selective export): Document exclusion of any tasks from
export.
* lisp/org-exp.el (org-export-with-tasks): New option.
(org-export-plist-vars): Add :tasks property.
* doc/org.texi (Selective export): Document how to exclude DONE tasks
from export.
(Publishing options): Document the properties to be used to turn off
export of DONE tasks.
* lisp/org-ascii.el (org-export-as-ascii):
* lisp/org-docbook.el (org-export-as-docbook):
* lisp/org-html.el (org-export-as-html):
* lisp/org-latex.el (org-export-as-latex): Pass the :done-tasks property
to the export preprocessor.
* lisp/org-exp.el (org-export-with-done-tasks): New option.
(org-export-plist-vars): Add entry for :done-tasks.
(org-export-preprocess-string): Call `org-export-remove-done-tasks'.
(org-export-remove-done-tasks): New function.
* lisp/org.el (org-find-olp): Use the level of the correct match to
continue search.
The problem was that a second match of an identical headline on
another level would corrupt the value of LEVEL that is used to set up
the next search stop.
Chao LU writes:
> For org capture template, if I set an template like this:
> ("i" "INBOX" entry (file+olp (concat org-private-dir "/iPrv.org")
> "INBOX" "test") "* %?" :prepend t)
>
> And for the iPrv.org, I have this structure:
> * INBOX
> ** test
>
> Then it works.
>
> But if the first level and the second level happen to have the same
> title (it does happen to me sometimes), like:
> * INBOX
> ** INBOX
>
> ("i" "INBOX" entry (file+olp (concat org-private-dir "/iPrv.org")
> "INBOX" "INBOX") "* %?" :prepend t)
> Then Org will prompt an error.
* lisp/org-list.el (org-toggle-checkbox): build value of
org-keyword-time-regexp instead of using it directly, as it's
buffer-local, and function might be called outside Org.
* lisp/org-list.el (org-list-struct,org-in-item-p): don't assume end
of blocks or drawers necessarily start somewhere. It it isn't the
case, treat them as normal text.
* lisp/org-latex.el (org-export-latex-date-format): Change default date
format to \today. This has the same result but respects the language set in
the document by default.
Signed-off-by: Julien Danjou <julien@danjou.info>
* lisp/org-list.el (org-list-checkbox): when called from an headline,
function would normally skip drawers, but not if a SCHEDULED or
DEADLINE keyword is standing before the drawer. Also avoid problems
if function is called in buffers not is Org mode.
* org-clock.el (org-clock-report): change the scope of the
inserted clock report depending on whether the point is within
a subtree (:scope subtree) or not (:scope file).
* lisp/org-latex.el (org-export-latex-preprocess): Correctly
match starred command names.
Many LaTeX commands exist in both normal and starred forms. Adjust
the regexp in `org-export-latex-preprocess' to match the starred form
as well.
* lisp/org-html.el (org-export-as-html): Get local value of
org-export-with-section-numbers from the buffer's plist. Deal
specially with the case the resulting value is an integer.
(org-html-level-start): New optional argument of the option plist used
instead of `org-export-with-section-numbers'. Also deal specially
with the case that the value is an integer.
When `org-export-with-section-numbers' (or the buffer-local
:section-numbers option) is an integer, we now export the first NUM
levels of headings with numbers and lower-level headings without.