1
0
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-12-01 08:17:34 +00:00
Commit Graph

69 Commits

Author SHA1 Message Date
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
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
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
Eric Schulte
a4273cbe0e call lines are more careful about being in example or verbatim blocks
* lisp/ob-lob.el (org-babel-lob-execute-maybe): Don't execute a call
  inside a verbatim block.
* lisp/ob-exp.el (org-babel-in-example-or-verbatim): Check for example
  blocks.
2011-11-08 19:43:55 -07:00
Eric Schulte
080e2decbc removing `org-babel-params-from-buffer' and #+PROPERTIES: entirely
* lisp/ob.el: Removing `org-babel-params-from-buffer' and
  #+PROPERTIES: entirely.
* lisp/ob-exp.el (org-babel-exp-src-block): Removing
  `org-babel-params-from-buffer' and #+PROPERTIES: entirely.
* lisp/ob-lob.el (org-babel-lob-execute): Removing
  `org-babel-params-from-buffer' and #+PROPERTIES: entirely.
2011-10-20 15:26:43 -06:00
Achim Gratz
ccc99317de backport copyright and license headers from Emacs trunk 2011-08-24 22:32:38 +02:00
Eric Schulte
cb449a672e improve export of inline code blocks
* lisp/ob-exp.el (org-babel-exp-inline-src-blocks): Save match data
  around `org-babel-exp-do-export' which now searches in this case.
  (org-babel-exp-results): Position the point in the inline source
  block during export evaluation.
* lisp/ob.el (org-babel-insert-result): More readable code.
2011-08-22 08:23:52 -06:00
Eric Schulte
fceb767aea ob-exp: don't examplize inline code blocks which are already escaped
* lisp/ob-exp.el (org-babel-exp-inline-src-blocks): Don't examplize
  inline code blocks which are already escaped.
2011-08-21 14:23:27 -06:00
Nick Dokos
707897c25c Eliminate extra newline(s) after example or src block.
Signed-off-by: Nick Dokos <nick@dokosmarshall.org>
2011-08-21 12:28:33 -06:00
Bastien Guerry
58f1dbccf8 Remove the "Version" header in Org libraries (leave it in org.el).
Also remove blank lines before the ";;; org*el ends here" declarations.

Having a "Version" header forced us to update every file when releasing a
new version of Org; it also forced us to update every file when merging Org
with Emacs trunk, thus cluttering the diffs between the previously merged
version and the new one with useless information.

Glenn Morris suggested this in emacs-devel:
http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00322.html
2011-08-17 14:42:34 +02:00
Bastien Guerry
7a18799e25 Remove arch-tag at the bottom of files. 2011-08-15 20:04:38 +02:00
Bastien Guerry
904ed18bc2 Fix copyright years for elisp files in core and contrib.
Also add "This file is not part of GNU Emacs." when this is the case.
2011-08-15 15:23:11 +02:00
David Maus
545bfddeea Provide edebug specifications for macros
* org-macs.el (org-with-gensyms, org-called-interactively-p)
(with-silent-modifications, org-bound-and-true-p)
(org-unmodified, org-re, org-preserve-lc)
(org-without-partial-completion, org-with-point-at)
(org-no-warnings, org-if-unprotected, org-if-unprotected-1)
(org-if-unprotected-at, org-with-remote-undo)
(org-no-read-only, org-save-outline-visibility)
(org-with-wide-buffer, org-with-limited-levels)
(org-eval-in-environment): Provide edebug specifications.
* org-src.el (org-src-do-at-code-block): Dto.
* org-publish.el (org-publish-with-aux-preprocess-maybe): Dto.
* org-compat.el (org-xemacs-without-invisibility): Dto.
* org-clock.el (org-with-clock-position, org-with-clock): Dto.
* org-agenda.el (org-agenda-with-point-at-orig-entry)
(org-batch-agenda, org-batch-agenda-csv)
(org-batch-store-agenda-views): Dto.
* ob.el (org-babel-do-in-edit-buffer)
(org-babel-map-src-blocks, org-babel-map-inline-src-blocks): Dto.
* ob-tangle.el (org-babel-with-temp-filebuffer): Dto.
* ob-table.el (sbe): Dto.
* ob-exp.el (org-babel-exp-in-export-file): Dto.
* ob-comint.el (org-babel-comint-in-buffer)
(org-babel-comint-with-output): Dto.
2011-08-12 08:38:59 +02:00
Eric Schulte
b8ae6a6bdb Revert "fix compilation errors introduced by most recent changes"
This reverts commit 9ff7f80f51.
2011-08-01 15:31:24 -06:00
Nicolas Goaziou
8c6c6a4f3d Rename org-in-regexps-block-p' to org-between-regexps-p'
* lisp/org.el (org-between-regexps-p): previous name implied the
  function was related to blocks, which isn't mandatory.
(org-narrow-to-block, org-in-block-p, org-indent-line-function):
applied the rename.
* lisp/ob-exp.el (org-babel-in-example-or-verbatim): applied
  rename. Also removed a white space.
2011-07-30 09:32:03 +02:00
Eric Schulte
9ff7f80f51 fix compilation errors introduced by most recent changes
* lisp/ob-exp.el (org-babel-inline-src-block-regexp): Declare this variable.
* lisp/ob.el (defvar): Wrap variable declaration in eval-when-compile.
2011-07-29 10:36:39 -06:00
emacs
7340cee33a Update website to show 7.7 as current release 2011-07-28 10:33:35 +00:00
Eric Schulte
8854497c35 ob-exp: on export resolve hashes in the current (not original) file buffer
* lisp/ob-exp.el (org-babel-exp-results): Resolve hashes in the
  current (not original) file buffer.
* lisp/ob.el (org-babel-current-result-hash): More informative name,
  and remove useless optional argument.
2011-07-18 17:08:37 -06:00
Bastien Guerry
9c05a7c781 Bump to version 7.6 2011-07-06 21:06:03 +02:00
Eric Schulte
ef42f3cc9c ob-lob: inline calls should export even when preceeded by an "="
* lisp/ob-exp.el (org-babel-in-example-or-verbatim): Also check for in
  verbatim emphasis.
  (org-babel-exp-lob-one-liners): Cleaner checking for escaped call
  lines.
2011-06-28 13:04:57 -07:00
Eric Schulte
acec7eb7c3 ob-lob: fix the logic checking if a call line is commented
* lisp/ob-exp.el (org-babel-exp-lob-one-liners): Fix the logic
  checking if a call line is commented.
2011-06-27 10:36:27 -07:00
Eric Schulte
dceaf7da4f ob-exp: don't export inline call_ blocks which aren't whitespace padded
* lisp/ob-exp.el (org-babel-exp-lob-one-liners): Don't export inline
  call_ blocks which aren't whitespace padded.
2011-06-25 17:45:06 -07:00
Eric Schulte
4127e53cda ob: remove code comments pointing to online documentation
* lisp/ob.el: Remove code comment about online documentation.
* lisp/ob-exp.el: Remove code comment about online documentation.
* lisp/ob-lob.el: Remove code comment about online documentation.
2011-06-25 13:17:31 -07:00
Eric Schulte
5c3def4713 ob: export of inline call blocks
* lisp/ob-exp.el (org-babel-exp-lob-one-liners): Appropriate
  replacement of inline call blocks with their results.
2011-06-24 15:16:11 -07:00
Eric Schulte
825f6d382d ob-exp: introducing inline call lines to the export engine
* lisp/ob-exp.el (org-babel-exp-lob-one-liners): Calculate length
  appropriately given the style (block or inline) of the lob line.
* lisp/ob-lob.el (org-babel-block-lob-one-liner-regexp): New regexp
  specific for block lob lines.
  (org-babel-inline-lob-one-liner-regexp): New regexp specific for
  inline lob lines.
  (org-babel-lob-one-liner-regexp): Combination of two lob regexps.
  (org-babel-lob-get-info): Return info from *either* the block or
  inline lob lines.
2011-06-24 14:44:28 -07:00
Eric Schulte
6323bbded9 ob-exp: fixed a bug in exportation of #+call lines
* lisp/ob-exp.el (org-babel-exp-lob-one-liners): Corrected the
  structure of the resulting info list.
* lisp/ob-lob.el (org-babel-default-lob-header-args): Export the
  results of call lines by default.
2011-06-24 13:53:25 -07:00
Eric Schulte
40d80baa1b ob-exp: less verbose when in batch mode
* lisp/ob-exp.el (org-babel-exp-src-block): Less verbose when in batch
  mode.
2011-06-22 19:12:20 -07:00
Eric Schulte
f1c0042967 removing two currently unused export variables
* lisp/ob-exp.el: We may no longer need to export names along with
  code blocks.
2011-06-13 14:58:19 -07:00
Eric Schulte
120e621443 remove when-let which isn't a real Emacs macro
* lisp/ob-exp.el (org-babel-exp-code): Remove usage of a macro which
  is defined locally on my system, but not globally in Emacs.
2011-05-19 11:05:41 -06:00
Eric Schulte
72c154e38e expand noweb refs when ":noweb yes" during export
* lisp/ob-exp.el (org-babel-exp-do-export): Use `org-babel-exp-code'
  to generate code block output.
  (org-babel-exp-code): Re-create the code block body for exporting
  source code.
2011-05-19 07:37:33 -06:00
Robert P. Goldman
a173acf275 Don't prompt for bad links during babel export
* lisp/ob-exp.el (org-babel-exp-in-export-file): Bind
  `org-link-search-inhibit-query' to t to inhibit prompts.
2011-05-05 19:53:20 -06:00
Eric Schulte
abbee1635e ob-exp: use source block name when finding cached results.
* lisp/ob-exp.el (org-babel-exp-results): Use code block name when
  finding cached results.
2011-03-23 11:26:53 -06:00
Eric Schulte
c6b81ca3a1 ob-exp: no longer requires :session to have an argument for eval on export
* lisp/ob-exp.el (org-babel-exp-do-export): Now runs for empty
  :session arguments.
2011-03-15 07:12:25 -06:00
emacs
11a10bdfe7 Update website to show 7.5 as current release 2011-03-07 14:27:39 +00:00
Eric Schulte
9ce7d60076 ob-exp: fix export for inline source blocks
* lisp/ob-exp.el (org-babel-exp-results): Don't use cached results if
  there is no hash.
2011-03-03 15:53:25 -07:00
Eric Schulte
3755c79485 ob-exp: ensure params are properly processed on export
* lisp/ob-exp.el (org-babel-exp-results): Ensure that processed params
  are send to org-babel-execute-src-block.
2011-03-02 07:32:02 -07:00
Eric Schulte
03a6844054 ob: fix compiler warnings
* lisp/ob-exp.el (org-babel-exp-in-export-file): Now takes the
  language as an argument.
  (org-babel-exp-src-block): Explicitly pass language to
  `org-babel-exp-in-export-file'.
  (org-babel-exp-inline-src-blocks): Removed unused code.
  (org-babel-exp-results): Explicitly pass language to
  `org-babel-exp-in-export-file'.

* lisp/ob.el (org-babel-library-of-babel): declare variable
  (org-babel-tangle-comment-links): declare function
2011-03-01 10:52:35 -07:00
Eric Schulte
075016cdfa ob-exp: resolve result hash in the original file
* lisp/ob-exp.el (org-babel-exp-results): On export, ensure that the
  result hash is resolved in the original org-mode file.
2011-02-28 12:31:56 -07:00
Eric Schulte
563994842d ob-exp: better caching on export
- calling org-babel-process-params on the parameters before the hash
    is calculated
  - calculating the hash before the noweb references are expanded

* lisp/ob-exp.el (org-babel-exp-src-block): When block will eventually
  be evaluated, pre-calculate the hash before noweb expansion, and
  expand the parameters before hash calculation.
  (org-babel-exp-do-export): Pass pre-calculated hash through to
  `org-babel-exp-results'.
  (org-babel-exp-results): Compare pre-calculated hash to results hash.
2011-02-27 11:01:56 -07:00
Dan Davison
88b793946b ob: Fix bug in export of lob one-liners
* lisp/ob-exp.el (org-babel-exp-lob-one-liners): Only replace the
match if a non-nil result is returned
2011-02-07 22:27:14 +00:00
Eric Schulte
5b35351002 ob-exp: simplifications and unification of inline and normal code blocks
* lisp/ob-exp.el (org-babel-exp-do-export): Simplified, no longer need
  to do anything to export code.
  (org-babel-exp-results): No longer returns a replacement for the
  code block.
  (org-babel-exp-inline-src-blocks): Simplified.
  (org-babel-exp-src-block): Removed unnecessary pluralization from
  function name.
2011-01-27 14:55:19 -07:00
Eric Schulte
d0ca215105 ob: simplified code block exportation -- same process for inline and regular blocks
* lisp/ob-exp.el (org-babel-exp-inline-src-blocks): Simplified
  exportation of inline code blocks using normal code block execution
  mechanism to insert results.
  (org-babel-exp-results): Results exportation mechanism is unified
  for both inline and regular code blocks.
* lisp/ob.el (org-babel-where-is-src-block-result): Returns the point
  after an inline code block for inline code blocks.
2011-01-27 12:48:45 -07:00
Carsten Dominik
7666ba421f Version number back to 7.4 2010-12-10 18:49:40 +01:00
Carsten Dominik
76a25715c9 Bump version number to 7.5 2010-12-10 18:43:10 +01:00
Dan Davison
666e6ed5e7 babel: Wipe error buffer clean at start of execution
* lisp/ob-eval.el (org-babel-error-buffer-name): Define new variable.

  (org-babel-eval-error-notify): Use new variable `org-babel-error-buffer-name'
  (org-babel-eval): Make temp error buffer invisible to the user with
		    initial space in name.
  (org-babel-eval-wipe-error-buffer): New function to wipe the error message buffer.

* lisp/ob-exp.el (org-babel-eval-wipe-error-buffer): Declare external function
  `org-babel-eval-wipe-error-buffer'.
  (org-babel-exp-results): Wipe error buffer clean at outset of execution

* lisp/ob.el (org-babel-execute-src-block-maybe): Wipe error buffer clean at
  outset of execution
  (org-babel-eval-wipe-error-buffer): Declare external function
				    `org-babel-eval-wipe-error-buffer'.
2010-11-23 13:26:31 +00:00
Eric Schulte
c676f62361 passing header arguments through to called code blocks
* lisp/ob-lob.el (org-babel-lob-get-info): including pass-through
  header arguments in results variable header argument string

* lisp/ob.el (org-babel-execute-src-block): working with new header
  argument setup
  (org-babel-parse-header-arguments): only split header argument
  strings when []'s are balanced
2010-11-08 14:18:33 -07:00
Bastien Guerry
6630edbd0f Set version number to 7.3 2010-11-07 14:52:14 +01:00
Carsten Dominik
82af72eef7 Push version number to 7.02trans 2010-10-29 09:11:46 +02:00
Eric Schulte
43c712fccb unifying ob-process-params and ob-expand-variables
* lisp/ob-exp.el (org-babel-exp-results): replaced old function call

* lisp/ob-lob.el (org-babel-lob-execute): replaced old function call

* lisp/ob-ref.el (org-babel-ref-parse): removed obsolete optional
  params argument, also no longer chokes when handed an
  already-resolved reference

  (org-babel-ref-resolve): removed obsolete optional params argument

* lisp/ob.el (org-babel-ref-parse): updated function declaration
  (org-babel-get-src-block-info): replaced old function call
  (org-babel-header-arg-names): indentation
  (org-babel-execute-src-block): now expanding all parameters using
  the newly combined org-babel-process-params
  (org-babel-switch-to-session-with-code): indentation
  (org-mode-hook): indentation
  (org-babel-process-params): now packages all results into the
  parameter alist and does variable expansion, this should no longer
  be called from inside of language functions
  (org-babel-expand-noweb-references): updated function call for newly
  removed obsolete function parameter
2010-10-21 13:06:01 +01:00
Eric Schulte
9931dae20a babel: exporting now working with the new ob-get-src-block-info schema
includes a simple export test

* lisp/ob-exp.el (org-babel-exp-in-export-file): wrapper for
  collecting information from within the original export file

  (org-babel-exp-src-blocks): simplified through use of the above
  macro

  (org-babel-exp-code): simplified through the use of new functions
  for parsing header arguments

  (org-babel-exp-results): simpler high-level organization, also this
  is now where the expansion of variable references takes place during
  export

* lisp/ob.el (org-babel-expand-variables): broke variable replacement
  in a parameter list into it's own function

  (org-babel-get-src-block-info): now using the above function
2010-10-21 13:05:59 +01:00