Commit Graph

19419 Commits

Author SHA1 Message Date
Nicolas Goaziou 2f5cd67357 ox: Speed-up some tools on tables
* lisp/ox.el (org-export-table-has-special-column-p): Tiny
  refactoring.
(org-export-table-has-header-p): Fix cache use, i.e., no longer
re-compute return value when the table is already known to have no
header.
(org-export-table-row-group):
(org-export-table-row-number): Populate cache with all the rows
whenever a row is queried.  This fixes previous quadratic behaviour.

Reported-by: Thierry Banel <tbanelwebmin@free.fr>
<http://permalink.gmane.org/gmane.emacs.orgmode/111131>
2017-01-01 23:58:29 +01:00
Nicolas Goaziou a277fd3efa Merge branch 'maint' 2017-01-01 19:56:23 +01:00
Rick Frankel 14e3209731 Update ob-ruby for inf-ruby 2.5
* lisp/ob-ruby.el (org-babel-ruby-initiate-session): `run-ruby` has
   very different semantics in inf-ruby 2.5. Set ruby command to the
   default which used to be set by `run-ruby` and try and find already
   existing buffer before invocation.
2017-01-01 19:55:56 +01:00
Nicolas Goaziou d07d7c29c5 Merge branch 'maint' 2017-01-01 11:19:47 +01:00
Nicolas Goaziou 336bab6ea7 Update copyright years
* lisp/org-crypt.el:
* lisp/ox-publish.el: Update copyright years.
2017-01-01 11:19:15 +01:00
Nicolas Goaziou 87b0b0dca6 Merge branch 'maint' 2017-01-01 10:45:21 +01:00
Nicolas Goaziou c7cc30b4d6 ox-publish: Back-port `org-publish-property'
* lisp/ox-publish.el (org-publish-property): New function.
2017-01-01 10:43:48 +01:00
Nicolas Goaziou 20f6c1965c Merge branch 'maint' 2017-01-01 10:35:06 +01:00
Nicolas Goaziou dd727cf0cb org-crypt: Fix data loss when providing an empty key
* lisp/org-crypt.el (org-encrypt-entry): Insert original text back
  upon encryption failure.

Reported-by: fxiny <wtimew@libero.it>
<http://permalink.gmane.org/gmane.emacs.orgmode/111115>
2017-01-01 10:34:36 +01:00
Nicolas Goaziou 8e0295a318 ox-publish: Add test
* testing/lisp/test-ox-publish.el (test-org-publish/get-project-from-filename):
  New test.
2016-12-31 12:29:32 +01:00
Nicolas Goaziou 4ce104bf44 Merge branch 'maint' 2016-12-31 12:29:20 +01:00
Nicolas Goaziou dff9cf9c80 ox-publish: Fix `org-publish-get-project-from-filename' and :include
* lisp/ox-publish.el (org-publish-get-project-from-filename): Properly
  check included files.  Complete docstring.  Refactor code.
2016-12-31 12:28:02 +01:00
Nicolas Goaziou ccf2b988af ox-publish: Fix :base-extension (part 2)
* lisp/ox-publish.el (org-publish-get-base-files): Make sure to remove
  directories.
* testing/examples/pub/file.txt:
* testing/examples/pub/noextension: New files.
* testing/lisp/test-ox-publish.el (test-org-publish/base-extension):
  New test.
2016-12-29 21:48:02 +01:00
Nicolas Goaziou 2c6a4bec73 Merge branch 'maint' 2016-12-29 21:16:36 +01:00
Nicolas Goaziou acebe9a282 ox-publish: Fix :base-extension set to `any'
* lisp/ox-publish.el (org-publish-get-project-from-filename): Handle
  case when :base-extension is `any'.
(org-publish-project-alist): Improve docstring.

Reported-by: Arun Isaac <arunisaac@systemreboot.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/111085>
2016-12-29 21:16:13 +01:00
Nicolas Goaziou 35e8e5c93a `orgtbl-to-generic' speed-up
* lisp/org-element.el (org-element-class): Make it a defsubst.
* lisp/org-table.el (orgtbl-to-generic): Do not use cache when
  building Org table.  Factor out calls to Org Export functions when
  they are not necessary.
(org-table--to-generic-row): Factor out calls to Org Export functions
when they are not necessary.
* lisp/ox.el (org-export-resolve-fuzzy-link):
(org-export-table-has-header-p):
(org-export-table-row-group):
(org-export-table-cell-width):
(org-export-table-cell-alignment): Small refactoring.
(org-export-table-row-number): Add caching.

* testing/lisp/test-org-element.el (test-org-element/class): Remove
  test.
2016-12-29 19:46:31 +01:00
Nicolas Goaziou 6f6c2ea8d9 Merge branch 'maint' 2016-12-29 16:39:07 +01:00
Alexey Lebedeff 3e68d01bdd Reveal tags after setting them
* lisp/org.el (org-set-tags): Reveal newly inserted tags.
* testing/lisp/test-org.el (test-org/set-tags): New test.

Sometimes freshly added tags can be sucked into invisible outline
region (denoted by ellipsis) - and to see them you need to do the full
global visibilty cycle.
2016-12-29 16:38:38 +01:00
Charles Berry ed0c8cb995 org-babel-execute:R fix `:colnames yes' clash with `:results graphics'
* lisp/ob-R.el (org-babel-execute:R): The `:colnames' and `:rownames'
  header arguments are ignored if `:results graphics' is specified.

Reported by: Kodi Arfer <kodi@arfer.net>
Archived-At: <http://permalink.gmane.org/gmane.emacs.orgmode/111072>
2016-12-28 18:35:59 -08:00
Nicolas Goaziou a3073a06f4 Merge branch 'maint' 2016-12-29 01:20:27 +01:00
Nicolas Goaziou 57ca9ba80a org-clock: Fix ":formula %" with disparate duration formats
* lisp/org-clock.el (org-clock-time%): Handle various duration
  formats.  Refactor code.

* testing/lisp/test-org-clock.el (test-org-clock/clocktable): Add
  tests.

Reported-by: Andreas Mueller <lists@0x7.ch>
<http://permalink.gmane.org/gmane.emacs.orgmode/111067>
2016-12-29 01:19:00 +01:00
Nicolas Goaziou c47d6892fa ox: localization: add Arabic support.
* lisp/ox.el (org-export-smart-quotes-alist):
(org-export-dictionary): Add Arabic support.

Suggested-by: Fadi F. Al-Sammak <ffsammak@gmail.com>
2016-12-29 00:34:37 +01:00
Nicolas Goaziou 5b8ebe6576 Merge branch 'maint' 2016-12-27 08:33:26 +01:00
Nicolas Goaziou bbbed7aad9 ox-publish: Fix typos 2016-12-27 08:30:01 +01:00
Nicolas Goaziou 517fed8d4d Merge branch 'maint' 2016-12-26 10:32:42 +01:00
Nicolas Goaziou 4cf56e6e89 Fix following links starting with square brackets
* lisp/org.el (org-link-search): Improve regexp.
* testing/lisp/test-org.el (test-org/fuzzy-links): Add tests.
2016-12-26 10:32:26 +01:00
Bastien c98a343f8d Fix commit 1c89082.
* lisp/org.el (org-speed-command-hook): Do not use removed alias name.
2016-12-24 12:21:42 +01:00
Nicolas Goaziou 709dad2f3a Fix last commit
* lisp/org.el (org-speed-command-hook): Do not use removed alias name.
2016-12-24 11:30:19 +01:00
Nicolas Goaziou 1c89082600 org-compat: Remove obsolete aliases 2016-12-22 13:20:39 +01:00
Nicolas Goaziou 7a90187fb1 org-compat: Silence byte-compiler 2016-12-22 13:16:30 +01:00
Nicolas Goaziou 1ddadefd37 Merge branch 'maint' 2016-12-22 13:13:08 +01:00
Nicolas Goaziou 820d1eb617 Fix `org-compile-file'
* lisp/org.el (org-compile-file): Ensure `out-dir' is always a string.
2016-12-22 13:12:19 +01:00
Nicolas Goaziou 7fd61c4f92 org-compat: Silence byte-compiler 2016-12-22 01:41:02 +01:00
Nicolas Goaziou edc8d552cd org-compat: Silence byte-compiler 2016-12-22 01:29:03 +01:00
Nicolas Goaziou 2b9da32227 ORG-NEWS: Fix typo 2016-12-21 10:31:49 +01:00
Marco Wahl 3fd0f57231 org.texi: Fix compile
* doc/org.texi: Fix compile.  (One item was misplaced.)
2016-12-21 10:10:00 +01:00
Nicolas Goaziou c130b2e7b3 Merge branch 'maint' 2016-12-20 18:01:27 +01:00
Matt Lundin 13751c3249 Fix org-clock-load
Since commit fda64f1ae2 on November 6,
org-clock-load no longer restores clocks in org-clock-persist-file. The
contents of the file look like this:

(setq org-clock-stored-history '(("/home/matt/org/inbox.org" . 39479) ("/home/matt/org/reading.org" . 63478)))

The files both exist; the position information is correct; and
org-clock-persist is t. And yet after calling org-clock-load,
org-clock-history, org-clock-loaded, and org-clock-stored-history remain
nil.

The problem, it seems, is that the logic/order of the if statement was
reversed in the commit above. The attached patch should fix the issue.

Best,
Matt

[4. text/x-diff; 0001-org-clock-Fix-org-clock-load.patch]
From 6d649016fbbfaa28c902ee1e71c20ecf332f8a14 Mon Sep 17 00:00:00 2001
From: Matt Lundin <mdl@imapmail.org>
Date: Mon, 19 Dec 2016 17:24:10 -0600
Subject: [PATCH] org-clock: Fix org-clock-load

* lisp/org-clock.el: (org-clock-load): Fix incorrect order in if
statement that was preventing org-load from loading stored data and
populating org-clock-history.
2016-12-20 18:01:02 +01:00
Nicolas Goaziou 91dc1b34e3 ox: Add EXPORT_FILE_NAME keyword
* lisp/ox.el (org-export-output-file-name): Support EXPORT_FILE_NAME
  keyword.
* doc/org.texi (Export settings): Document new keyword.
* testing/lisp/test-ox.el (test-org-export/output-file-name): Add
  tests.
2016-12-20 17:10:46 +01:00
Nicolas Goaziou 2ac798af6c org.texi: Fix typo
* doc/org.texi (Sitemap): Fix typo.
2016-12-19 23:02:26 +01:00
Nicolas Goaziou bd828e2d1c ox: Add `org-export-global-macros'
* lisp/ox.el (org-export-global-macros): New variable.
(org-export-as): Use new variable.
* doc/org.texi (Macro replacement): Document new variable.
* testing/lisp/test-ox.el (test-org-export/expand-macro): Add tests.
2016-12-19 23:00:38 +01:00
Nicolas Goaziou aae5149d10 Add tests for `org-export-insert-image-links'
* testing/lisp/test-ox.el (test-org-export/insert-image-links): New
  test.
2016-12-19 18:02:38 +01:00
Nicolas Goaziou 83827952db ox-publish: Provide relative file in sitemap generation
* doc/org.texi (Sitemap):
* lisp/ox-publish.el (org-publish-project-alist): Document change.

(org-publish-property):
(org-publish--expand-file-name): New functions

(org-publish-get-base-files):
(org-publish-file):
(org-publish-projects):
(org-publish--sitemap-files-to-lisp):
(org-publish-sitemap):
(org-publish-find-property):
(org-publish-find-title):
(org-publish-find-date):
(org-publish-sitemap-default-entry):
(org-publish-sitemap-default): Use new functions.

* testing/lisp/test-ox-publish.el (test-org-publish/sitemap): Update
  test.
2016-12-19 17:36:19 +01:00
Nicolas Goaziou 6663452588 ox-publish: Remove :sitemap-sans-extension
* lisp/ox-publish.el (org-publish-sitemap): Remove property.

* doc/org.texi (Sitemap):
* lisp/ox-publish.el (org-publish-project-alist): Remove documentation.

Caches uses absolute file names as keys.  We cannot provide file names
without extension to `:sitemap-format-entry' as they are no longer
existing key, and cannot be used for `org-publish-find-property' or
`org-publish-find-title'.
2016-12-19 12:19:59 +01:00
Nicolas Goaziou baf2e0e5ee ox-publish: Add tests
* testing/examples/pub/a.org:
* testing/examples/pub/b.org:
* testing/examples/pub/sub/c.org:
* testing/lisp/test-ox-publish.el: New files.
2016-12-19 12:19:59 +01:00
Nicolas Goaziou fcca882876 ox-publish: Remove unused variable
* lisp/ox-publish.el (org-publish-sitemap-date-format): Remove variable.
(org-publish-projects): Apply removal.
2016-12-19 12:19:59 +01:00
Nicolas Goaziou d5dbf761eb ox-publish: Include directories in site-map
* lisp/ox-publish.el (org-publish-temp-files): Remove variable.
(org-publish-get-base-files-1):
(org-publish-compare-directory-files): Remove functions.
(org-publish-get-base-files): Remove optional argument.  Rewrite
function.
(org-publish-projects):
(org-publish-sitemap):
(org-publish-index-generate-theindex): Apply signature change.
(org-publish-sitemap-sort-folders): Allow to include or ignore
directories in the site-map.

* doc/org.texi (Sitemap):
* lisp/ox-publish.el (org-publish-project-alist): Document change.
2016-12-19 12:19:59 +01:00
Nicolas Goaziou ca0ad0a84b ox-publish: Implement `org-publish-find-property'
* lisp/ox-publish.el (org-publish-find-property): New function.
(org-publish-find-title): Use new function.  Remove unused optional
argument.
(org-publish-find-date): Use new function.

(org-publish-project-alist):
* doc/org.texi (Sitemap): Update documentation.

Suggested-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/107219>
2016-12-19 12:19:58 +01:00
Nicolas Goaziou 2d3e3f562a ox-publish: Improve control over site map
* lisp/ox-publish.el (org-publish-project-alist): Document
  new :sitemap-format-entry property, and change to `:sitemap-function'.
(org-publish-sitemap-file-entry-format): Make variable obsolete.
(org-publish-org-sitemap): Remove function.
(org-publish--sitemap-files-to-lisp):
(org-publish-sitemap):
(org-publish-sitemap-default-entry):
(org-publish-sitemap-default): New functions.
(org-publish-projects): Use new functions.
* lisp/org-compat: Implement directory-name-p when not available.

* doc/org.texi (Sitemap): Update documentation.

:sitemap-function is more specialized so it is easier to manipulate.  In
particular, it can make use of built-in `org-list-to-*' functions.
Also, :sitemap-format-entry, as a function, is less limited than
`org-publish-sitemap-file-entry-format' format string.
2016-12-19 12:19:58 +01:00
Nicolas Goaziou 45d57bb4db org-list: Implement `org-list-to-org'
* lisp/org-list.el (org-list-to-org): New function.
* testing/lisp/test-org-list.el (test-org-list/to-org): New test.
2016-12-19 12:19:58 +01:00