Commit Graph

11464 Commits

Author SHA1 Message Date
Nicolas Goaziou b4f9ee4eba Fix `org-at-property-p'
* lisp/org.el (org-at-property-p): Return nil when at the beginning of
  the properties drawer.
2015-04-07 00:08:31 +02:00
Nicolas Goaziou 94c7619579 Small refactoring
* lisp/org.el (org-read-property-name): Small refactoring.
2015-04-07 00:02:54 +02:00
Nicolas Goaziou cff54cd127 org-table: `org-table-end' does not return a marker
* lisp/org-table.el (org-table-end): Do not return a maker.
(org-table-align):
(org-table-insert-column):
(org-table-delete-column):
(org-table-move-column):
(org-table-convert):
(org-table-recalculate): Create needed marker.

Creating a marker was not documented, and not always needed.
`copy-marker' should be used when they are.  Markers not deactivated
slow down editing.
2015-04-06 09:38:21 +02:00
Nicolas Goaziou 1ba8413b0a org-element: Fix cache bug
* lisp/org-element.el (org-element--cache-for-removal): Be more
  careful when altering a properties drawer.

* testing/lisp/test-org-element.el (test-org-element/cache): Add test.
2015-04-06 00:37:49 +02:00
Nicolas Goaziou 789ddf155a org-element: Fix regexp
* lisp/org-element.el (org-element--cache-sensitive-re): Fix regexp.
2015-04-05 21:38:10 +02:00
Nicolas Goaziou 12a63035e9 ox-ascii: Fix titles with line breaks
* lisp/ox-ascii.el (org-ascii-template--document-title): Take into
  consideration line breaks when computing title's width.
2015-04-05 21:11:20 +02:00
Nicolas Goaziou 9bf5ecbad1 ox-latex: Parse DATE
* lisp/ox-latex.el (latex): Parse DATE.
2015-04-05 19:00:56 +02:00
Nicolas Goaziou e69c4e7a1b `org-open-at-point' follows links in keywords
* lisp/org.el (org-open-at-point): Follow links in keywords.

* testing/lisp/test-org.el (test-org/open-at-point-in-keyword): New test.
2015-04-05 14:17:58 +02:00
Nicolas Goaziou c466a4deee ox-latex, ox-koma-letter: Use new `parse' syntax
* contrib/lisp/ox-koma-letter.el (koma-letter): Set "SUBJECT" as
  parsed.
(org-koma-letter-template): Apply.
* lisp/ox-latex.el (latex): Set "DESCRIPTION" and "KEYWORDS" as
  parsed.
(org-latex--format-spec): Apply.
2015-04-05 14:11:14 +02:00
Nicolas Goaziou fa70778a20 org-element: Remove `org-element-document-properties'
* lisp/org-element.el (org-element-document-properties): Remove
  variable.
(org-element-context): Ignore ex-"document keywords".

* testing/lisp/test-org-element.el (test-org-element/context): Remove
  no longer applicable tests.

Parsed keywords are no longer hard-coded and can be set per export
back-end.

As a consequence, `org-element-context' no longer returns objects in
"TITLE", "DATE" or "AUTHOR" keywords.  This makes sense as these
objects would only make sense during export, and only if the chosen
back-end actually uses them.
2015-04-05 13:48:28 +02:00
Nicolas Goaziou fa64b59b05 org-macro: Allow macros in parsed keywords and associated properties
* lisp/org-macro.el (org-macro-replace-all): Add optional argument.
  Now accept macros in parsed keywords and associated properties.

* lisp/ox.el (org-export-as): Apply signature change.

* testing/lisp/test-ox.el (test-org-export/expand-macro): Add test.
2015-04-05 13:48:28 +02:00
Nicolas Goaziou ae9db17482 ox: Implement `parse' behavior for options
* lisp/ox.el (org-export-options-alist): Implement `parse' behavior
  and use it for parsed keywords.  Update docstring.
(org-export-document-properties): Remove variable.

(org-export--get-subtree-options):
(org-export--get-inbuffer-options):
(org-export--get-global-options):
(org-export--prune-tree):
(org-export--remove-uninterpreted-data): Handle `parse' behavior.

(org-export-as): Do not assume :date is always a secondary string
and :email is never one.

* testing/lisp/test-ox.el (test-org-export/get-inbuffer-options):
  Update tests.
2015-04-05 12:21:25 +02:00
Derek Feichtinger 4f7aba3b40 ox-latex: Fix for export of doi type links
* lisp/ox-latex.el (org-latex-link): Add "doi" to the list of link
types that retain the protocol prefix in the exported link.

<http://permalink.gmane.org/gmane.emacs.orgmode/96669>
TINYCHANGE
2015-04-04 00:04:31 +02:00
Nicolas Goaziou 9febca5349 Fix some copyright years
* contrib/lisp/org-mime.el:
* lisp/ob-ref.el: Fix copyrigtht years.
2015-04-02 11:37:32 +02:00
Nicolas Goaziou 707d52cff7 Fix diary sexp indentation
* lisp/org.el (org--get-expected-indentation): Diary sexps are to be
  indented at column 0.
* testing/lisp/test-org.el (test-org/indent-line): Add test.
2015-04-02 10:31:58 +02:00
Nicolas Goaziou ca08453cc9 Update defcustom
* lisp/org.el (org-cycle-hook): Update version and package-version.

Commit 03e81f0d24 modified default
value.
2015-04-02 00:23:57 +02:00
Nicolas Goaziou 03e81f0d24 Fix cycling ARCHIVE trees with inline tasks loaded
* lisp/org-inlinetask.el (org-inlinetask-hide-tasks): New function.
* lisp/org.el (org-cycle-hide-inline-tasks): Remove function.
(org-cycle-hook): Apply removal.

Reported-by: "Francesco Pizzolante" <fpz-djc/iPCCuDYQheJpep6IedvLeJWuRmrY@public.gmane.org>
<http://permalink.gmane.org/gmane.emacs.orgmode/89563>
2015-04-02 00:06:49 +02:00
Rasmus baf0d3e0fa ox-html: Small fix
* ox-html.el (org-html-mathjax-options): Add new package-version.
2015-04-01 23:10:05 +02:00
Nicolas Goaziou 22bf1b8ae3 Fix 80bccca4e2
* lisp/org.el (org-refresh-category-properties): Extract default
  category before entering `with-silent-modifications', as
  `buffer-file-name' is then bound to nil.

Reported-by: John Hendy <jw.hendy@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/96620>
2015-04-01 22:41:41 +02:00
Rasmus c677c206fd ox-html: Tiny fix
* ox-html.el (html): Remove duplicated line.
2015-04-01 13:35:37 +02:00
Nicolas Goaziou b3e3f901b1 ob-ref: Small refactoring
* lisp/ob-ref.el (org-babel-ref-goto-headline-id):
(org-babel-ref-headline-body): Small refactoring.
2015-03-31 21:52:07 +02:00
Nicolas Goaziou 33e2e375df Small optimization
* lisp/org.el (org-find-property): Small optimization.

Since VALUE is included in the regexp, it doesn't need to be found
again with `org-entry-get'.  However, we still need to make sure match
really is a node property.
2015-03-31 16:34:51 +02:00
Nicolas Goaziou 80bccca4e2 Fix `org-refresh-category-properties'
* lisp/org.el (org-refresh-category-properties): Ignore false
  positives when setting category.  Also, deprecate old CATEGORY
  keyword behaviour: new keywords override old ones.
2015-03-31 16:22:10 +02:00
Nicolas Goaziou c1a744659d Fix "Before first headline" error in `org-refresh-property'
* lisp/org.el (org-refresh-property): Ignore function when before
first headline or inlinetask.  Small refactoring.

Reported-by: Nick Dokos <ndokos@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/96552>
2015-03-31 15:57:54 +02:00
Thierry Banel 2081cd3f62 Remove default #includes in Babel C, C++
* ob-C.el (org-babel-C-expand-C): remove automatic inclusion
of <string.h>, <stdio.h>, <stdlib.h>

* ob-C-test.org: adjust C++ tests to manually include
required header files.

<http://permalink.gmane.org/gmane.emacs.orgmode/96528>
2015-03-31 12:05:49 +02:00
Florian Beck 7a717f8f04 Allow searching for specific property value
* lisp/org.el (org-re-property): New optional argument.
(org-find-property): Use it.

See <http://permalink.gmane.org/gmane.emacs.orgmode/96316>.

TINYCHANGE
2015-03-31 11:57:43 +02:00
Rasmus 70d828af3a org.el: Fix org-copy-subtree at inlinetask
* org.el (org-copy-subtree): Include the end of an inlinetasks.

Previously, the end of an inlinetask would be left in the buffer.
2015-03-29 15:30:43 +02:00
Rasmus 564673b766 ox-org: Remove #+DESCRIPTION and #+KEYWORD support
* ox-org.el (org-org-keyword): Remove #+KEYWORD and #+DESCRIPTION
  (org-org-template): Remove explicit #+KEYWORD and #+DESCRIPTION
  support.
2015-03-29 15:00:33 +02:00
Nicolas Goaziou f6bd2a9cb4 org-table: Fix docstrings
* lisp/org-table.el (org-table-beginning-of-field):
(org-table-end-of-field): Swap docstrings.
2015-03-29 14:14:32 +02:00
Nicolas Goaziou 98ec17e204 Fix `org-backward-sentence' and `org-forward-sentence'
* lisp/org.el (org-backward-sentence):
(org-forward-sentence): Properly move at the boundaries of an element.

* testing/lisp/test-org.el (test-org/forward-sentence):
(test-org/backward-sentence): New tests.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/96377>
2015-03-29 14:14:32 +02:00
Rasmus 79c0aa21ca ox: Remove #+KEYWORD and #+DESCRIPTION
* ox.el: Remove #+KEYWORD: and #+DESCRIPTION:.
* ox-deck.el, ox-rss.el, ox-html, ox-latex, ox-odt, ox-org: Add
  #+KEYWORD and #+DESCRIPTION.
* org.texi (Export settings): Explicit state which backends
  support #+DESCRIPTION and #+KEYWORDS.
2015-03-29 14:08:13 +02:00
Nicolas Goaziou a8f8ea8b69 ox: New smart quote algorithm
* lisp/ox.el (org-export-smart-quotes-alist): Fix indentation.
(org-export-smart-quotes-regexps): Remove variable.
(org-export--smart-quote-status): New function.
(org-export-activate-smart-quotes): Use new function.

* testing/lisp/test-ox.el (test-org-export/activate-smart-quotes):
  Update tests.
2015-03-28 15:41:46 +01:00
Nicolas Goaziou 3ece4c5e5e ox: Tiny fix
* lisp/ox.el (org-export--get-inbuffer-options): Do not consider
  `quote' value as t.
2015-03-28 10:56:16 +01:00
Nicolas Goaziou a0f2293405 Remove comment related translators in export back-ends
* lisp/ox-ascii.el (ascii):
* lisp/ox-latex.el (latex):
* lisp/ox-man.el (man):
* lisp/ox-md.el (md):
* lisp/ox-org.el (org):
* lisp/ox-texinfo.el (texinfo):

* contrib/lisp/ox-groff.el (groff): Remove `comment' and
`comment-block' translators.

`comment' and `comment-block' translators are not needed since both
commented lines and comment blocks do not appear anymore in the parse
tree.  See 69dd4301ab.
2015-03-28 10:56:11 +01:00
Nicolas Goaziou 0ac26737f0 ox: Remove filter associated to comments
* lisp/ox.el (org-export-filters-alist): Remove reference to comment
  filters.
(org-export-filter-comment-functions,
org-export-filter-comment-block-functions): Remove variables.

* doc/org.texi (Advanced configuration): Remove reference to comment
  filters.

* etc/ORG-NEWS: Signal removal.

Comments are removed before parsing the buffer.  As a consequence,
filters are never called.
2015-03-28 10:45:36 +01:00
Nicolas Goaziou 69dd4301ab ox: Remove comments and comment blocks prior to export
* lisp/ox.el (org-export--delete-comments): Renamed from
  `org-export--delete-commented-subtrees'.  Also remove comments and
  comment blocks.
(org-export-as): Apply renaming.

* testing/lisp/test-ox.el (org-test-with-parsed-data): Apply renaming.

From the export point of view COMMENTed subtrees and regular comments
are expected to be treated in the same way.
2015-03-28 10:27:04 +01:00
Nicolas Goaziou e8b2a120c2 ox: Fix `org-export--delete-commented-subtrees'
* lisp/ox.el (org-export--delete-commented-subtrees): Match COMMENT
  subtree even with a priority cookie or a TODO keyword.
2015-03-28 09:59:08 +01:00
Nicolas Goaziou fa0cc0ab70 Revert "Fix c9a52787c14c3a7429bcd3c8975350525e0baa04"
This reverts commit 359572d37e.

COMMENT headlines are expected to be ignored completely during export.
2015-03-28 09:54:37 +01:00
Nicolas Goaziou 2e9a1d9c84 Fix code comment
* lisp/org.el (org-fontify-entities): Fix comment.
2015-03-27 18:14:59 +01:00
Rasmus c3838377da ox-html: Tiny fix
* ox-html.el: Remove second :html-html5-fancy.
2015-03-27 14:52:50 +01:00
Rasmus 69cab81ffa ox-latex: Utilize change in bcf6970
* ox-koma-letter.el (org-koma-letter-template),
  ox-latex.el (org-latex--format-spec): Tiny refactor.
2015-03-27 13:04:13 +01:00
Rasmus e9fd19968b ox: Always insert creator in metadata
* ox-odt.el (org-odt-template): Always insert creator.
* ox-latex.el (org-latex--format-spec): Creator always available.
2015-03-27 12:51:01 +01:00
Nicolas Goaziou 22f732c255 Fuzzy links to headlines ignore COMMENT keywords
* lisp/org.el (org-link-search): Ignore COMMENT keyword.
* testing/lisp/test-org.el (test-org/fuzzy-links): Add test.

Reported-by: Martin Carlé <mc@aiguphonie.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/96413>
2015-03-26 21:05:27 +01:00
Nicolas Goaziou 2f58e3c011 org-macro: Small refactoring
* lisp/org-macro.el (org-macro-initialize-templates): Remove spurious
  lambda funcall.
2015-03-24 09:44:27 +01:00
Nicolas Goaziou 359572d37e Fix c9a52787c1
* lisp/org-macro.el (org-macro--collect-macros): Ignore macro
  definitions in commented subtrees.
* lisp/ox.el (org-export--get-inbuffer-options): Ignore options in
  commented subtrees.
(org-export--delete-commented-subtrees): Remove function.
(org-export-as): Apply removal.

Removing the whole subtree is not subtle as Babel might want to use
data there.

Reported-by: Robert Klein <RoKlein@roklein.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/96347>
2015-03-24 09:35:39 +01:00
Nicolas Goaziou ec54a5852d ox-beamer: Properly transcode description tags
* lisp/ox-beamer.el (org-beamer-item): Make sure description tags are
  transcoded using `beamer' back-end instead of `latex'.

Reported-by: Andreas Leha <andreas.leha@med.uni-goettingen.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/96345>
2015-03-24 09:15:47 +01:00
Andreas Leha 510e703798 ob-latex: htlatex and imagemagick
Hi all,

please find attached a small patch that fixes a problem discussed
in [1].

In short, when executing a latex src block and htlatex is a valid
option, it should be used even if imagemagick is part of the headers.

Regards,
Andreas

[1] http://permalink.gmane.org/gmane.emacs.orgmode/96257

>From 2986826441c24e2f0d6cf5efe6bf8aca75c4bdbb Mon Sep 17 00:00:00 2001
From: Andreas Leha <andreas.leha@gmx.de>
Date: Sat, 21 Mar 2015 22:11:37 +0000
Subject: [PATCH] ob-latex: htlatex preferred over imagemagick

* ob-latex.el (org-babel-execute:latex): change the order of the handlers

When `imagemagick' is given this entry acts as an else option.
So, it should always come last.
2015-03-24 00:41:52 +01:00
Nicolas Goaziou c9a52787c1 ox: Ignore export settings in commented subtrees
* lisp/ox.el (org-export--delete-commented-subtrees): New function.
(org-export-as): Use new function.

* testing/lisp/test-ox.el (org-test-with-parsed-data,
  test-org-export/get-inbuffer-options): Use new function.
(test-org-export/expand-macro): Add tests.

Reported-by: Andreas Leha <andreas.leha@med.uni-goettingen.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/96267>
2015-03-24 00:32:15 +01:00
Nicolas Goaziou f7b27896e9 ox: Rename some internal functions
* lisp/ox.el (org-export--prune-tree): Renamed from
  `org-export-prune-tree'.  Move it close to its caller.
(org-export--remove-uninterpreted-data): Renamed from
`org-export-remove-uninterpreted-data'.  Move it close to its caller.
(org-export--remove-uninterpreted-data-1): Move internal function
close to its caller.
(org-export-as): Apply renaming.

* testing/lisp/test-ox.el (org-test-with-parsed-data): Apply renaming.
2015-03-24 00:09:46 +01:00
Nicolas Goaziou 5a550938ce org-list: Modify M-RET on a description tag
* lisp/org-list.el (org-list-insert-item): On a description tag,
  insert item before current one.  However, past the colons, insert it
  after.
* testing/lisp/test-org-list.el (test-org-list/insert-item): Add
  tests.

Reported-by: Leo Ufimtsev <lufimtse@redhat.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/96330>
2015-03-23 23:35:57 +01:00
Nicolas Goaziou d4785381ec Change "\..." entities into "\_ "
* lisp/org-element.el (org-element--set-regexps):
(org-element-entity-parser): Update regexps.

* lisp/org-entities.el (org-entities): Modify syntax for space
  entities.

* lisp/org.el (org-fontify-entities): Update comment.

* lisp/org-clock.el (org-clocktable-indent-string): Apply syntax
  change.

* etc/ORG-NEWS (title): Update announce.

Use a less verbose syntax, which cannot interfere with file paths.
2015-03-22 21:45:00 +01:00
Nicolas Goaziou 51b206bcd2 ox-ascii: Remove dubious spacing in UTF8 titles
* lisp/ox-ascii.el (org-ascii-template--document-title): Remove
  spurious newline characters in title when exporting to UTF8.

Suggested-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/96229>
2015-03-22 15:19:36 +01:00
Nicolas Goaziou acebc4b0b5 org-element: Fix 22f942b481
* lisp/org-element.el (org-element-entity-parser): Fix regexp groups.
2015-03-22 10:09:29 +01:00
Nicolas Goaziou bcaf550826 org-clock: Use new entities for clock table
* lisp/org-clock.el (org-clocktable-indent-string): Use new entities.
  Update docstring.

Fixes: bug#18870
2015-03-22 09:55:52 +01:00
Nicolas Goaziou 22f942b481 Implement new entity family "\...."
* lisp/org-element.el (org-element--set-regexps):
(org-element-entity-parser): Update regexps for entities.

* lisp/org-entities.el (org-entities): Add new entities.

* lisp/org.el (org-fontify-entities): Add comment.

* etc/ORG-NEWS (title): Introduce new entities.

"\..." are used to insert an arbitrary number of spaces in various
back-ends.  In particular, this family can be used to introduce
leading spaces within table cells.

Also, unlike to other entities, these can be used mid-word, e.g.,

  wo\....rd

Curly brackets can still be added before a dot, e.g.,

  This is the end\...{}.
2015-03-22 09:55:20 +01:00
Nicolas Goaziou 4cc8ead4d8 org-entities: Remove unused variable and functions
* lisp/org-entities.el (org-entities-ascii-explanatory): Remove
  variable.
(org-entities--user-safe-p): Refactor.
(org-entities-user): Delete reference to removed variable.  Small
docstring fix.
(org-entity-get-representation, org-entity-latex-math-p): Remove
functions.

* etc/ORG-NEWS (Skipping): Document variable removal.
2015-03-22 00:35:50 +01:00
Nicolas Goaziou bcf6970369 org-element: `org-element-parse-secondary-string' accepts nil argument
* lisp/org-element.el (org-element-parse-secondary-string): Accept nil
  argument as a special case.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/96234>
2015-03-21 09:43:45 +01:00
Nicolas Goaziou e0b19dedb9 ox: Throw an error on unresolved id links
* lisp/ox.el (org-export-get-environment): Properly find file
  associated to id link.
(org-export-resolve-id-link): Throw an error on unresolved id links.

Use `org-id-find' instead of `org-id-find-id-file' as the latter may
returns the file attached to current buffer on search failure.

Reported-by: Jacob Gerlach <jacobgerlach@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/96020>
2015-03-17 23:31:49 +01:00
Jacob Gerlach dc08e98885 ox.el: Issue error for unresolved fuzzy link
* lisp/ox.el (org-export-resolve-fuzzy-link): Throw an error instead
  of returning nil when link can't be resolved.

* testing/lisp/test-ox.el (test-org-export/resolve-fuzzy-link): Change
  last test from should-not to should-error

In addition to throwing an error, don't store the failed match in the
link cache.

TINYCHANGE
2015-03-17 22:46:05 +01:00
Nicolas Goaziou a886b23476 ox: Throw an error on unresolved coderef
* lisp/ox.el (org-export-resolve-coderef): Throw an error on
  unresolved coderef.

* testing/lisp/test-ox.el (test-org-export/resolve-coderef): Update
  test.
2015-03-17 22:42:45 +01:00
Nicolas Goaziou 22ff8381ed ox: Fix defcustom
* lisp/ox.el (org-export-with-title): Fix :package-information value.
2015-03-17 15:51:30 +01:00
Nicolas Goaziou 16cea3d7b7 ox: Remove `comment' special value for `org-export-with-creator'
* lisp/ox.el (org-export-with-creator): Change default value.

* lisp/ox-ascii.el (org-ascii-template):
* lisp/ox-beamer.el (org-beamer-template):
* lisp/ox-latex.el (org-latex-template):
* lisp/ox-odt.el (org-odt-template):
* lisp/ox-org.el (org-org-template):
* lisp/ox-texinfo.el (org-texinfo-template): Treat
  `org-export-with-creator' as a boolean.

* testing/lisp/test-ox.el (test-org-export/parse-option-keyword):
  Update test.

* doc/org.texi (Export settings): Update allowed values in
  `org-export-with-creator'.

* etc/ORG-NEWS: Signal change.

Special `comment' value isn't meaningful for all back-ends and is not
implemented in every back-end where it makes sense anyway.

It is possible to add a comment including creator at the end of the
document using a body filter instead.
2015-03-17 15:51:22 +01:00
Rasmus fd8c843692 ox-odt: Fix bugs in metadata generation
* ox-odt.el (org-odt-template): Use empty quotes when keyword and
  description is missing.  Fill the generator field like ox-latex.
2015-03-17 01:13:48 +01:00
Gustav Wikström 8562bd09ec org: Nesting grouptags
* lisp/org.el (org-tags-expand): Nesting grouptags.

  Allowing subtags to be defined as groups themselves.

  : #+TAGS: [ Group : SubOne(1) SubTwo ]
  : #+TAGS: [ SubOne : SubOne1 SubOne2 ]
  : #+TAGS: [ SubTwo : SubTwo1 SubTwo2 ]

  Should be seen as a tree of tags:
  - Group
    - SubOne
      - SubOne1
      - SubOne2
    - SubTwo
      - SubTwo1
      - SubTwo2

  Searching for "Group" should return all tags defined above.
2015-03-16 22:27:38 +01:00
Gustav Wikström 6c6ae990c1 org-agenda: Filtering in the agenda on grouptags
Filtering in the agenda on grouptags filter also subcategories.
Exception if filter is applied with a (double) prefix-argument.

Filtering in the agenda on subcategories does not filter the "above"
levels anymore.

If a grouptag contains a regular expression the regular expression
is also used as a filter.

* lisp/org-agenda.el (org-agenda-filter-by-tag): improved UI and
  refactoring.

  Now uses the argument arg and optional argument exclude instead of
  strip and narrow.  ARG because the argument has multiple purposes
  and makes more sense than strip now.  The term narrowing is changed
  to exclude.

* lisp/org-agenda.el (org-agenda-filter-by-tag-refine): name change in
  argument to match org-agenda-filter-by-tag.

* lisp/org-agenda.el (org-agenda-filter-make-matcher): new optional
  argument EXPAND and refactoring.

* lisp/org-agenda.el (org-agenda-filter-make-matcher-tag-exp): new
  function, previously baked into org-agenda-filter-make-matcher.

* lisp/org-agenda.el (org-agenda-filter-apply): New optional parameter
  EXPAND, used in call to org-agenda-filter-make-matcher.

* lisp/org-agenda.el (org-agenda-reapply-filters): Uses another
  parameter (the new optional one) in call to org-agenda-filter-apply.

* lisp/org-agenda.el (org-agenda-finalize): use of new parameter in
  call to org-agenda-filter-apply.

* lisp/org-agenda.el (org-agenda-redo): Use of new parameter in call
  to org-agenda-filter-apply.
2015-03-16 22:27:34 +01:00
Gustav Wikström ee45258cfe org: Grouptags not unique and can contain regexp
* lisp/org.el (org-tags-expand): Grouptags can have regular expressions as
  "sub-tags".

  The regular expressions in the group must be marked up within { }.
  Example use:

  : #+TAGS: [ Project : {P@.+} ]

  Searching for the tag Project will now list all tags also including
  regular expression matches for P@.+.  Good for example if tags for a
  certain project is tagged with a common project-identifier,
  i.e. P@2014_OrgTags.

* lisp/org.el (org-tag-alist) : New symbols for grouptags when the
  tags in the group don't have to be distinct on a heading.

  Grouptags had to previously be defined with { }.  This syntax is
  already used for exclusive tags and Grouptags need their own,
  non-exclusive syntax.  This behaviour is achieved with [ ].  Note: {
  } can still be used also for Grouptags but then only one of the
  given tags can be used on the headline at the same time.  Example:

  [ group : sub1 sub2 ]

  Grouptags also are not filtered when setting up tags.  This means
  they can exist multiple times in org-tag-alist list.  It will be
  usable if nesting of grouptags is ever to become reality.

  There is a slightly annoying side-effect when setting tags in that a
  tag which is both a part of a grouptag and a grouptag of it's own
  will get multiple key-choices in the selection-UI.

* lisp/org.el (org--setup-process-tags): Adaption for the added syntax
  for non-distinct grouptags.

* lisp/org.el (org-fast-tag-selection): Add support for the added,
  non-unique, grouptag-syntax.  Minor (if ...) to (when ...) refactor.
2015-03-16 22:27:26 +01:00
Rasmus e08dca9690 Merge branch 'maint' 2015-03-15 21:53:13 +01:00
Rasmus 19a7d6864d ox-man: Change dispatcher key to 'M'
* ox-man.el (man): Move man-export to 'M' in the ox dispatcher.

Reported by:  Brice Waegenire <brice.wge@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/96071>
2015-03-15 21:50:07 +01:00
Nicolas Goaziou 4d7772c6a4 org-plot: Fix empty cells handling
* lisp/org-plot.el (org-plot/gnuplot-script): Fix empty cells
  handling.

Reported-by: Anders Wirzenius <anders.wirzenius@netikka.fi>
<http://permalink.gmane.org/gmane.emacs.orgmode/96022>
2015-03-15 18:10:43 +01:00
Nicolas Goaziou de7c599669 org-plot: Tiny fixes
* lisp/org-plot.el (org-plot/gnuplot-script, org-plot/gnuplot): Tiny
  fixes.
2015-03-15 18:10:14 +01:00
Nicolas Goaziou 7b450bc7bb Fix `org-delete-property-globally'
* lisp/org.el (org-delete-property-globally): Ignore false positive.
2015-03-15 16:53:58 +01:00
Nicolas Goaziou 84d6ff4ec1 Fix `org-entry-delete' with accumulated properties
* lisp/org.el (org-entry-delete): Remove all occurrences of
  accumulated properties, too.  Return a non-nil value when some
  property was removed.

* testing/lisp/test-org.el (test-org/entry-delete): Add test.
2015-03-15 16:53:42 +01:00
Nicolas Goaziou 8cdb2eef0f Fix `org-find-entry-with-id'
* lisp/org.el (org-find-entry-with-id): Ignore false positive ID
  properties when looking for a specific ID.
2015-03-15 15:49:05 +01:00
Nicolas Goaziou 269b680900 Fix CUSTOM_ID search
* lisp/org.el (org-link-search): Avoid false positives when searching
  CUSTOM_ID property.

* testing/lisp/test-org.el (test-org/custom-id): Add test.
2015-03-15 15:49:05 +01:00
Nicolas Goaziou 7072dba04d Implement `org-find-property'
* lisp/org.el (org-find-property): New function.
* testing/lisp/test-org.el (test-org/find-property): New test.
2015-03-15 15:49:05 +01:00
Rasmus a95e9da223 ox-html: Handle missing title better
* ox-html.el (org-html-template): Only insert title when nonnil.

Empty headings trigger a W3 Validator warning.
2015-03-14 01:34:33 +01:00
Rasmus a566f2865d ox-beamer: Fix hyperref bug
* ox-beamer.el (org-beamer-template): Typeset hyperref as in
  ox-latex.
2015-03-14 00:53:11 +01:00
Rasmus cf4145db02 org.el: Declare org-element-update-syntax
* org.el: Declare org-element-update-syntax.  Required by org-add-link-type.
2015-03-14 00:39:54 +01:00
Nicolas Goaziou ac12984ff6 ob-exp: Use `user-error' over `error' when applicable
* lisp/ob-exp.el (org-babel-exp-process-buffer): Use `user-error'.
  Also keep lines within 80 characters.
2015-03-13 09:09:18 +01:00
Charles Berry 53c6f68896 ob-exp.el: org-babel-exp-process-buffer reports src block w/o language
* lisp/ob-exp.el (org-babel-exp-process-buffer): Issue an error when a
  src block with no language is processed.

Throw an error with an informative message when trying to export buffer
containing `#+src_block\n'.

Reported-by: XIE Yuheng <xyheme@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/95920>
2015-03-11 19:23:33 -07:00
Nicolas Goaziou 1de825df31 Fix CATEGORY property
* doc/org.texi (Special properties): Remove "CATEGORY"

* lisp/org.el (org-special-properties): Remove "CATEGORY".
(org-property-get-allowed-values): Ignore "CATEGORY".
(org-entry-get): Make sure to get CATEGORY value using
`org-entry-properties'.

* testing/lisp/test-org.el (test-org/entry-put): Add test.

"CATEGORY" is not a special property as it can also be set using
a properties drawer.
2015-03-11 17:12:49 +01:00
Matthew Gidden 3d01a0bd19 ox-beamer.el: Update BEAMER_HEADER placement
* lisp/ox-beamer.el (`beamer-header'): Move BEAMER_HEADER injection to
  final part of preamble (after themes, title, etc.).  Allows for
  custom short titles, etc., with #+BEAMER_HEADER:
  \title[Short]{Long}.

* doc/org.texi: Updated BEAMER_HEADER entry with a relevant footnote.

Previously, TITLE, etc., was being injected after BEAMER_HEADER, so
short titles (and related) could not be added.  BEAMER_HEADER now
serves as a final preamble injection point.

TINYCHANGE
2015-03-10 21:20:29 +01:00
Nicolas Goaziou 375c831418 Tiny refactoring
* lisp/org.el (org-timestamp--to-internal-time): New function.
(org-timestamp-format): Use new function.
(org-timestamp-split-range): Fix docstring.
2015-03-08 18:34:09 +01:00
Nicolas Goaziou fab7de5787 ox-ascii: Fix TOC keyword
* lisp/ox-ascii.el (org-ascii--build-toc): Fix TOC keyword.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/95843>
2015-03-08 17:47:04 +01:00
Nicolas Goaziou 1219b07039 Revert "org-agenda: Fix small bug"
This reverts commit d92ef95170.

Reported-by: Ken Mankoff <mankoff@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/95817>
2015-03-08 01:19:45 +01:00
Nicolas Goaziou 5d19c2c689 org-habit: Add support for "++" and "+" repeater types
* lisp/org-habit.el (org-habit-parse-todo): Add repeater type to
  habit.
(org-habit-repeat-type): New function.
(org-habit-build-graph): Handle "++" and "+" repeater types.

Reported-by: Leo He <leodream2008@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/95772>
2015-03-07 19:29:40 +01:00
Nicolas Goaziou 9e3c3ec0b3 Fix LaTeX fragment display from remote documents
* lisp/org.el (org-toggle-latex-fragment): Fix display from remote
  documents by creating images in temporary directory.

Reported-by: Dustin Paluch <dustinpaluch@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/95712>
2015-03-07 10:01:27 +01:00
Nicolas Goaziou bf4a645cac org-element: Fix indentation removal with line breaks
* lisp/org-element.el (org-element-line-break-parser): Tiny
  refactoring.
(org-element-normalize-contents): Take into consideration line breaks
when removing common indentation.  Small refactoring.

* testing/lisp/test-org-element.el (test-org-element/normalize-contents):
  Add tests.
2015-03-07 01:58:28 +01:00
Nicolas Goaziou 1362c2d22b Change `org-toggle-latex-fragment' behaviour
* lisp/org.el (org-remove-latex-fragment-image-overlays): Allow to
  limit overlay removal through optional arguments.  Define a new
  return value.
(org-toggle-latex-fragment): Change behaviour.  Update docstring
accordingly.
(org-format-latex): Update docstring.  Remove overlay when LaTeX
fragment is deleted.

* etc/ORG-NEWS: Signal change.

The new behaviour is the following:

  - With a double prefix argument or with a single prefix argument
    when point is before the first headline, toggle overlays in the
    whole buffer;

  - With a single prefix argument, toggle overlays in the current
    subtree;

  - On latex code, toggle overlay at point;

  - Otherwise, toggle overlays in the current section.

Suggested-by: <kuangdash@163.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/95492>
2015-03-06 11:15:33 +01:00
Nicolas Goaziou 40ef7af622 org-element: Elements can accept multiple secondary strings
* lisp/org-element.el (org-element-secondary-value-alist): Turn
  secondary properties into a list.
(org-element-secondary-p, org-element-map): Apply changes to variable
above.
2015-03-01 17:03:02 +01:00
Nicolas Richard f8731eaeec org-agenda: Nicer error message when accessing killed buffer
* lisp/org-agenda.el (org-agenda-switch-to): Throw an error if marker
  points to no buffer.
2015-02-28 00:51:35 +01:00
Nicolas Goaziou 18685d9852 org-clock: Fix ignored integer values for `org-clock-into-drawer'
* lisp/org-clock.el (org-clock-into-drawer): Fix ignored integer
  values.

Reported-by: Rainer Stengele <rainer.stengele@online.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/95504>
2015-02-28 00:43:37 +01:00
Nicolas Goaziou b8921e8c78 Fix void `orgtbl-line-start-regexp' in orgstruct++ mode
* lisp/org.el (org-adaptive-fill-function): Use
  `org-table-line-regexp' instead of `orgtbl-line-start-regexp', which
  may not be defined.

Reported-by: Eric Abrahamsen <eric@ericabrahamsen.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/95500>
2015-02-27 18:25:03 +01:00
Rasmus 8c54b254b1 ox-html: Use upstream MathJax CDN
* ox-html.el (org-html-mathjax-options): Add multlinewidth,
  autonumber, tagindent, font, linebreaks and tagside.  Remove MathML.
  Change default indent to correspond to upstream default.  Change
  default MathJax path to point to upstream CDN.
  (org-html--build-mathjax-config): Remove MathML-related parts.
  (org-html-mathjax-template): Simplifiy template.
* org.texi (@LaTeX{} fragments), (Math formatting in HTML export):
  Reflect change in default CDN.
* ORG-NEWS: Document changes.
2015-02-27 13:57:58 +01:00
Nicolas Goaziou 1c5db20860 ox: Small refactoring
* lisp/ox.el (org-export-collect-footnote-definitions): Small
  refactoring.
2015-02-27 12:06:37 +01:00
Nicolas Goaziou 5738086a6b ox: Small refactoring
* lisp/ox.el (org-export-prune-tree): Small refactoring.
2015-02-27 11:53:24 +01:00
Nicolas Goaziou 80bbf2440a org-element: Fix docstring
* lisp/org-element.el (org-element-set-contents): Fix docstring.
2015-02-27 11:53:00 +01:00
Nicolas Goaziou fc850ce623 ox-odt: Small refactoring
* lisp/ox-odt.el (org-odt--translate-latex-fragments): Small
  refactoring.
2015-02-26 21:39:05 +01:00
Rasmus ac55f280d4 ox-odt: Small fix
* ox-odt.el (org-odt--translate-latex-fragments): Fix small
  bug in cebdec663d.
2015-02-26 16:31:14 +01:00
Rasmus f82dad1237 org.el: More general TeX to MathML convert support
* org.el (org-latex-to-mathml-convert-command): Work with
  other converters than mathtoweb.
  (org-latex-to-mathml-convert-command): Add possibility of
  passing latex-fragment.
* org.texi (Working with @LaTeX{} math snippets): Show LaTeXML config.
2015-02-26 15:49:34 +01:00
Rasmus 398165f5a1 ox-odt: Remove unnecessary space when no date
* ox-odt.el (org-odt-template): Remove unnecessary space in header
  when no date.
2015-02-26 15:49:34 +01:00
Nicolas Goaziou ce7b3fc74b ox-odt: Small fix
* lisp/ox-odt.el (org-odt--translate-latex-fragments): Fix bug
  introduced in cebdec663d.
2015-02-26 15:45:24 +01:00
Nicolas Goaziou cebdec663d ox-odt: Preserve white space when converting LaTeX code
* lisp/ox-odt.el (org-odt--translate-latex-fragments): Preserve white
  space when converting LaTeX code.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/95472>
2015-02-26 15:41:35 +01:00
Nicolas Goaziou f8edfc9fb3 org-macs: Fix `org-string-nw-p'
* lisp/org-macs.el (org-string-nw-p): Return value doesn't depend
  anymore on the current syntax table.

Reported-by: Rasmus Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/95467>
2015-02-26 15:14:40 +01:00
Nicolas Goaziou c1da4d01a9 Small fix
* lisp/org.el (org-fontify-meta-lines-and-blocks-1): Return a non-nil
  value in any case.  This fixes
  37d2a2d1cf.
2015-02-26 09:06:13 +01:00
Nicolas Goaziou 37d2a2d1cf Prevent invisible characters in keywords
* lisp/org.el (org-fontify-meta-lines-and-blocks-1): Forbid invisible
  characters (e.g. bracket links) in all keywords but TITLE, DATE,
  AUTHOR, CAPTION and EMAIL.  Also remove back-end specific keywords,
  which are treated just like any other regular keyword.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/95415>
2015-02-26 00:21:53 +01:00
Nicolas Goaziou 50a0e712cc ox-odt: Fix handling math snippets in captions
* lisp/ox-odt.el (org-odt--translate-latex-fragments): Fix handling
  math snippets in captions.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/95446>
2015-02-25 23:45:15 +01:00
Nicolas Goaziou 1493151b3f ob-core: Improper lists are returned in fixed-width areas
* lisp/ob-core.el (org-babel-insert-result): Improper lists are
  removeable.

When a list cannot be turned into a table, return it in a fixed-width
area so that it can be removed.

Suggested-by: Charles C. Berry <ccberry@ucsd.edu>
<http://permalink.gmane.org/gmane.emacs.orgmode/95430>
2015-02-25 14:41:13 +01:00
Nicolas Goaziou c76f254e8b ox: Fix custom link handling in anonymous back-end
* lisp/ox.el (org-export-custom-protocol-maybe): Change signature.
* contrib/lisp/ox-groff.el (org-groff-link):
* lisp/ox-ascii.el (org-ascii-link):
* lisp/ox-beamer.el (org-beamer-link):
* lisp/ox-html.el (org-html-link):
* lisp/ox-latex.el (org-latex-link):
* lisp/ox-man.el (org-man-link):
* lisp/ox-md.el (org-md-link):
* lisp/ox-odt.el (org-odt-link):
* lisp/ox-org.el (org-org-link):
* lisp/ox-texinfo.el (org-texinfo-link): Apply signature change.

* testing/lisp/test-ox.el (test-org-export/custom-protocol-maybe):
  Update test.

Provide explicitly back-end used instead of guessing it from INFO
channel as an anonymous back-end could be used, masquerading the real
one.

Reported-by: Christian Moe <mail@christianmoe.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/95402>
2015-02-24 15:54:01 +01:00
Nicolas Goaziou ad7b7efcdc ob-core: Fix inserting improper lists
* lisp/ob-core.el (org-babel-insert-result): Fix output when result is
  an improper list, which cannot be turned into a table.

* testing/lisp/test-ob.el (test-ob/org-babel-insert-result--improper-lists):
  New test.

Reported-by: Daniele Pizzolli <dan@toel.it>
<http://permalink.gmane.org/gmane.emacs.orgmode/95348>
2015-02-23 18:44:52 +01:00
Nicolas Goaziou e4da74c452 org-habit: Fix 6652baa39d
* lisp/org-habit.el (org-habit-parse-todo): Fix regexp introduced in
  6652baa39d.
2015-02-22 17:26:21 +01:00
Nicolas Goaziou 6652baa39d org-habit: Small refactoring
* lisp/org-habit.el (org-habit-parse-todo): Small refactoring.
2015-02-22 17:12:56 +01:00
Nicolas Goaziou 4eb4f47141 Simplify `org-show-context' configuration
* lisp/org.el (org-show-context-detail): New variable.
(org-context-choice, org-show-following-heading, org-show-siblings,
org-show-entry-below, org-show-hierarchy-above): Remove variables.
(org-show-set-visibility): New function.
(org-convert-to-oddeven-levels, org-get-location, org-show-context,
org-reveal): Use new function.
(org-link-search): Update docstring.

* lisp/org-agenda.el (org-agenda-cycle-show): Use new function.
(org-agenda-show): Replace missing variable.

* testing/lisp/test-org.el (test-org/show-set-visibility): New test.

* doc/org.texi (Sparse trees):
* doc/orgguide.texi (Sparse trees): Document changes.

* etc/ORG-NEWS: Signal changes.

Configuration of `org-show-context' is done with a single variable
offering six different views, instead of four variables for a total
of 16 configurations.
2015-02-22 14:57:09 +01:00
Nicolas Goaziou 1ba7d23c52 Small fix
* lisp/org.el (org-mode-flyspell-verify): Small fix.
2015-02-22 11:41:01 +01:00
Nicolas Goaziou fa145361ec ox: Allow to narrow scope in footnotes API
* lisp/ox.el (org-export--footnote-reference-map,
  org-export-collect-footnote-definitions,
  org-export-footnote-first-reference-p,
  org-export-get-footnote-number): Allow to specify scope, through
  a new optional argument.

* lisp/ox-odt.el (org-odt-footnote-reference): Apply API change.

* testing/lisp/test-ox.el (test-org-export/footnote-first-reference-p,
  test-org-export/get-footnote-number,
  test-org-export/collect-footnote-definitions): Update tests.
2015-02-21 11:29:40 +01:00
Nicolas Goaziou 719dda85ea ox: Small refactoring
* lisp/ox.el (org-export-document-properties): New variable.
(org-export-prune-tree, org-export-remove-uninterpreted-data): Use new variable.
2015-02-20 18:50:27 +01:00
Nicolas Goaziou 014de0a532 ox: Change `org-export-collect-footnote-definitions' signature
* lisp/ox.el (org-export-collect-footnote-definitions): Refactor
  code.  Change signature.

* testing/lisp/test-ox.el (test-org-export/collect-footnote-definitions):
  New test.
(test-org-export/footnotes): Update test.

* lisp/ox-ascii.el (org-ascii-inner-template):
* lisp/ox-html.el (org-html-footnote-section): Apply signature change.

* etc/ORG-NEWS: Document signature change.

This change makes `org-export-collect-footnote-definitions' compatible
with `org-export-get-footnote-number' and
`org-export-footnote-first-reference-p'.
2015-02-20 18:06:23 +01:00
Nicolas Goaziou 21c6a1e1e9 org-habit: Update copyright year 2015-02-20 16:25:08 +01:00
Nicolas Goaziou de51e1aef6 org-habit: Extend tracking to done notes
* lisp/org-habit.el (org-habit-parse-todo): Also find timestamps when
  `org-log-done' is `note'.

Reported-by: Andrew Francis Swann <swann@math.au.dk>
2015-02-20 10:45:59 +01:00
Rasmus 1616e08448 org.el: Backwards compatibility
* org.el (org-cdlatex-environment-indent): Remove cl-prefixes for
  compatibility.
2015-02-20 01:35:34 +01:00
Rasmus 507d2aae0f Fix bug introduced in 438d75c
* ox-latex.el (org-latex--format-spec): Fix bug.
2015-02-20 00:05:56 +01:00
Rasmus 438d75c59d ox-latex: Format-spec for hyperref and title
* ox-latex.el (org-latex--format-spec): New function with format-specs.
  (org-latex-template): Use org-latex--format-spec.
  (org-latex-hyperref-template): New defaults and use
  org-latex--format-spec.
  (org-latex-title-command): Use org-latex--format-spec.
* ORG-NEWS: Mention change.
2015-02-19 22:41:02 +01:00
Rasmus 14a9510ce1 org.el: Change indention for cdlatex environments
* org.el (org-cdlatex-environment-indent): Use different indent
  algorithm based on content above the new latex-environment.
2015-02-19 22:40:51 +01:00
Nicolas Goaziou 38ab8b2af3 Fix `org-time-stamp'
* lisp/org.el (org-time-stamp): Properly insert time when specified.

This fixes e50baa4cf7.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/95210>
2015-02-19 10:33:26 +01:00
Nicolas Goaziou 7745ef04c9 ob-core: Allow spaces in NAME
* lisp/ob-core.el (org-babel-src-name-w-name-regexp): Allow spaces as
  NAME value.

Suggested-by: Joost Helberg <joost@snow.nl>
<http://permalink.gmane.org/gmane.emacs.orgmode/95175>
2015-02-18 15:02:22 +01:00
Nicolas Goaziou 5894a74500 org-src: Update copyright year 2015-02-18 14:58:36 +01:00
Nicolas Goaziou a5f1a3e4be org-src: Small refactoring
* lisp/org-src.el (org-src--remove-overlay): New function.
(org-src--edit-element, org-src-mode-configure-edit-buffer): Use new
function.
2015-02-18 02:05:57 +01:00
Nicolas Goaziou 2dd548a4e0 Merge branch 'maint' 2015-02-18 02:04:39 +01:00
Nicolas Goaziou c41bbc577e Fix "Wrong type argument: overlayp"
* lisp/org-src.el (org-src-mode-configure-edit-buffer): Fix "Wrong
  type argument: overlayp".

Changing major mode in a source edit buffer resets local variables
used to link it to source buffer.  As a consequence, overlay in source
buffer can no longer be found nor deleted.
2015-02-18 01:59:51 +01:00
Nicolas Goaziou 0d24086657 Update some copyright years 2015-02-16 01:40:07 +01:00
Nicolas Goaziou 7ebe87e2d5 org-element: Forbid footnote references in parsed keywords
* lisp/org-element.el (org-element-object-restrictions): Forbid
  footnote references in parsed keywords.

Inserting footnote references in parsed keywords (e.g., TITLE or
CAPTION) can lead to subtle bugs.  Indeed, it is impossible to know in
time if that particular footnote is going to be used in the output,
and, therefore, if it should count, e.g., in
`org-export-get-footnote-number'.
2015-02-15 21:56:57 +01:00
Nicolas Goaziou 176681bc65 org-footnote: Be more strict about location for new footnotes
* lisp/org-footnote.el (org-footnote--allow-reference-p): New
  function.
(org-footnote-new): Use new function.

* testing/lisp/test-org-footnote.el (test-org-footnote/new): New test.

In particular, Org now refuses to add a footnote reference in
a keyword, e.g., TITLE.
2015-02-15 21:56:57 +01:00
Nicolas Goaziou 13938b87c2 org-element: Faster inline footnotes parsing
* lisp/org-element.el (org-element--pair-square-table): New variable.
(org-element-footnote-reference-parser): Use new variable.
2015-02-15 13:33:25 +01:00
Nicolas Goaziou 836d9db8a9 org-list: Fix continuated items repair
* lisp/org-list.el (org-list-struct-apply-struct): Preserve disparate
  indentation in contuated contents, i.e., contents after a plain list
  still within an item.

* testing/lisp/test-org-list.el (test-org-list/repair): Add test.

This fixes the following case:

  - item
     - child
     item contents
       with different indentation

Reported-by: Mark Edgington <edgimar@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94977>
2015-02-14 12:37:41 +01:00
Nicolas Goaziou 55ce4b74b3 Fix `org-return' on list items
* lisp/org.el (org-return): Properly preserve list structure when
  calling `org-return-indent' on an item.

* testing/lisp/test-org.el (test-org/return): Add test.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/94977>
2015-02-14 02:07:18 +01:00
Nicolas Goaziou e50baa4cf7 Fix `org-time-stamp'
* lisp/org.el (org-time-stamp): Correctly match repeater, if any.
  Refactor code.

* testing/lisp/test-org.el (test-org/time-stamp): New test.

Reported-by: Nicolas Richard <theonewiththeevillook@yahoo.fr>
<http://permalink.gmane.org/gmane.emacs.orgmode/94974>
2015-02-13 21:54:21 +01:00
Nicolas Goaziou 68f094a706 ox-odt: Fix nested footnotes export
* lisp/ox-odt.el (org-odt-footnote-reference): Fix nested footnotes
  export.

Reported-by: Vaidheeswaran <vaidheeswaran.chinnaraju@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94900>
2015-02-13 14:14:39 +01:00
Nicolas Goaziou ccb663c742 ox: Add optional order argument to some footnotes related functions
* lisp/ox.el (org-export--footnote-reference-map): New function.
(org-export-footnote-first-reference-p,
org-export-get-footnote-number): Allow to change order when footnotes
references are contained within footnote definitions.

* testing/lisp/test-ox.el (test-org-export/footnote-first-reference-p):
(test-org-export/get-footnote-number):  New tests.
(test-org-export/footnotes): Update test.
2015-02-13 14:10:51 +01:00
Rainer M. Krug b95f7aa823 ob-core.el: Fix numeric error and add header-args
* lisp/ob-core.el (org-babel-view-src-block-info): when a property
  value was numeric, an error was raised. Fixed by converting property
  value to string before evauation.

* lisp/ob-core.el (org-babel-view-src-block-info): Add property string
  "header args" to output of org-babel-view-src-block-info to make
  debugging of header-args setting problems easier.

* lisp/ob-core.el (org-babel-view-src-block-info): Add property string
  for language specific "header args:LANG" to output of org-babel-view-src-block-info to make
  debugging of header-args setting problems easier.
2015-02-13 00:39:35 +01:00
Nicolas Goaziou 0ed5d4336b ox-publish: Clean-up `org-publish-find-date'
* lisp/ox-publish.el (org-publish-find-date): Remove useless cond
branch.

:date property is never a single timestamp, so the first branch is
always false.

Reported-by: Rasmus <rasmus@gmx.us>
2015-02-13 00:33:17 +01:00
Rasmus 1cc23c6f3d Fix bugs introduced in b39dd5a
* ox-man.el (org-man-template),
  ox-texinfo.el (org-texinfo-template): Fix bug.
2015-02-12 11:00:56 +01:00
Rasmus e6fcc853c5 ox: Optional export of title
* ox.el (org-export-with-title): New variable.
* ox (org-export-options-alist),
  ox-ascii.el (org-ascii-template--document-title),
  ox-beamer.el (org-beamer-template), ox-html.el (org-html-template),
  ox-latex.el (org-latex-template), ox-man.el (org-man-template),
  ox-odt.el (org-odt-template), ox-org.el (org-org-template),
  ox-publish.el (org-publish-project-alist),
  ox-texinfo.el (org-texinfo-template),
  ox-groff.el (org-groff--mt-head): Use new variable.
* ox-koma-letter.el (org-koma-letter-use-title): Mark obsolete.
* test-ox.el (test-org-export/parse-option-keyword): Add :with-title.
* ORG-NEWS, org.texi: Mention org-export-with-title.

This is useful in e.g. ox-html where title can be set via
`org-html-preamble-template' or when using the {{{title}}}-macro.
2015-02-12 01:45:39 +01:00
Nicolas Goaziou fd51dad999 Turn momentarily planning keywords into defvar
* lisp/org.el (org-closed-string, org-deadline-string,
  org-scheduled-string): Use a defvar.

DEADLINE, SCHEDULED and CLOSED are now meant to be constants. However,
we preserve backward-compatibility during obsolencence phase.
2015-02-12 00:46:29 +01:00
Nicolas Goaziou 23d4d869f5 org-agenda: Ignore sticky feature when picking date from calendar
* lisp/org-agenda.el (org-calendar-goto-agenda): Ignore sticky
  feature.

Reported-by: Tory S. Anderson <torys.anderson@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94865>
2015-02-11 23:44:26 +01:00
Nicolas Goaziou d92ef95170 org-agenda: Fix small bug
* lisp/org-agenda.el (org-todo-list): `org-last-args' property
  contains a list, not an atom.
2015-02-10 23:13:56 +01:00
Nicolas Goaziou f620efe1b8 Merge branch 'maint' 2015-02-10 22:27:12 +01:00
Nicolas Goaziou 880a2b4f90 ox-odt: Fix exporting target link without a description
* lisp/ox-odt.el (org-odt-link--infer-description): Fix comment.
(org-odt-link): When link to target has no description, use a number.

Reported-by: Christian Moe <mail@christianmoe.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94815>
2015-02-10 22:23:40 +01:00
Nicolas Goaziou a4083de5c2 Fix typo
* lisp/org.el (org-read-date-analyze): Fix typo.

Reported-by: Charles Millar <millarc@verizon.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/94820>
2015-02-10 17:43:13 +01:00
Nicolas Goaziou 650278f775 org-element: Interpret pseudo objects without declaration
* lisp/org-element.el (org-element-object-containers): New variable
(org-element-interpret-data): Remove optional argument.
(org-element--interpret-data-1): Remove optional argument.  Guess when
a given element or object has a pseudo type.

* lisp/ox-latex.el (org-latex-pseudo-objects): Remove variable.
(org-latex-table, org-latex--math-table): Apply signature change above.

* testing/lisp/test-org-element.el (test-org-element/interpret-data):
  Update test.
2015-02-09 12:04:38 +01:00
Nicolas Goaziou 7f66983184 org-element: Fix docstring
* lisp/org-element.el (org-element-copy): Fix docstring.
2015-02-09 10:57:39 +01:00
Nicolas Goaziou 16841306ed Use `org-element-copy'
* lisp/org.el (org-timestamp-split-range): Use `org-element-copy'.  Do
  not preserve :parent property anymore.

* lisp/ox.el (org-export-as): Use `org-element-copy'.

* testing/lisp/test-org.el (test-org/timestamp-split-range): Update test.
2015-02-09 10:15:59 +01:00
Nicolas Goaziou 70933a3dd6 org-element: Implement `org-element-copy'
* lisp/org-element.el (org-element-copy): New function.
* testing/lisp/test-org-element.el (test-org-element/copy): New test.
2015-02-09 10:07:34 +01:00
Rasmus 8f38f037b4 ox.el: {{{date}}} formatting argument
* ox.el (org-export-as): Allow {{{date}}} to take formatting-argument.
* org.texi (Macro replacement): Document {{{date}}} formatting.
* test-ox.el (test-org-export/expand-macro): Test {{{data(format)}}}
* org-NEWS: Mention optional {{{data}}} argument.

Optional argument to {{{date}}} like {{{date(FMT)}}} are treated
similar to {{{time(FMT)}}} if \#+DATE is a timestamp.
2015-02-09 01:47:21 +01:00
Yuri D. Lensky ba544e4caa Fix timestamp-based sorting of tags-based entries in agenda
* lisp/org.el (org-scan-tags): Fix agenda org tags scans to properly
  add timestamp property, completely analogously to
  org-agenda-get-todos.
* lisp/org-agenda.el (org-agenda-entry-get-agenda-timestamp,
  org-agenda-get-todos): Factored timestamp retrieval code out to
  separate function org-agenda-entry-get-agenda-timestamp from
  org-agenda-get-todos.

Before this fix, timestamps were ignored when sorting agenda views of
the 'tags' and 'tags-todo' types.

TINYCHANGE
2015-02-09 01:08:42 +01:00
Nicolas Goaziou 0be8495d01 Call `org-insert-heading' instead of (insert "* ")
* lisp/org-agenda.el (org-agenda-insert-diary-as-top-level):
* lisp/org.el (org-link-search):  Call `org-insert-heading' instead
  of (insert "* ").

This allows, in particular, to run `org-insert-heading-hook' and
possibly fix up blank lines around.
2015-02-08 01:45:38 +01:00
Nicolas Goaziou ca0199c7ee `org-insert-heading' can be forced to insert top-level headline
* lisp/org.el (org-insert-heading): Change signature.  Tiny refactoring.
* testing/lisp/test-org.el (test-org/insert-heading): Add tests.
2015-02-08 01:43:30 +01:00
Alan Schmitt 6d691e2aa8 Function `org-link-search' does exact headline search
* lisp/org.el (org-link-search): Change headline search such that it
always does an exact search, ignoring spaces.

* testing/lisp/test-org.el (test-org/fuzzy-links): Test exact headline
match with spaces and cookies.

* doc/org.texi (External links): Cleanup footnote about the
`org-link-search-must-match-exact-headline' option for text searches
and add a footnote about the effect of the same option for heading
searches.

* doc/ORG-NEWS: Document changes.
2015-02-07 22:42:40 +01:00
Nicolas Goaziou 7e4228a137 org-agenda: Fix logging with bulk agenda commands
* lisp/org-agenda.el (org-agenda-new-marker): Make sure data inserted
  inserted in the heading above marker updates it.
(org-agenda-bulk-action): Enforce calling `org-add-log-note' after
each action.

Reported-by: Maxim Baz <z0rch.coding@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94654>
2015-02-06 09:52:25 +01:00
Nicolas Goaziou ab9e9d2857 Tiny refactoring
* lisp/org.el (org-ctrl-c-ctrl-c): Tiny refactoring.
2015-02-05 18:12:23 +01:00
Nicolas Goaziou 528b909fe1 ox-html: Properly escape ampersands in links
* lisp/ox-html.el (org-html-link): Properly escape ampersands in
  links.
(org-html-encode-plain-text): Small refactoring.

Reported-by: Karl Voit <devnull@Karl-Voit.at>
<http://permalink.gmane.org/gmane.emacs.orgmode/94640>
2015-02-05 12:56:23 +01:00
Nicolas Goaziou 226639b239 org-agenda: Fix adding diary entries
* lisp/org-agenda.el (org-agenda-insert-diary-make-new-entry): Fix
  adding adding diary entries the same day.

This is a follow-up to a1116aa54e.

Reported-by: Gregor Zattler <telegraph@gmx.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/94638>
2015-02-05 10:00:46 +01:00
Nicolas Goaziou 55c0708bc4 org-element: Externalize docview links
* lisp/org-element.el (org-element-link-type-is-file): Remove.
(org-element-link-parser): Do not treat specially anymore "docview"
link type.

* testing/lisp/test-org-element.el (test-org-element/link-parser):
  Update test.

* lisp/org-docview.el (org-docview-export): Fix path.

"docview" is a custom link type handled in its own library.  There is
no reason to include it in core parser.
2015-02-03 23:00:21 +01:00
Nicolas Goaziou 4c00842e88 Fix `org-toggle-heading'
* lisp/org.el (org-toggle-heading): Avoid adding spurious stars when
  changing a plain list into a subtree.

Reported-by: Rainer Stengele <rainer.stengele@online.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/94223>
2015-02-03 21:39:53 +01:00
Nicolas Goaziou 1d4c79d415 org-agenda: Fix agenda diary corruption
* lisp/org-agenda.el (org-agenda-insert-diary-make-new-entry): Do not
  save excursion or final position is lost.

Reported-by: Gregor Zattler <grfz@gmx.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/94543>
2015-02-02 18:19:30 +01:00
Konubinix 2ebb14d746 Make use of `org-insert-heading' instead of inserting the * character
* lisp/org-agenda.el (org-agenda-insert-diary-as-top-level): Make
  use of `org-insert-heading' instead of inserting the * character

Therefore, the hooks associated to the insertion of a heading will be
triggered.  Since those hooks may cause the creation of some
metadata.  `org-end-of-meta-data' is used afterward.
2015-02-02 13:24:37 +01:00
Nicolas Goaziou b5d9f4be4d org-table: Allow accentuated characters in remote table names
* lisp/org-table.el (org-table-eval-formula): Allow a larger set of
  characters in remote name.

Reported-by: flav <flav.justflav@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/75690>
2015-02-01 01:03:45 +01:00
Sami Airaksinen c90925be29 org.el: org-babel-load-file loads first tangle file
(org-babel-load-file): When org-mode FILE has multiple target files
for tangle blocks, `exported-file' will be set to last found
target file, which might not be the `file'.

Therefore fix for this bug is to select the last element of that
tangled file list, which is the tangle target file of the first found
tangle block, most typically the `file'.

TINYCHANGE
2015-02-01 00:02:21 +01:00
Nicolas Goaziou a752684bf0 org-clock: Fix `org-clock-in-last' with universal argument
* lisp/org-clock.el (org-clock-in-last): `org-clock-in' expects an
  universal argument, not the return value of `org-clock-select-task'.

Reported-by: Peter Münster <pmlists@free.fr>
<http://permalink.gmane.org/gmane.emacs.orgmode/94331>
2015-01-31 12:46:50 +01:00
Charles Berry 37fc8667e0 ob-core.el: inline src block removal bugfix
* ob.core.el (org-babel-remove-inline-result): Removing an inline src
  block result removes all whitespace preceding it. The function is
  now `interactive'.

  * ob-core.el (org-babel-insert-result): The call to
  `org-babel-remove-inline-result' preceeds insertion of whitespace
  and setting location of local variable `inlinep'.

  Daniele Pizzolli reported that cleaning a buffer by evaluating
  `org-babel-remove-inline-result' can leave unwanted whitespace.  That
  bug is fixed, and the function is made `interactive'.
2015-01-30 19:27:54 -08:00
Nicolas Goaziou fe63e59faf Small refactoring
* lisp/org.el (org-log-beginning):
* lisp/org-agenda.el (org-agenda-insert-diary-make-new-entry): Small
  refactoring.
2015-01-30 19:41:02 +01:00
Nicolas Goaziou 98a1bc868a Replace `org-end-of-meta-data-and-drawers'
* lisp/org.el (org-end-of-meta-data): New function.
(org-end-of-meta-data-and-drawers): Remove function.

* lisp/org-capture.el (org-capture-place-plain-text): Use new
  function.

* testing/lisp/test-org.el (test-org/end-of-meta-data): New test.

* etc/ORG-NEWS: Document removal.
2015-01-30 19:31:27 +01:00
Kyle Meyer 7834a1ce66 org-agenda: Add only-window setup option
* lisp/org-agenda.el (org-agenda-window-setup, org-agenda-prepare-window):
  Add option to show agenda as the only window in the current frame.
2015-01-30 10:39:53 +01:00
Nicolas Goaziou a1116aa54e Fix `org-agenda-insert-diary-make-new-entry'
* lisp/org-agenda.el (org-agenda-insert-diary-make-new-entry): Ensure
  point is at a real body line and not in front of meta data, so
  regular contents can be inserted safely after a call to this
  function.

Reported-by: Samuel Loury <konubinix@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94482>
2015-01-30 10:23:47 +01:00
Nicolas Goaziou 31e7634779 Fix special properties list
* lisp/org.el (org-special-properties): Add missing "CATEGORY".

* doc/org.texi (Special properties): Remove "NOBLOCKING" as a special
  property, since it can only be set through a properties drawer.
  This is a reserved property.

Reported-by: Samuel Loury <konubinix@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94483>
2015-01-30 09:55:31 +01:00
Nicolas Goaziou 5ae0749e63 ox-html: Do not output "nil" for empty sections
* lisp/ox-html.el (org-html-section): Do not output "nil" when section
  has no contents.

Reported-by: T.F. Torrey <tftorrey@tftorrey.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94464>
2015-01-30 00:31:33 +01:00
Nicolas Goaziou e33637551d ob-core: Silence byte-compiler 2015-01-30 00:24:22 +01:00
Nicolas Goaziou 8ff32ab112 Be more cautious when preserving visibility
* lisp/org-element.el (org-element-swap-A-B):
* lisp/org-list.el (org-list-swap-items):
(org-list-send-item): In order to preserve visibility of moved items
or elements, only consider inner overlays.

Reported-by: Michael Brand <michael.ch.brand@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94320>
2015-01-30 00:20:01 +01:00
Charles Berry 85ff663ce4 lisp/ob-core.el: Inline source block / babel call results are replaceable
* lisp/ob-core.el (org-babel-remove-inline-result): Delete results of
  current inline src block or inline babel call if it is wrapped in a
  "{{{results(.*)}}}" macro call.

* lisp/ob-core.el (org-babel-get-lob-one-liner-matches): Ensure that
  the point ends up on the same line as, and just before, `call_'
  before setting match-data.

* ob-core.el (org-babel-get-inline-src-block-matches): Use
  `org-element-context' and friends to find inline-src-block.  When
  point is in an inline-src-block (including white space determined by
  :post-blank) set match-data and return `t'.

* lisp/ob-core.el (org-babel-insert-result): Delete any `results'
  macro following current inline src block or babel call; insert
  current value in 'results' macro possibly wrapping RESULT in an
  export snippet or inline source block first.  Use of `:results list'
  or `:results table', or use of a multiline RESULT (after stripping a
  trailing newline) or a list RESULT from an inline src block or babel
  call throws an error.
2015-01-29 12:05:31 -08:00
Charles Berry f301ac8e9f ob-exp.el: Enable removal of {{{results(...)}}}
* ob-exp.el (org-babel-exp-do-export): `clean' lambda form removes inline
  results wrapped in `results{{{(' and `)}}}' by calling
  `org-babel-remove-inline-result'.
2015-01-29 12:05:31 -08:00
Charles Berry 638cde3ac9 lisp/ox.el: Enable removable inline src results
* lisp/ox.el: (org-export-as): Treat `results' as an `identity' macro
  with one argument after Babel executes.
2015-01-29 12:05:31 -08:00
Nicolas Goaziou f7a1e23d20 ox-org: Allow custom export for links
* lisp/ox-org.el (org-org-link): New function.

This patch allows to handle `org' export format in EXPORT argument
from `org-add-link-type'.

Suggested-by: John Kitchin <johnrkitchin@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94439>
2015-01-29 19:31:03 +01:00
Nicolas Goaziou a1f54021c9 org-element: Remove :alt-title property for headlines
* lisp/org-element.el (org-element-headline-parser): Remove :alt-title.
* lisp/ox.el (org-export-get-alt-title): Check regular :ALT_TITLE
  property instead of :alt-title.

`:alt-title' is an export-specific property. As a consequence, it's
value doesn't need to be parsed at "org-element.el"'s level. There, it
is treated as a regular property : `ALT_TITLE'.

This also removes the last call to
`org-element-parse-secondary-string' from "org-element.el".
2015-01-28 11:41:39 +01:00
Nicolas Goaziou e1862b5c44 ox-ascii: Fix indentation for description lists with links in tags
* lisp/ox-ascii.el (org-ascii--current-text-width): Compute contents'
  text width according to exported tag instead of original one.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/94416>
2015-01-28 11:29:43 +01:00
Nicolas Goaziou 98ee739e6d org-element: Avoid `org-element-parse-secondary-string'
* lisp/org-element.el (org-element-headline-parser,
  org-element-inlinetask-parser, org-element-item-parser,
  org-element--collect-affiliated-keywords): Use
  `org-element--parse-objects' instead of
  `org-element-parse-secondary-string' when parsing live objects in
  secondary strings.

`org-element-parse-secondary-string' parses a given string in
a temporary buffer, rendering buffer position related
properties (e.g., :begin) invalid.

Reported-by: John Kitchin <johnrkitchin@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94397>
2015-01-27 22:25:15 +01:00
Nicolas Goaziou 6617e6dfa9 org-element: Tiny refactoring
* lisp/org-element.el (org-element-headline-interpreter,
  org-element-inlinetask-interpreter): Use format control string
  instead of calling `char-to-string'.
2015-01-27 17:49:22 +01:00
Nicolas Goaziou 6dc26059cb Merge branch 'master' of orgmode.org:org-mode 2015-01-27 15:35:56 +01:00
Rasmus a297692b1c ox-html: Remove extra HTML_HEAD, HTML_HEAD_EXTRA
* ox-html.el (html): Fix typo.
2015-01-27 03:30:43 +01:00
Nicolas Goaziou 96b02fa9a6 org-element: Tiny refactoring
* lisp/org-element.el (org-element-map): Reduce consing and improve
  readability at the price of a tiny code duplication.
2015-01-26 19:45:45 +01:00
Aaron Ecay 076e0ea518 Fix error messages.
* lisp/ob-coq.el (org-babel-coq-initiate-session):
* lisp/ob-latex.el (org-babel-execute:latex):
* lisp/org-macro.el (org-macro-replace-all):
* lisp/org.el (org--get-display-dpi): Fix formatting of error
messages.
2015-01-26 02:53:15 -05:00
Nicolas Goaziou cd6fa4c15e org-element: Optimize `org-element-map'
* lisp/org-element.el (org-element--parsed-properties-alist): New
  variable.
(org-element-map): Remove unnecessary funcalls.  Externalize some
computations in the variable above.
2015-01-25 12:32:03 +01:00
Nicolas Goaziou 61eedb852f ob-core: Fix error messages
* lisp/ob-core.el (org-babel--script-escape-inner,
  org-babel-script-escape): Error messages do not end with a full
  stop.
2015-01-24 23:20:46 +01:00
Nicolas Goaziou b6fce5c90b ox: Prune parse tree before calling tree filter
* lisp/ox.el (org-export-collect-tree-properties): Do not
  set :ignore-list.
(org-export--populate-ignore-list): Remove function.
(org-export--selected-trees): Small refactoring.
(org-export-prune-tree): New function.
(org-export-remove-uninterpreted-data): Fix docstring.
(org-export-as): Prune tree before calling tree filter.

* testing/lisp/test-ox.el (org-test-with-parsed-data): Fix macro.

This patch introduces two changes in the export process:

  1. Non-exported elements are removed from the tree instead of being
     moved into an ignore list (with the exceptions of tables rows
     and cells)

  2. Parse tree filter is called on the tree being exported, not the
     original one.

Reported-by: Eric S Fraga <e.fraga@ucl.ac.uk>
<http://permalink.gmane.org/gmane.emacs.orgmode/94162>
2015-01-23 23:59:23 +01:00
Aaron Ecay 3996de60da ob-R: Convert some defvars to defconsts.
* lisp/ob-R.el (org-babel-R-eoe-indicator):
(org-babel-R-eoe-output): Convert from defvar to defconst.
(org-babel-R-write-object-command): Convert from defvar to defconst.
Add line breaks and indentation.
2015-01-23 14:39:30 -05:00
Aaron Ecay fa5fd63516 babel: fix up org-babel-script-escape
* lisp/ob-core.el (org-babel--script-escape-inner): New function.
(org-babel-script-escape): Use it.
* testing/lisp/test-ob.el (test-org-babel/script-escape): New test.
2015-01-23 14:36:40 -05:00
Aaron Ecay d067982b59 babel: Remove functions which are just indirection around org-babel-script-escape
* lisp/ob-groovy.el (org-babel-groovy-table-or-string): Remove.
(org-babel-groovy-evaluate): Call `org-babel-script-escape' instead.
* lisp/ob-haskell.el (org-babel-haskell-table-or-string): Remove.
(org-babel-execute:haskell): Call `org-babel-script-escape' instead.
* lisp/ob-io.el (org-babel-io-table-or-string): Remove.
(org-babel-io-evaluate):Call `org-babel-script-escape' instead.
* lisp/ob-scala.el (org-babel-scala-table-or-string): Remove.
(org-babel-scala-evaluate): Call `org-babel-script-escape' instead.
2015-01-23 14:36:40 -05:00
Aaron Ecay c4f34a69b5 babel: Remove functions which are never called.
* lisp/ob-awk.el (org-babel-awk-table-or-string):
* lisp/ob-shell.el (org-babel-sh-table-or-results): Remove.
2015-01-23 14:36:40 -05:00
Nicolas Goaziou 53592f4e25 org-table: Fix typo
* lisp/org-table.el (org-table-show-reference): Fix typo.
2015-01-23 00:16:58 +01:00
Aaron Ecay a0095ce1a7 ob-python: Convert two defvars to defconsts.
* lisp/ob-python.el (org-babel-python-wrapper-method):
(org-babel-python-pp-wrapper-method): Convert from defvar to defconst.
2015-01-22 01:55:23 -05:00
Aaron Ecay 9f75cea40d Obsolete ‘org-at-regexp-p’.
* lisp/org.el (org-at-regexp-p): Remove, adding an obsolete function
alias.
(org-in-regexp): Tidy docstring.
(org-open-at-point):
(org-between-regexps-p):
* lisp/org-table.el (org-table-fedit-shift-reference):
(org-table-show-reference): Call ‘org-in-regexp’ instead.
2015-01-22 01:52:49 -05:00
Aaron Ecay caad78ca8a babel: Fix bug in ‘org-babel-lob-get-info’.
* lisp/ob-lob.el (org-babel-lob-get-info): Use `save-match-data'.

Callers rely on the match data being set to
‘org-babel-lob-one-liner-regexp’.
2015-01-22 00:47:48 -05:00
Aaron Ecay d45b5a7884 babel: Fix bug in org-babel-get-inline-src-block-matches.
* lisp/ob-core.el (org-babel-get-inline-src-block-matches): Use
`org-looking-at-p' instead of `thing-at-point'.

The latter could give odd results depending on the syntax table.  In
particular, for me (thing-at-point 'word) was returning src_foo in
this context.
2015-01-22 00:44:42 -05:00
Nicolas Goaziou f15b17688c ox: Fix docstrings
* lisp/ox.el (org-export-dictionary, org-export-translate): Fix spaces
  at the end of sentences.  Do not upcase `car' and `cdr'.
2015-01-22 00:23:06 +01:00
Nicolas Goaziou 6b450ce81c ox: Remove `org-export-ignore-element'
* lisp/ox.el (org-export-ignore-element): Remove function.
(org-export-collect-tree-properties): Do not assume users can
modify :ignore-list export property.

* testing/lisp/test-ox.el (test-org-export/user-ignore-list): Remove
  test.

:ignore-property is an implementation detail, which should not be
exposed to users.  Also, it is easier to simply remove the element to
ignore from the parse tree with `org-element-extract-element'.
2015-01-22 00:11:35 +01:00
Nicolas Goaziou cf77de2c3a Fix docstrings
* lisp/org.el (org-next-visible-heading,
  org-previous-visible-heading): Shorten summary.  Fix typo.
2015-01-21 23:44:21 +01:00
Aaron Ecay 9348b5f1b0 Add new functions to move to the next/prev headline skipping inline tasks.
* lisp/org.el (org-next-visible-heading):
(org-previous-visible-heading): New functions.
(org-speed-commands-default, org-mode-map): Use them.
2015-01-20 18:55:07 -05:00
Aaron Ecay 37e0fd2318 ob-asymptote, ob-emacs-lisp: remove spurious declare-function calls.
* lisp/ob-asymptote.el:
* lisp/ob-emacs-lisp.el: Remove spurious `declare-function's.
2015-01-20 18:42:56 -05:00
Nicolas Goaziou ec0706ea40 macro: Implement argument extracting and escaping functions
* lisp/org-macro.el (org-macro-escape-arguments,
  org-macro-extract-arguments): New functions.

* lisp/org-element.el (org-element-macro-parser): Use new function.

* testing/lisp/test-org-macro.el (test-org-macro/escape-arguments,
  test-org-macro/extract-arguments): New tests.
2015-01-21 00:27:24 +01:00
Nicolas Goaziou 9fc8e3c0fa `org-open-link' follows timestamps in properties
* lisp/org.el (org-open-at-point): Follow timestamps in properties
  drawers.  Refactor.

Suggested-by: Marco Wahl <marcowahlsoft@gmail.com>
2015-01-20 21:42:12 +01:00
Aaron Ecay d34b804a6f org: Calculate dpi directly.
* lisp/org.el (org--get-display-dpi): New function.
(org-create-formula-image-with-dvipng):
(org-create-formula-image-with-imagemagick): Use it.

The previous method tried to calculate the display dpi from the font
height, but this is wonky and not necessary, since it can be
calculated directly.
2015-01-19 00:34:56 -05:00
Aaron Ecay 05ac7b37a4 org.el: org-toggle-inline-images: Only display messsages when interactive.
* lisp/org.el (org-toggle-inline-images): Only message if
called-interactively-p.

The old code made a halfhearted attempt to do this; this patch
provides the other half of the heart.
2015-01-19 00:16:51 -05:00
Aaron Ecay b3712b9840 ob-ocaml: Add a cautionary comment about dodgy regex use.
* lisp/ob-ocaml.el (org-babel-ocaml-read-list): Add comment
2015-01-18 23:47:36 -05:00
Aaron Ecay f1dcbfe79c org-footnote: Use a simpler method to generate random labels.
* lisp/org-footnote.el (org-footnote-new): Improve generation of
random labels.
2015-01-18 23:46:02 -05:00
Aaron Ecay 56bbacfd89 org-compat: obsolete org-activate-mark.
* lisp/org-compat.el (org-activate-mark): Make obsolete.

The activate-mark function was introduced in Emacs 23 and
org-activate-mark wasn’t called anywhere in the code base.
2015-01-18 23:42:32 -05:00
Nicolas Goaziou d1c5dc2e41 Fix `org-set-visibility-according-to-property'
* lisp/org.el (org-set-visibility-according-to-property): Ensure state
  is exctracted from a real node property.  Ignore narrowing.
2015-01-18 17:00:49 +01:00
Nicolas Goaziou 71610b19ff Remove `org-in-drawer-p'
* lisp/org.el (org-in-drawer-p): Remove function.

The function is unused, and slightly wrong.
2015-01-17 23:42:00 +01:00
Nicolas Goaziou b5072890c3 Fix "Args out of range" when demarcating blocks
* lisp/ob-core.el (org-babel-demarcate-block): Return value from
  `org-babel-where-is-src-block-head' may be nil.

Reported-by: Sébastien Vauban
<http://permalink.gmane.org/gmane.emacs.orgmode/93978>
2015-01-13 17:18:12 +01:00
Nicolas Goaziou fdb0092830 ob-core: Refactor `org-babel-where-is-src-block-head'
* lisp/ob-core.el (org-babel-where-is-src-block-head): Refactor.  In
  particular, do not return a marker, ever.  Also update docstring.
* testing/lisp/test-ob.el (test-ob/org-babel-remove-result--results-org):
  Fix tests containing invalid Org syntax.
2015-01-13 17:16:45 +01:00
Marco Wahl e0879b03d0 Merge branch 'maint' 2015-01-12 13:02:20 +01:00
Marco Wahl ca21b7b86d org*.el: Fix call to calendar API
* lisp/org-clock.el: Replace occurances of
'calendar-absolute-from-iso' with 'calendar-iso-to-absolute'.

* lisp/org-agenda.el: Same as above.

* lisp/org.el: Same as above.

Some (long marked obsolete) calendar entities have been dropped from
Emacs recently.  One of those is 'calendar-absolute-from-iso'.
2015-01-12 12:35:10 +01:00
Rasmus 86588d6501 ox-html.el: Fix bug introduced in 077a24b
* ox-html.el (org-html-format-list-item): Check that contents in
  non-nil.
2015-01-12 12:00:49 +01:00
Nicolas Goaziou b07e2f6ff1 ox: Implement local table of contents
* lisp/ox.el (org-export-collect-headlines): Allow to collect
  headlines locally.
* testing/lisp/test-ox.el (test-org-export/collect-headlines): Add
  tests.

* lisp/ox-ascii.el (org-ascii--build-toc):
(org-ascii-keyword):
* lisp/ox-html.el (org-html-toc):
(org-html-keyword):
* lisp/ox-odt.el (org-odt-toc): Allow local table of contents.
(org-odt--format-toc): New function.
(org-odt-begin-toc, org-odt-end-toc): Remove functions.

* lisp/ox-latex.el (org-latex-logfiles-extensions): Optionally remove
  "ptc" files.
(org-latex-headline, org-latex-keyword): Implement partial table of
contents assuming "titletoc" package is loaded.

* etc/ORG-NEWS:
* doc/org.texi (Table of contents): Document new parameter.
2015-01-11 22:47:02 +01:00
Oleh Krehel 6c811ac861 Fix docstring
* lisp/org.el (org-insert-time-stamp): Add a reference to
  `format-time-string'.
2015-01-10 22:28:18 +01:00
Zane D. Purvis 7e6436e2c8 ox-html.el: Add exporting of priority
* list/ox-html.el (org-html--priority): New function.
(org-html-format-headline-default-function): Call `org-html--priority'.
(org-html-style-default): Add `.priority'.

HTML export previously did not support exporting of priority simply by setting
`org-export-with-priority' to `t'.

TINYCHANGE
2015-01-10 10:27:32 +01:00
Zane D. Purvis f9ba99bbc9 ox-html.el: DONE is monospace for consistency
* lisp/ox-html.el (org-html-style-default): `.done' gets `font-family:
monospace;'

Other items on the headline that aren't the text itself are monospaced,
including non-DONE todo's.

TINYCHANGE
2015-01-09 09:22:03 +01:00
Nicolas Goaziou 3d2e1eec78 org-colview: Fix user properties display
* contrib/lisp/org-colview-xemacs.el (org-columns-display-here):
(org-columns-display-here-title):
(org-columns-edit-value):
(org-columns-next-allowed-value):
(org-columns-new):
(org-columns-widen):
(org-columns-get-autowidth-alist):
(org-columns-update):
(org-columns-compute):
(org-agenda-columns):
(org-agenda-colview-summarize):
(org-agenda-colview-compute):

* lisp/org-colview.el (org-columns-display-here):
(org-columns-display-here-title):
(org-columns-edit-value):
(org-columns-next-allowed-value):
(org-columns-new):
(org-columns-widen):
(org-columns-get-autowidth-alist):
(org-columns-update):
(org-columns-compute):
(org-agenda-columns):
(org-agenda-colview-summarize):
(org-agenda-colview-compute): Properties are case-insensitive.

Reported-by: Eric S Fraga <e.fraga@ucl.ac.uk>
<http://permalink.gmane.org/gmane.emacs.orgmode/93854>
2015-01-07 18:08:51 +01:00
Nicolas Goaziou ef523b0bca org-table: Fix `orgtbl-to-unicode'
* lisp/org-table.el (orgtbl-to-unicode): Remove dummy property.
2015-01-07 00:30:34 +01:00
Nicolas Goaziou b7b913f656 ox-latex: Ignore width parameter in tabular environment
* lisp/ox-latex.el (org-latex--org-table): Ignore width parameter in
  tabular environment.

Reported-by: Giuseppe Lipari <giulipari@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/93815>
2015-01-06 23:30:54 +01:00
Nicolas Goaziou 85c55d453b Fix `org-read-date-prefer-future' when rescheduling
* lisp/org.el (org-read-date-analyze): When
  `org-read-date-prefer-future', offer a date in the future even if
  default date is different from now.

* testing/lisp/test-org.el (test-org/org-read-date): Add tests.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/93805>
2015-01-06 23:19:42 +01:00
Nicolas Goaziou 18f50c4a20 Fix docstring
* lisp/org.el (org-add-link-type): Remove reference to non-existent
  `org-export-normalize-links' function.
2015-01-05 17:47:53 +01:00
Kyle Meyer 7e945107ce org-agenda: Fix issues with restoring windows
* lisp/org-agenda.el (org-agenda-prepare-window): Update window
  configuration even when agenda buffer exists in background.
* lisp/org-agenda.el (org-agenda-Quit): Use buffer value for
  org-agenda-pre-window-conf to allow for local values used with sticky
  agenda buffers.
* lisp/org-agenda.el (org-agenda-quit): Reset local, not global, value for
  org-agenda-pre-window-conf.
* lisp/org-agenda.el (org-agenda--quit): New function.

Update the pre-agenda window configuration on the next agenda call even
if org-agenda-pre-window-conf is non-nil (which occurs when the agenda
buffer is exited without q, Q, or X).  This prevents restoring a window
configuration that is not the one prior to the most recent agenda call.

Make org-agenda-Quit (Q) restore the buffer-local, not the global, value
for org-agenda-pre-window-conf so that it works correctly with sticky
agenda buffers.

Along with these changes, merge the duplicated functionality of
org-agenda-quit and org-agenda-Quit into a new function,
org-agenda--quit.
2015-01-05 12:49:44 +01:00
Kyle Meyer 460f31efa0 org-agenda: Track last indirect buffer
* lisp/org-agenda.el (org-agenda-tree-to-indirect-buffer): Record last
  indirect buffer for agenda.
* lisp/org-agenda.el (org-agenda-quit): Delete window for
  org-agenda-last-indirect-buffer, not org-last-indirect-buffer.

Introduce a new variable, org-agenda-last-indirect-buffer, that is
specific for the agenda (and perhaps a particular agenda buffer, if
org-agenda-sticky is set).  This prevents org-agenda-quit from deleting
a window if it is displaying a buffer that was created through a
org-tree-to-indirect-buffer call outside of
org-agenda-tree-to-indirect-buffer.

Make org-agenda-Quit check for indirect buffer windows, like
org-agenda-quit does.
2015-01-05 12:49:41 +01:00
Nicolas Goaziou 70f965535b org-table: Ignore filters and hooks in radio tables
* lisp/org-table.el (orgtbl-to-generic): Ignore user-defined filters
  and hooks.

* testing/lisp/test-org-table.el (test-org-table/to-generic): Add
  tests.

Suggested-by: Aaron Ecay <aaronecay@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/93795>
2015-01-05 12:39:26 +01:00
Nicolas Goaziou 3900155788 Implement `org-export-custom-protocol-maybe' and use it
* lisp/ox.el (org-export-custom-protocol-maybe): New function.
* contrib/lisp/ox-groff.el (org-groff-link):
* lisp/ox-ascii.el (org-ascii-link):
* lisp/ox-beamer.el (org-beamer-link):
* lisp/ox-html.el (org-html-link):
* lisp/ox-latex.el (org-latex-link):
* lisp/ox-man.el (org-man-link):
* lisp/ox-md.el (org-md-link):
* lisp/ox-odt.el (org-odt-link):
* lisp/ox-texinfo.el (org-texinfo-link): Use new function.

* testing/lisp/test-ox.el (test-org-export/custom-protocol-maybe): New
  test.
2015-01-04 22:16:36 +01:00
Nicolas Goaziou 8ce845ba6c ox: Tiny refactoring
* lisp/ox.el (org-export-inline-image-p): Tiny refactoring.
2015-01-04 21:13:27 +01:00
Kyle Meyer b4b6584eea org-agenda-Quit: Remove unnecessary function calls
* lisp/org-agenda.el (org-agenda-Quit): Remove unnecessary function calls.

- org-agenda-Quit turns off column view if it is active, instead of
  killing the agenda buffer, so there is no need to call
  org-columns-remove-overlays when killing the buffer.
- org-agenda-reset-markers is already called when the kill-buffer-hook
  is run.
2015-01-03 12:15:58 +01:00
Kyle Meyer 722a574d88 org-agenda-exit: Check column view
* lisp/org-agenda.el (org-agenda-exit): Exit column view before trying to
  exit agenda.

Running org-agenda-exit in column view deleted all buffers loaded by the
agenda, but it didn't actually exit the agenda because, if the agenda is
in column view, org-agenda-Quit turns off column view instead of killing
the agenda.  So org-agenda-exit should either just quit column view if
it is active (and not delete the loaded buffers or quit the agenda) or
make sure that the agenda is not in column view before killing it.
Since org-agenda-Quit and org-agenda-quit already do the former, make
org-agenda-exit completely exit the agenda regardless of whether it is
in column view.
2015-01-03 12:15:54 +01:00
Kyle Meyer 424eb55263 org-agenda: Fix exiting function docstrings
* lisp/org-agenda.el (org-agenda-Quit):
* lisp/org-agenda.el (org-agenda-quit):
* lisp/org-agenda.el (org-agenda-exit): Correct and expand docstrings.
2015-01-03 12:15:50 +01:00
Nicolas Goaziou 10954832e5 ox-ascii: Handle (custom-)id links to unnumbered headlines
* lisp/ox-ascii.el (org-ascii--describe-links): When a headline is
  unnumbered, refer to its title instead of dropping the ball.
2015-01-01 21:37:35 +01:00
Nicolas Goaziou 8b0823b3e0 ox-ascii: Handle custom export functions for links
* lisp/ox-ascii.el (org-ascii-link): Obey to export function provided
  through `org-add-link-type'.
(org-ascii--describe-links): Do not turn links above into notes.
2015-01-01 21:28:02 +01:00
Nicolas Goaziou 44744bba2c org-table: Fix freeze with invalid hline reference
* lisp/org-table.el (org-table-find-row-type): Don't end up on the
  last hline, which doesn't exist, per
  e793158bc8.

Reported-by: Artis Rozentāls <artis.rozentals@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/93654>
2014-12-30 22:37:44 +01:00
Rasmus 9528bef2a8 Merge branch 'include' 2014-12-24 18:43:34 +01:00
Nicolas Goaziou 52638c17e5 Fix typo
* lisp/org.el (org-outline-level): Fix typo.
2014-12-24 17:28:48 +01:00
Rasmus 130dcdb0cb ox.el: Infer :minlevel for INCLUDE-keywords
* ox.el (org-export-expand-include-keyword): Infer :minlevel for
included Org documents if not set explicitly.
* test-ox.el (org-export-expand-include-keyword): Add tests for inferred :minlevel.
2014-12-24 12:44:51 +01:00
rasmus 7509d6d721 ox.el: Fix footnote-bug in #+INCLUDE-keyword
* ox.el (org-export--prepare-file-contents): Preserve footnotes
when using the LINES argument.  New optional argument FOOTNOTES.
 (org-export-expand-include-keyword): New optional argument
 FOOTNOTES.
* test-ox.el (test-org-export/expand-include): Add test for INCLUDE
  with :lines and footnotes.
2014-12-24 11:58:50 +01:00
Nicolas Goaziou 4947d25c7c ob-core: Add safety test for results keyword value
* lisp/ob-core.el (org-babel-results-keyword): Add safety test.  Fix
  docstring.
2014-12-24 10:35:20 +01:00
Nicolas Goaziou be05318515 ob-core: Fix docstring
* lisp/ob-core.el (org-babel-results-keyword): NAME cannot be used for
  results, as it is a reserved affiliated keyword.
2014-12-24 10:29:44 +01:00
Nicolas Goaziou c6d9a4ec22 Fix false positive SCHEDULED lines in sparse tree
* lisp/org.el (org-check-before-date, org-check-after-date,
  org-check-dates-range): Make sure we're really at a timestamp before
  validating the entry.

Reported-by: James Harkins <jamshark70@qq.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/93126>
2014-12-23 12:22:16 +01:00
Nicolas Goaziou f0a13a09d8 Implement `org-at-planning-p'
* lisp/org.el (org-at-planning-p): New function.
* testing/lisp/test-org.el (test-org/at-planning-p): New test.
2014-12-23 12:14:40 +01:00
Nicolas Goaziou 1c5014740e Compare `org-current-level' and `org-outline-level'
* lisp/org.el (org-outline-level, org-current-level): Update
  docstrings to insist on the difference between the two functions.
2014-12-23 11:12:00 +01:00
Nicolas Goaziou 6dcaafff3e Tiny refactoring
* lisp/org.el (org-current-level): Tiny refactoring.
2014-12-22 00:09:08 +01:00