Commit Graph

9327 Commits

Author SHA1 Message Date
Eric Schulte 1234afcc54 correctly toggle visibility of named code blocks
* lisp/ob.el (org-babel-hide-result-toggle): Skip over header argument
  lines when toggling named code block visibility.
2011-11-22 08:05:34 -07:00
Eric Schulte 0bd9981e0d Don't license to kill text inside blocks when getting a title
* lisp/org-exp.el (org-export-grab-title-from-buffer): Don't license
  to kill text inside blocks when getting a title.
2011-11-22 07:56:00 -07:00
Eric Schulte a998cae722 the :eval header argument now takes 4(6) possible values
* doc/org.texi (eval): Documenting the full range of :eval header
  argument values.
* lisp/ob.el (org-babel-confirm-evaluate): Adding support for new
  range of :eval header arguments.
* testing/lisp/test-ob.el (test-ob/eval-header-argument): Testing the
  :eval header argument.
2011-11-22 07:32:39 -07:00
Eric Schulte c166760fcc Revert "Revert "new babel latex feature :imagemagick -- By Andreas Leha""
This reverts commit c6f6b3421e.

Andreas has now signed the FSF copyright assignment papers.
2011-11-22 06:59:58 -07:00
Eric Schulte edef1fa5ca ":eval non-export" inhibits evaluation during export
* doc/org.texi (eval): Documentation of the new :eval option.
* lisp/ob.el (org-babel-confirm-evaluate): Inhibit evaluation during
  export when eval is set to "non-export".
2011-11-21 18:19:45 -07:00
Eric Schulte 3693952e3b New option to update intermediate in-buffer results
* lisp/ob-ref.el (org-babel-update-intermediate): New custom variable.
  (org-babel-ref-resolve): Optionally update the in-buffer results of
  code blocks which are evaluated to resolve references.
2011-11-21 10:02:39 -07:00
Eric Schulte f312e9a6b3 More documentation of accumulated properties 2011-11-21 10:02:38 -07:00
Thomas Dye 6bab435cb2 * doc/org.texi: Add accumulated properties 2011-11-21 10:02:38 -07:00
Nicolas Goaziou 45587af37b org-element: Parser for Org syntax
* contrib/lisp/org-element.el (org-element-center-block-parser,
  org-element-center-block-interpreter, org-element-drawer-parser,
  org-element-drawer-interpreter, org-element-dynamic-block-parser,
  org-element-dynamic-block-interpreter,
  org-element-footnote-definition-parser,
  org-element-headline-parser, org-element-headline-interpreter,
  org-element-inlinetask-parser, org-element-inlinetask-interpreter,
  org-element-item-parser, org-element-item-interpreter,
  org-element-plain-list-parser, org-element-plain-list-interpreter,
  org-element-quote-block-parser,
  org-element-quote-block-interpreter,
  org-element-special-block-parser,
  org-element-special-block-interpreter,
  org-element-babel-call-parser, org-element-babel-call-interpreter,
  org-element-comment-parser, org-element-comment-interpreter,
  org-element-comment-block-parser,
  org-element-comment-block-interpreter,
  org-element-example-block-parser,
  org-element-example-block-interpreter,
  org-element-export-block-parser,
  org-element-export-block-interpreter,
  org-element-fixed-width-parser,
  org-element-fixed-width-interpreter,
  org-element-horizontal-rule-parser,
  org-element-horizontal-rule-interpreter,
  org-element-keyword-parser, org-element-keyword-interpreter,
  org-element-latex-environment-parser,
  org-element-latex-environment-interpreter,
  org-element-paragraph-parser, org-element-paragraph-interpreter,
  org-element-property-drawer-parser,
  org-element-property-drawer-interpreter,
  org-element-quote-section-parser,
  org-element-quote-section-interpreter,
  org-element-src-block-parser, org-element-src-block-interpreter,
  org-element-table-parser, org-element-table-interpreter,
  org-element-verse-block-parser,
  org-element-verse-block-interpreter, org-element-emphasis-parser,
  org-element-emphasis-interpreter,
  org-element-text-markup-successor, org-element-entity-parser,
  org-element-entity-interpreter,
  org-element-latex-or-entity-successor,
  org-element-export-snippet-parser,
  org-element-export-snippet-interpreter,
  org-element-export-snippet-successor,
  org-element-footnote-reference-parser,
  org-element-footnote-definition-interpreter,
  org-element-footnote-reference-interpreter,
  org-element-footnote-reference-successor,
  org-element-inline-babel-call-parser,
  org-element-inline-babel-call-interpreter,
  org-element-inline-babel-call-successor,
  org-element-inline-src-block-parser,
  org-element-inline-src-block-successor,
  org-element-latex-fragment-parser,
  org-element-latex-fragment-interpreter,
  org-element-line-break-parser, org-element-line-break-interpreter,
  org-element-line-break-successor, org-element-link-parser,
  org-element-link-interpreter, org-element-link-successor,
  org-element-macro-parser, org-element-macro-interpreter,
  org-element-macro-successor, org-element-radio-target-parser,
  org-element-radio-target-interpreter,
  org-element-radio-target-successor,
  org-element-statistics-cookie-parser,
  org-element-statistics-cookie-interpreter,
  org-element-statistics-cookie-successor,
  org-element-subscript-parser, org-element-subscript-interpreter,
  org-element-sub/superscript-successor,
  org-element-superscript-parser,
  org-element-superscript-interpreter, org-element-target-parser,
  org-element-target-interpreter, org-element-target-successor,
  org-element-time-stamp-parser, org-element-time-stamp-interpreter,
  org-element-time-stamp-successor, org-element-verbatim-parser,
  org-element-verbatim-interpreter, org-element-get-property,
  org-element-get-contents, org-element-at-point,
  org-element-guess-type, org-element-collect-affiliated-keywords,
  org-element-parse-buffer, org-element-parse-secondary-string,
  org-element-map, org-element-parse-elements,
  org-element-parse-objects, org-element-get-next-object-candidates,
  org-element-interpret-data, org-element-interpret-secondary,
  org-element-interpret--affiliated-keywords,
  org-element-normalize-string, org-element-normalize-contents,
  org-element-swap-A-B, org-element-backward,
  org-element-drag-backward, org-element-drag-forward,
  org-element-forward, org-element-mark-element,
  org-narrow-to-element, org-transpose-elements,
  org-element-unindent-buffer, org-element-up): New functions.
(org-element-paragraph-separate, org-element-all-elements,
  org-element-greater-elements, org-element-all-successors,
  org-element-object-successor-alist, org-element-recursive-objects,
  org-element-non-recursive-block-alist,
  org-element-affiliated-keywords,
  org-element-keyword-translation-alist,
  org-element-multiple-keywords, org-element-parsed-keywords,
  org-element-dual-keywords, org-element-object-restrictions,
  org-element-string-restrictions, org-element--affiliated-re,
  org-element--element-block-types): New variables.
2011-11-21 08:12:25 +01:00
Eric Schulte e3ec968fc7 changing documentation to reflect changing source code -- spaces around "=" 2011-11-20 10:09:18 -07:00
Thomas Dye a12e99aefc * doc/org.texi: Documented no spaces in name=assign, another correction to :var table 2011-11-20 10:08:33 -07:00
Eric Schulte 1b014d1cb2 Merge branch 'master' of orgmode.org:org-mode 2011-11-20 09:40:52 -07:00
Eric Schulte 82c0f9bf69 Allow spaces around "=" in code block variable specifications
* lisp/ob.el (org-babel-join-splits-near-ch): Rejoins a list of a
  split string when a character appears on either side of the split.
  (org-babel-parse-multiple-vars): Rejoin splits around "=" signs.
2011-11-20 09:40:08 -07:00
Eric Schulte 41387f4675 marked test as expected to pass, because it is now passing 2011-11-20 09:39:09 -07:00
Eric Schulte 15417f67c4 Added a less functional Org-mode copy of the cl reduce function.
* lisp/org.el (org-reduce): Added a less functional Org-mode copy of
  the cl reduce function.
2011-11-20 09:38:54 -07:00
Nicolas Goaziou b5935f777e Fontify src blocks following a "name" keyword
* lisp/org.el (org-fontify-meta-lines-and-blocks-1): Recognize "name"
  as a valid keyword that can preceed a block.
2011-11-20 10:40:25 +01:00
Eric Schulte f55810593e don't try to evaluate #+call lines in verbatim blocks
* lisp/ob-exp.el (org-babel-exp-lob-one-liners): Don't limit
  in-verbatim check to inline code blocks, do lob code blocks as well.
* testing/lisp/test-ob-lob.el (test-ob-lob/do-not-eval-lob-lines-in-example-blocks-on-export):
  Test ensuring that #+call lines in verbatim blocks are not evaluated
2011-11-18 11:30:59 -07:00
Eric Schulte 1f206ed477 new testing macro for in-file execution with temp text
* testing/org-test.el (org-test-with-temp-text-in-file): A new testing
  macros for temp-text tests which require a file name (e.g., for
  export).
2011-11-18 11:30:59 -07:00
Jambunathan K e28e1038c4 org-odt.el: Rescale a large images so that it fits in text area
* contrib/lisp/org-odt.el (org-export-odt-max-image-size): New
variable.
(org-odt-image-size-from-file): Honor above variable.

Ivars Finvers <ifinvers@shaw.ca> says -
   One minor issue that I came across in using the ODT
exporter relates to the size of embedded images.  I often need
to include plots of simulation results in my documents.  These
plots can be larger than a normal page, which causes problems
in the text flow.  In LaTeX, I've grown used to being able to
automatically rescale a plot to match the maximum text width
of the document.  It would be useful to have such a feature
for the ODT exporter.
2011-11-17 23:58:42 +05:30
Carsten Dominik 78f7382879 Merge branch 'master' of orgmode.org:org-mode 2011-11-17 18:06:20 +01:00
Carsten Dominik 773596e347 Use prefix arg 0 to inhibit note taking for TODO change
* lisp/org.el (org-todo): Interpret 0 prefix arg as note inhibitor.

Sometimes I want to quickly make a few TODOs done in the agenda and I
want to bypass the note taking I have normally set up.  With this
change, I can press `0 t d' in the agenda to do this.
2011-11-17 08:56:11 +01:00
Eric Schulte 7c21098323 Don't match partial names when resolving code or data references
* lisp/ob.el (org-babel-named-src-block-regexp-for-name): Ensure that
  partial names are not matched.
  (org-babel-named-data-regexp-for-name): Ensure that partial names
  are not matched.
* testing/lisp/test-ob.el (test-ob/do-not-resolve-to-partial-names-data):
  Test to ensure that partial names are not matched.
2011-11-16 06:15:31 -07:00
Eric Schulte 19884ab280 resolve named code blocks before named data
* lisp/ob-ref.el (org-babel-ref-resolve): Search for named code blocks
  before named data.
* lisp/ob.el (org-babel-named-data-regexp-for-name): New function for
  finding named data.
* testing/lisp/test-ob.el (test-ob/resolve-code-blocks-before-data-blocks):
  Test to ensure that named references are resolved in the correct
  order.
2011-11-15 20:13:41 -07:00
Eric Schulte 8114cf2bc4 Gracefully handle results which are neither lists nor strings.
* lisp/ob.el (org-babel-insert-result): Gracefully handle results
  which are neither lists nor strings.
2011-11-15 15:30:35 -07:00
Thomas Dye f8d8f81e79 * doc/org.texi: Changed DATA to NAME in Working With Source Code section 2011-11-15 11:21:04 -07:00
Eric Schulte 1b6de8fad5 ignore org-id file generated during testing 2011-11-15 11:19:39 -07:00
Eric Schulte c21692506d fix bug missing references to example blocks
* lisp/ob-ref.el (org-babel-ref-resolve): Don't change location when
  looking at the contents.
* testing/lisp/test-ob.el (test-ob/catches-all-references): Test
  enforcing the correct behavior.
2011-11-15 11:18:26 -07:00
Milan Zamazal a5ed98e452 Create visibility overlays properly
* org.el (org-set-outline-overlay-data): Use outline-flag-region to make a
region invisible.  This ensures all necessary actions, especially adding
isearch-open-invisible property, are applied.
2011-11-15 18:39:57 +01:00
Eric Schulte 4f7e1fb108 fix compilation warning
* lisp/ob-lob.el (org-babel-in-example-or-verbatim): Fix compilation
  warning.
2011-11-15 08:56:26 -07:00
Eric Schulte 9702f5520e revert changes to interactive function `org-test-run-all-tests' 2011-11-15 08:56:25 -07:00
Martyn Jago 0440b83ac5 Changes to fix sandboxed tests to suit the standard code block syntax, and some changes to reduce ID testing scope and improve result gathering. * testing/org-test.el: Add org as an executable language for sand-boxed testing to suit the standard code block syntax. Use .org-test-id-locations as ID file temporarily whilst testing. Add `org-test-update-id-locations' to do just that. Clear *Messages* buffer and temporarily set `message-log-max to t to ensure capturing entire test backtrace.
* testing/.gitignore: ignore testing/.org-test-id-locations
2011-11-15 08:56:25 -07:00
Eric Schulte 83dfaa5c8f named code blocks are replaced with their results
* lisp/ob.el (org-babel-find-named-result): Downcase "name" before comparison.
* testing/lisp/test-ob.el (test-ob/does-not-replace-a-block-with-the-results):
  Test that named code blocks are replaced with their results.
2011-11-15 08:56:25 -07:00
Eric Schulte 16e4e9b5cc fix typo
* lisp/ob-lisp.el (org-babel-execute:lisp): Fixed typo.
  (org-babel-lisp-vector-to-list): Fixed typo.
2011-11-15 08:56:25 -07:00
Tom Dye 015e41fa2a * doc/org.texi: Minor change to :var table 2011-11-15 08:56:25 -07:00
Tom Dye 3c832c9e81 * doc/org.texi: More changes to :var table (some examples were wrong) 2011-11-15 08:56:25 -07:00
Tom Dye 90aa84ffc1 * doc/org.texi: Cleaned up :var table 2011-11-15 08:56:25 -07:00
Eric Schulte 630b9c80ca Indicate tests with missing dependencies by adding a expected failing test
* testing/lisp/test-ob-R.el (featurep): Signal missing dependencies
  with an error rather than a throw.
* testing/org-test.el (missing-test-dependency): Define the error
  signal for missing dependencies.
  (org-test-for-executable): Signal missing dependencies with an error
  rather than a throw.
  (org-test-load): Define an expected failing test for each file with
  missing dependencies.
2011-11-15 08:56:25 -07:00
Martyn Jago 49d6951caa Fix don't load symlinks (Emacs interlocking files) * testing/org-test.el: During test development various interlocking files may be present in testing/lisp directory (since they are being edited by emacs). Currently org-test-load will attempt to load these 2011-11-15 08:56:25 -07:00
Martyn Jago 0cc18ed120 Avoid loading (and failing) symbolic links (interlocking files) * testing/org-test.el: During test development various interlocking files may be present in testing/lisp directory (since they are being edited by emacs). Currently org-test-load will attempt to load these and fail. 2011-11-15 08:56:25 -07:00
Eric Schulte f98ee77b38 tests protecting nested code blocks
* testing/lisp/test-ob.el (test-org-babel/nested-code-block):
  Evaluation of a nested block.
  (test-org-babel/partial-nested-code-block): Evaluation of a
  partially nested block.
2011-11-15 08:56:25 -07:00
Eric Schulte 0b0c5cd26f fixed whitespace errors in org.texi 2011-11-15 08:56:25 -07:00
Eric Schulte 40700eee29 documentation now builds successfully 2011-11-15 08:56:24 -07:00
Eric Schulte a3f781be12 Tom's documentation updates for the new code block syntax 2011-11-15 08:56:24 -07:00
Eric Schulte 1ed12cac1a passing all tests after code block syntax changes
* lisp/ob-exp.el (org-babel-in-example-or-verbatim): Some valid
  execution contexts (e.g., call lines) look like commented lines.
* lisp/ob.el (org-babel-get-src-block-info): Empty match string
  doesn't count.
  (org-babel-process-params): Always process parameters, even if you
  don't to table splitting.
* testing/lisp/test-ob-C.el (ob-C/table): Ignore failures for this C
  test.
* testing/lisp/test-ob-fortran.el (ob-fortran/input-var): Ignore
  failures for this fortran test.
2011-11-15 08:56:24 -07:00
Eric Schulte 3af89e696a property names ending in plus accumulate
This results in the following behavior.

  #+property: var  foo=1
  #+property: var+ bar=2

  #+begin_src emacs-lisp
    (+ foo bar)
  #+end_src

  #+results:
  : 3

  #+begin_src emacs-lisp
    (org-entry-get (point) "var" t)
  #+end_src

  #+results:
  : foo=1 bar=2

  * overwriting a file-wide property
    :PROPERTIES:
    :var:      foo=7
    :END:

  #+begin_src emacs-lisp
    foo
  #+end_src

  #+results:
  : 7

  #+begin_src emacs-lisp
    (org-entry-get (point) "var" t)
  #+end_src

  #+results:
  : foo=7

  * appending to a file-wide property
    :PROPERTIES:
    :var+:      baz=3
    :END:

  #+begin_src emacs-lisp
    (+ foo bar baz)
  #+end_src

  #+results:
  : 6

  #+begin_src emacs-lisp
    (org-entry-get (point) "var" t)
  #+end_src

  #+results:
  : foo=1 bar=2 baz=3

* lisp/org.el (org-update-property-plist): Updates a given property
  list with a property name and a property value.
  (org-set-regexps-and-options): Use org-update-property-plist.
  (org-entry-get): Use org-update-property-plist.
* testing/examples/property-inheritance.org: Example file for testing
  appending property behavior.
* testing/lisp/test-property-inheritance.el: Tests of appending
  property behavior.
* lisp/ob.el (org-babel-balanced-split): Allow splitting on single
  characters as well as groups of two characters.
  (org-babel-parse-multiple-vars): Split variables on single spaces.
2011-11-15 08:56:24 -07:00
Eric Schulte 7e93b90f88 Standardized code block keywords
Nick Dokos <nicholas.dokos@hp.com> writes:

> Eric Schulte <schulte.eric@gmail.com> wrote:
>
>> The attached updated patch fixes a bug in the original.
>>
>
> Minor problem in applying:
>
> ,----
> | $ git apply ~/Mail/inbox/724
> | /home/nick/Mail/inbox/724:671: trailing whitespace.
> | #+name:
> | /home/nick/Mail/inbox/724:599: new blank line at EOF.
> | +
> | warning: 2 lines add whitespace errors.
> `----

The attached version fixes these issues, Thanks -- Eric

>From 0e43d59ee8d46a63f86780a502de726271bc39de Mon Sep 17 00:00:00 2001
From: Eric Schulte <schulte.eric@gmail.com>
Date: Fri, 28 Oct 2011 10:44:21 -0600
Subject: [PATCH] removing code block, results and call-line synonyms -- BREAKING CHANGE

Following a round of on-list discussion many code block synonyms have
been removed, moving forward the following syntax is valid.

- call lines are specified with #+call:
- code blocks are named with #+name:
- results are named with #+name:, however results generated by a code
  block may still be labeled with #+results:, and tables named with
  #+tblname: will be considered to be named results

The following function may be used to update an existing Org-mode
buffer to the new syntax.

  (defun update-org-buffer ()
    "Update an Org-mode buffer to the new data, code block and call line syntax."
    (interactive)
    (save-excursion
      (flet ((to-re (lst) (concat "^[ \t]*#\\+" (regexp-opt lst t)
                                  "\\(\\[\\([[:alnum:]]+\\)\\]\\)?\\:[ \t]*"))
             (update (re new)
                     (goto-char (point-min))
                     (while (re-search-forward re nil t)
                       (replace-match new nil nil nil 1))))
        (let ((old-re (to-re '("RESULTS" "DATA" "SRCNAME" "SOURCE")))
              (lob-re (to-re '("LOB")))
              (case-fold-search t))
          (update old-re "name")
          (update lob-re "call")))))

Note: If an old version of Org-mode (e.g., the one shipped with Emacs)
      is installed on your system many of the important variables will
      be pre-defined with a defvar and *will not* have their values
      automatically updated, these include the following.
      - org-babel-data-names
      - org-babel-result-regexp
      - org-babel-src-block-regexp
      - org-babel-src-name-regexp
      - org-babel-src-name-w-name-regexp
      It may be necessary to either remove the source code of older
      versions of Org-mode, or to explicitly evaluate the ob.el file.

* lisp/ob-exp.el (org-exp-res/src-name-cleanup): Updated
  Documentation.
* lisp/ob-lob.el (org-babel-block-lob-one-liner-regexp): Updated
  regular expression.
  (org-babel-inline-lob-one-liner-regexp): Updated regular expression.
* lisp/ob-ref.el (org-babel-ref-resolve): Notice when something that
  looks like a data results may actually be a code block.
* lisp/ob-table.el: Updated documentation.
* lisp/ob.el (org-babel-src-name-regexp): Simplified regexp.
  (org-babel-get-src-block-info): Updated match strings.
  (org-babel-data-names): Simplified acceptable names.
  (org-babel-find-named-block): Indentation.
  (org-babel-find-named-result): Updated to not return a code block as
  a result.
* lisp/org.el (org-fontify-meta-lines-and-blocks-1): Removing
  references to old syntactic elements.
  (org-additional-option-like-keywords): Removing references to old
  syntactic elements.
* contrib/babel/library-of-babel.org: Updated to make use of the new
  syntax.
* testing/examples/babel-dangerous.org: Updated to make use of the new
  syntax.
* testing/examples/babel.org: Updated to make use of the new syntax.
* testing/examples/ob-awk-test.org: Updated to make use of the new
  syntax.
* testing/examples/ob-fortran-test.org: Updated to make use of the new
  syntax.
* testing/lisp/test-ob.el: Removed two bad tests which tested the
  literal values of old regular expressions rather than their
  behavior.
2011-11-15 08:56:24 -07:00
Carsten Dominik b43c1c621f Fix function call order in previous patch
* lisp/org-agenda.el (org-agenda-get-todos): Swap calls to `org-trim' and
`buffer-substring'.
2011-11-14 08:35:12 +01:00
Nicolas Goaziou 57caa09106 org-agenda: Do not break TODO list view with empty tasks
* lisp/org-agenda.el (org-agenda-get-todos): Prevent an error when
  encountering tasks with only the TODO keyword.
2011-11-14 00:43:02 +01:00
Jambunathan K 9edb523bdd org-xhtml.el: Merge commit 2f50b1 2011-11-14 02:00:56 +05:30
Jambunathan K 457375be28 org-xhtml.el: Bring over few commits (contd.)
Bring over following commits:
-22ed1906
-2f1fbc58
-8d25fdc7
-236642dc
-d85e0e35
2011-11-14 01:05:48 +05:30