* testing/lisp/test-ox-publish.el (test-org-publish/resolve-external-link):
Rewrite test to prevent race condition which could affect results.
* testing/examples/pub/b.org: Add missing keyword.
* lisp/org-agenda.el (org-agenda-list): Reset `org-agenda-buffer-name'
to the original name.
* testing/lisp/test-org-agenda.el: Pertaining unit test. + 2 basic
agenda tests.
* testing/examples/agenda-file.org: File to produce content for an
agenda to test.
* 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.
* lisp/ob-lob.el (org-babel-default-lob-header-args): Merge value with
`org-babel-default-header-args' since this variable is meant to
replace the latter.
(org-babel-lob-ingest): Make sure `org-babel-default-lob-header-args' is
used instead of `org-babel-default-header-args'.
(org-babel-lob--src-info): New function.
(org-babel-lob-get-info): Use new function. Make return value
a replacement for `org-babel-get-src-block-info'.
(org-babel-lob-execute): Use `org-babel-execute-src-block' instead of
duplicating functionalities.
* lisp/ob-exp.el (org-babel-exp-process-buffer): Apply changes to
`org-babel-lob-get-info' return value.
* testing/examples/ob-header-arg-defaults.org:
* testing/lisp/test-ob-header-arg-defaults.el (test-ob-header-arg-defaults/tree/accumulate/call):
(test-ob-header-arg-defaults/tree/complex/call):
(test-ob-header-arg-defaults/tree/overwrite/call):
* testing/lisp/test-ob-lob.el (test-ob-lob/caching-call-line):
(test-ob-lob/named-caching-call-line): Update tests.
The purpose of this commit is to make Babel calls more
predictable (e.g., wrt property inheritance) and to remove code
duplication. Also, Babel calls results are no longer treated as Emacs
Lisp values.
* lisp/ob-core.el (org-babel-get-inline-src-block-matches): Remove
function.
(org-babel-when-in-src-block):
(org-babel-insert-result): Do not use removed function.
(org-babel-remove-inline-result): Add an optional argument for a tiny
speed-up.
* testing/examples/babel.org:
* testing/lisp/test-ob.el (test-ob/inline-src_blk-default-results-replace-line-1):
Remove needless tests.
* lisp/ob-core.el (org-babel-get-src-block-info): Rewrite function.
Change signature.
(org-babel-parse-src-block-match):
(org-babel-parse-inline-src-block-match): Remove functions.
(org-babel-execute-src-block): Remove useless function call.
* lisp/ob-exp.el (org-babel-exp-process-buffer): Make use of signature
change.
(org-babel-exp-results): Use new return value from
`org-babel-get-src-block-info'. Tiny refactoring.
* testing/lisp/test-ob.el (test-ob/nested-code-block): Fix test.
* contrib/lisp/org-eldoc.el (org-eldoc-get-src-lang): Use parser instead
of removed function.
* testing/examples/babel.org: Fix test environment.
* testing/examples/ob-C-test.org:
* testing/examples/ob-fortran-test.org:
* testing/examples/ob-maxima-test.org:
* testing/lisp/test-ob-python.el (test-ob-python/colnames-yes-header-argument-again):
(test-ob-python/colnames-no-header-argument-again):
* testing/lisp/test-ob.el (test-ob/do-not-resolve-to-partial-names-data):
Use NAME instead of TBLNAME.
TBLNAME is deprecated syntax since Org 8.
* lisp/org-macro.el (org-macro--collect-macros): cd to the directory
containing the SETUPFILE before recursing so that relative pathnames
in the SETUPFILE are expanded properly.
* lisp/org.el (org--setup-collect-keywords): cd to the directory
containing the SETUPFILE before recursing so that relative pathnames
in the SETUPFILE are expanded properly.
* lisp/ox.el (org-export--get-inbuffer-options,
org-export--list-bound-variables): cd to the directory containing the
SETUPFILE before recursing so that relative pathnames in the SETUPFILE
are expanded properly.
If /path/to/foo.org contains:
#+SETUPFILE: settings/beamer.org
and /path/to/settings/beamer.org contains:
#+SETUPFILE: common.org
then we want to read /path/to/settings/common.org, not
/path/to/common.org.
TINYCHANGE
* test/examples/babel.org: Miscellaneous fixes for new inline src
block schema. Return a scalar to avoid unwanted error. Return a raw
result from `src_emacs-lisp' to make checking results cleaner than
dealing with `results' macro.
* testing/lisp/test-ob-exp.el: Wrap some expected results in
`{{{results(' and ')}}}' and drop `=%s=' formatting of others.
* testing/lisp/test-ob-lob.el: Wrap some expected results in
`{{{results(' and ')}}}'.
* testing/lisp/test-ob.el: Wrap some expected results in `{{{results('
and ')}}}'.
* testing/lisp/test-ob.el
(test-org-babel/org-babel-get-inline-src-block-matches,
test-org-babel/inline-src_blk-results-silent): Tests of inline src
block matches (and `org-ctrl-ctrl-c') conform to the `:begin' and
`:end' properties of `org-element-context'.
* testing/lisp/test-ob.el
(test-org-babel/inline-src_blk-default-results-replace-line-1,
test-org-babel/inline-src_blk-default-results-replace-line-2):
Inline results are self replacing.
* testing/examples/babel.org: Change spaces to dashes in #+name
lines.
* testing/lisp/test-ob-exp.el (org-test-with-expanded-babel-code):
(ob-exp/evaluate-all-executables-in-order):
(ob-exp/exports-inline-code):
(ob-exp/exports-inline):
(ob-exp/exports-inline-code-double-eval):
(ob-exp/exports-inline-code-eval-code-once):
(ob-exp/exports-inline-code-double-eval-exports-both):
(ob-exp/use-case-of-reading-entry-properties):
(ob-exp/export-from-a-temp-buffer):
(ob-export/export-with-results-before-block):
(ob-export/export-under-commented-headline):
* testing/lisp/test-ob-lob.el (test-ob-lob/export-lob-lines):
* testing/lisp/test-ob.el (test-org-babel/inline-src_blk-default-results-replace-line-1):
(test-org-babel/inline-src_blk-default-results-replace-line-2):
(test-org-babel/inline-src_blk-manual-results-replace):
(test-org-babel/inline-src_blk-results-scalar):
(test-org-babel/inline-src_blk-results-verbatim):
(test-org-babel/inline-src_blk-preceded-punct-preceded-by-point):
* testing/lisp/test-ox.el (test-org-export/export-scope):
Bind ‘org-babel-inline-result-wrap’ and/or ‘org-export-babel-evaluate’
so tests work when users have customized these variables.
* testing/lisp/test-ob-exp.el (ob-export/export-with-results-before-block):
Add ‘org-trim’ where an extra newline was creeping in.
* testing/lisp/test-ob-lob.el (test-ob-lob/call-with-header-arguments):
Neutralize org-babel-insert-result, which was stomping on the buffer
contents and disrupting the test
* testing/lisp/test-org-element.el (test-org-element/block-switches):
Replace (should (and ...)) with multiple (should ...). This gives
more precise indications of what is wrong when a test fails.
(test-org-element/link-parser): Require org-docview.
* testing/lisp/test-org-timer.el (test-org-timer/other-timer-error):
Add the error type for ‘should-error’.
* testing/lisp/test-ox.el (test-org-export/set-title):
(test-org-export/handle-options):
(test-org-export/with-timestamps):
(test-org-export/comment-tree):
(test-org-export/handle-inlinetasks): Let
‘org-export-filter-body-functions’ and
‘org-export-filter-final-output-functions’ to nil where an empty
string is the expected result. ‘org-export-filter-apply-functions’
treats an empty string as special, and changes it to nil. This
creates test failures when the user has customized these variables.
* testing/org-test.el (org-test-with-temp-text): Let ‘org-mode-hook’
to nil.
(org-test-table-target-expect): Require ert since this function calls
some of its should* functions.
* lisp/ox.el (org-export--inclusion-absolute-lines): Fix comment.
(org-export--prepare-file-contents): Do not look for property drawers
after a drawer, since this is impossible.
* testing/examples/include.org: Fix test data.
* lisp/ob-exp.el (org-babel-exp-inline-code-template): New
customizable variable to export inline source code (similar to
`org-babel-exp-code-template').
(org-babel-exp-code): New `type' argument to differentiate between
inline and standard code blocks.
* lisp/ob-core.el (org-babel-inline-src-block-regexp): Allow empty set
of switches and header arguments as in "src_sh[]{echo foo;}". Also
permit spaces before them.
* testint/lisp/test-org-element.el
(test-org-element/inline-src-block-parser): Test extended syntax for
inline source code.
* testing/lisp/test-ob-exp.el (ob-exp/exports-inline-code): New
function for testing inline source code handling. Also add three new
failing tests exhibiting unexpected results with ":results code"
switches.
* testing/lisp/test-ob.el
(test-org-babel/org-babel-get-inline-src-block-matches): Test for
inline source blocks with empty header arguments.
* testing/examples/babel.org: New sections for testing (i) exported
inline source code (used by `ob-exp/exports-inline-code'); (ii)
parsing inline source blocks with empty header arguments (used by
`test-org-babel/org-babel-get-inline-src-block-matches').
Until now pieces of inline source code were handled as standard code
blocks during export. These changes enable them to be exported.
* ob-C.el: handling of non-homogeneous tables,
support for table header,
support for iterating over table cells.
(org-babel-expand-body:C++): uncomment
(org-babel-C-execute): cosmetic changes
(org-babel-C-expand-C): add support for table columns names,
add support for table dimensions,
add standard includes
(org-babel-C-val-to-C-type): rewrite to support non-homogeneous
tables cells
(org-babel-C-table-sizes-to-C): new function to gain access
to the table dimensions
(org-babel-C-utility-header-to-C):
(org-babel-C-header-to-C): new functions to generate
support for table header.
* ob-C-test.org: added D sibling tests similar to C++,
added non-homogeneous table example for C++ and D
* test-ob-C.el: new tests for D and non-homogeneous tables
(ob-C/simple-program):
(ob-C/simple-program):
(ob-D/simple-program):
(ob-C/integer-var):
(ob-D/integer-var):
(ob-C/two-integer-var):
(ob-D/two-integer-var):
(ob-C/string-var):
(ob-D/string-var):
(ob-C/preprocessor):
(ob-C/table):
(ob-D/table):
(ob-C/list-var):
(ob-D/list-var):
(ob-C/vector-var):
(ob-D/vector-var):
(ob-C/list-list-var):
(ob-D/list-list-var):
(ob-C/inhomogeneous_table):
(ob-D/inhomogeneous_table): add compiler availability check
(ob-D/simple-program):
(ob-D/integer-var):
(ob-D/two-integer-var):
(ob-D/string-var):
(ob-D/table):
(ob-D/list-var):
(ob-D/vector-var):
(ob-D/list-list-var):
(ob-D/inhomogeneous_table): add D unit tests
(ob-C/inhomogeneous_table):
(ob-D/inhomogeneous_table): add non-homogeneous table
unit tests
* lisp/ox.el (org-export-expand-include-keyword): Change parsing so
that arbitrary blocks around the included content can be used.
Content is not code-escaped unless it is a literal block, this
applies to "src" and "example".
* doc/org.texi (Include files): Document the additional markup.
* testing/lisp/test-ox.el (test-org-export/expand-include): Add test
for an #+INCLUDE with "html" and "center" markup.
* testing/examples/include.html: New file, used for testing
"#+INCLUDE html".
* lisp/ob-core.el (org-babel-generate-file-param): New function.
(org-babel-get-src-block-info): Use it.
(org-babel-merge-params): Handle :file-ext.
(org-babel-graphical-output-file): error if no :file or :file-ext.
* testing/lisp/test-ob.el (test-org-babel/file-ext-and-output-dir):
New test.
* doc/org.texi (Specific header arguments): Add doc for :file-ext and
:output-dir header args.
* lisp/ob-R.el (org-babel-expand-body:R): Don’t calculate
graphics-file.
(org-babel-execute:R): Only look for a graphics-file if needed.
* lisp/ob-shell.el: added support to serialize vars as arrays or associative arrays as appropriate if it is using bash.
* testing/examples/ob-shell-test.org: a file containing a few code blocks both illustrating the use of arrays as well as serving as test for the new export functionality.
* testing/lisp/test-ob-shell.el: added a few unit tests that verify that this new logic only triggers for bash and no other shell at this time.
When variables are defined in a 'sh' code block, they are exported as strings. when the variable itself is an array or a table, then we simply get a shell variable that contains the list of all values in a non-structured form.
When calling the code block with bash, however, it will now export the list as an array, the table as an associative array. A scalar is exported the same way as before.
Signed-off-by: Pascal Fleury <fleury@google.com>
* lisp/org.el (org-open-at-point): Rewrite function using Element
parser.
(org-link-types): Add "help" type.
* testing/lisp/test-org-open-at-point.el: Remove file. Two tests are
not supported anymore (namely bracket-link-before and
plain-link-before) and the other tests are wrong (mixing id and
custom-id links).
* testing/examples/open-at-point.org: Remove file.
* testing/lisp/test-org.el (test-org/custom-id): Add test.
Unlike to the previous implementation, this one will only open links
under point or just before point, not links on the same line but
before point.
* testing/examples/babel.org(use case of reading entry properties):
Adapt to use the new introduced #+NAME for src block calls.
* testing/lisp/test-ob-exp.el(ob-exp/use-case-of-reading-entry-properties):
Adapt to use the new introduced #+NAME for src block calls.
* testing/examples/babel.org: Quote :shebang header argument.
2a73e06 introduced a new behaviour for org-babel-read and values
starting with "#" must now be quoted.
* lisp/ob-fortran.el: add a branch which handles nested lists
* testing/examples/ob-fortran-test.org: add a test for matrix input
* testing/lisp/test-ob-fortran.el: add a test for matrix input
* testing/examples/open-at-point.org: new file.
* testing/lisp/test-org-open-at-point.el: new file.
This tests only the function when inside or before bracket links
and plain links.
* contrib/lisp/org-export.el (org-export-as): Expand include keywords
before macros. This allows to specify macro templates in the
included file.
* testing/examples/macro-templates.org: New file for testing purposes.
* testing/lisp/test-org-export.el: Add test.
The current Emacs trunk bumped to version >24.2.50 because a new
release Emacs 24.2 has been decided. `cl-map' is not an alias for
`map' in Emacs < 24.2.50 -- so take this into account in some tests.