* lisp/ob-lob.el (org-babel-lob-execute): changing indentation to
improve line length
(org-babel-lob-get-info): now catching indexes passed through lob
calls
(org-babel-lob-one-liner-regexp): now matches optional indexes into
variable results
* lisp/org-table.el (org-table-convert-region): don't continue csv
importation which the point catches the end, this fixes an infinite
loop which was caused by the (point) never catching up with the
"end" marker
Hi,
I've just noticed that I get an infinite loop when importing csv tables
into Org-mode tables. For example calling
(org-table-convert-region (point-min) (point-max) '(4))
from inside of a simple text file containing the following
--8<---------------cut here---------------start------------->8---
1,2,3
1
2
3
5
--8<---------------cut here---------------end--------------->8---
results in an infinite loop. The attached patch fixes this issue [1],
however it seems weird that this would just surface now, given that the
code in question has been in the repo since last fall
,----
| commit 59c9c4cdd4
| Author: Carsten Dominik <carsten.dominik@gmail.com>
| Date: Mon Oct 26 12:31:16 2009 +0100
|
| Correctly interpret CVS tables with quoted fields
|
| The csv parser was very primitive, ignoring quoted fields. This is
| now fixed.
`----
Has anyone else noticed this problem? Should I go ahead and apply this
patch?
Best -- Eric
Footnotes:
[1]
>From 3c3f4ca9a34dca23051ca2f4e4518b416338d4f4 Mon Sep 17 00:00:00 2001
From: Eric Schulte <schulte.eric@gmail.com>
Date: Mon, 19 Jul 2010 13:45:25 -0700
Subject: [PATCH] org-table: fix infinite loop in table importation
* lisp/org-table.el (org-table-convert-region): don't continue csv
importation which the point catches the end, this fixes an infinite
loop which was caused by the (point) never catching up with the
"end" marker
* lisp/org-macs.el (org-string-nw-p): New function.
* lisp/org-capture.el (org-capture-import-remember-templates): Interpret
an empty string as request to use `org-default-notes-file'.
(org-capture-target-buffer): If the FILE is not a (non-empty) string,
use `org-default-notes-file'.
* lisp/org-colview-xemacs.el (org-columns-compile-map):
(org-columns-number-to-string):
(org-columns-string-to-number): Handle estimate ranges.
(org-estimate-mean-and-var): New function.
(org-estimate-combine): New function.
(org-estimate-print): New function.
(org-string-to-estimate): New function.
Carsten,
Here is a patch for a new 'est+' summary type, including corresponding changes for xemacs and the manual. I've done basic testing on the GNU emacs version, but not the xemacs code.
I'm not sure the change to the manual provides the right amount of information
in the right place; I'd be happy to re-write to make it find in
better. Similarly, the name of the summary type is entirely up to you.
I didn't know whether to send this directly to you, or to the list; if it should go to the list I'd be happy to send it there directly.
Thanks for the chance to contribute,
Mike
This is the eighth patch in a series that makes some straightforward
corrections to a number of docstrings. Each change is normally to:
- correct a typo, or
- fix up hyperlinks to function or variable names, or
- ensure slightly better conformance with the documentation guidelines
and tips given in the Elisp manual
* lisp/org-capture.el (org-capture-fill-template): Do inserting file
contents and expanding sexp escapes first, so that further escape
processing can happen in the inserted text.
This was a request by Sebastian Rose.
This is the fifth patch in a series that makes some straightforward
corrections to a number of docstrings. Each change is normally to:
- correct a typo, or
- fix up hyperlinks to function or variable names, or
- ensure slightly better conformance with the documentation guidelines
and tips given in the Elisp manual
No attempt is made to provide missing docstrings or document arguments.
Cheers,
Phil
* lisp/ob-tangle.el (org-babel-with-temp-filebuffer): a macro for
quickly visiting files with cleanup
(org-babel-tangle): now using the locally defined
with-temp-filebuffer macro
Thanks for Nicolas Goaziou for pointing this out
* lisp/ob-exp.el (org-babel-exp-src-blocks): don't attempt to export
blocks when there is no info match -- this fixes a bug in the latex
export of code blocks located before the first headline
* lisp/ob-ocaml.el (org-babel-expand-body:ocaml): now able to
initialize complex ocaml values without error
(org-babel-execute:ocaml): more sophisticated parsing of results,
only grabbing the line immediately preceding the eoe indicator
(org-babel-ocaml-elisp-to-ocaml): a new function for converting
complex elisp values like lists to ocaml syntax
(org-babel-ocaml-read-array): quoting arrays so that they aren't
interpreted as function calls
This is the third patch in a series that makes some straightforward
corrections to a number of docstrings. Each change is normally to:
- correct a typo, or
- fix up hyperlinks to function or variable names, or
- ensure slightly better conformance with the documentation guidelines
and tips given in the Elisp manual
No attempt is made to provide missing docstrings or document arguments.
Cheers,
Phil
This is a second patch in a series that makes some straightforward
corrections to a number of docstrings. Each change is normally to:
- correct a typo, or
- fix up hyperlinks to function or variable names, or
- ensure slightly better conformance with the documentation guidelines
and tips given in the Elisp manual
No attempt is made to provide missing docstrings or document arguments.
Cheers,
Phil
This patch makes some straightforward corrections to a number of
docstrings. Each change is normally to:
- correct a typo, or
- fix up hyperlinks to function or variable names, or
- ensure slightly better conformance with the documentation guidelines
and tips given in the Elisp manual
No attempt is made to provide missing docstrings or document arguments.
Cheers,
Phil
* org-agenda.el (org-search-view): Fixed inclusion of agenda-archives
in org-agenda-text-search-extra-files.
org-search-view lacked a local binding for
org-agenda-text-search-extra-files. Thus when pop was called on the
variable, the agenda-archives symbol was removed and subsequent
searches failed to include the archives.
* lisp/ob-ref.el (org-babel-ref-resolve-reference): removed an error
introduced while fixing compiler warnings -- required mirroring of
the count cl-seqs function under the org-mode namespace.
* lisp/org.el (org-count): adding an org-mode version of the cl-seqs
count function
* lisp/ob-dot.el (org-babel-expand-body:dot): now inserts variable
arguments rather than ignoring them
(org-babel-execute:dot): making use of org-babel-expand-body:dot
* lisp/ob-ref.el (org-babel-ref-index-list): slight code cleanup, also
now allowing an empty index to mean the entire range
* doc/org.texi (var): updated the documentation of Babel index
referencing to include working examples covering the full range of
index behavior
* lisp/org-capture.el (org-capture-set-plist): Make sure txt is a string
before calling `string-match'.
(org-capture-templates): Fix customization type.
Modified from a patch proposal by Johan Friis.
TINYCHANGE
* lisp/org-latex.el (org-export-latex-preprocess): Make a special case for \nbsp.
(org-latex-entities): Remove the entry for \nbsp.
(org-latex-entities-exceptions): Variable removed.
* lisp/org-list.el (org-list-send-list): Parse list from its true beginning.
* lisp/org.el (org-ctrl-c-ctrl-c): Maybe send the list when at a list item.
* doc/org.texi (Radio lists): Fix bug in description of radio lists.
* lisp/org.el (org-insert-link): Correctly determine if we should use
a relative path.
Aidan Gauland writes:
> If I create a link with C-c C-l and give it a relative "file:" link, a
> link is created with an absolute path. For example, C-c C-l
> file:../foo.org <RET> foo puts
> [[file:~/path/to/working-directory/foo.org][foo]] in the buffer. I was
> expecting [[file:../foo.org][foo]].
* lisp/ob.el (org-babel-get-src-block-info): ensure that we don't
match (and return info for) source blocks without a language
* lisp/org-exp.el (org-export-replace-src-segments-and-examples):
updated source code block regexp so that the presence of a language
can be explicitly checked. Also now raising an error when a source
block does not have a language.
* lisp/org-agenda.el (org-agenda-action): Document capture key and add it
to the prompt.
TINYCHANGE
A trivial patch to add some documentation for 'capture' to org-agenda (against
HEAD).
Thanks to Austin Frank for suggesting these features and to Jonathan
Arkell for an implementation suggestion
This commit
- adds `org-babel-goto-named-result' for jumping to named results
- adds TAB-completion to `org-babel-goto-named-src-block'
- standardizes on "-src-" instead of "-source-" in all babel functions
- adds `org-babel-[next/previous]-src-block' functions and keybindings
- documents the above in orgcard.tex
* doc/orgcard.tex: update documentation of babel keybindings
* lisp/ob-exp.el (org-exp-res/src-name-cleanup): standardized on
"-src-" instead of "-source-"
* lisp/ob-keys.el (org-babel-key-bindings): updating keybindings for
new movement functions
* lisp/ob-lob.el (org-babel-lob-ingest): standardized on "-src-"
instead of "-source-"
* lisp/ob-ref.el (org-babel-ref-resolve-reference): standardized on
"-src-" instead of "-source-"
* lisp/ob-tangle.el (org-babel-tangle-collect-blocks): standardized on
"-src-" instead of "-source-"
* lisp/ob.el (org-babel-src-name-regexp): standardized on "-src-"
instead of "-source-"
(org-babel-src-name-w-name-regexp): adding regexp for matching
source names along with their names
(org-babel-get-src-block-info): using new named source block regexp
(org-babel-result-regexp): adding optional whitespace after result
regexp
(org-babel-result-w-name-regexp): adding regexp for matching results
which have names
(org-babel-named-src-block-regexp-for-name): standardized on "-src-"
instead of "-source-"
(org-babel-map-src-blocks): standardized on "-src-" instead of
"-source-"
(org-babel-where-is-src-block-head): standardized on "-src-" instead of
"-source-"
(org-babel-goto-named-src-block): standardized on "-src-" instead of
"-source-", also added completing read
(org-babel-src-block-names): collects source block names from a file
or the current buffer
(org-babel-goto-named-result): function for jumping to a named
result
(org-babel-result-names): returns results names from a file or the
current buffer
(org-babel-next-src-block): jump to the next source block
(org-babel-previous-src-block): jump to the previous source block
* lisp/ob-sqlite.el (org-babel-expand-body:sqlite): now this function
expands variables
(org-babel-execute:sqlite): support for input of tabular data and
multiline code bodies
(org-babel-sqlite-expand-vars): support for tabular data
* lisp/ob-python.el (org-babel-python-mode): adding configuration
option to allow users to control whether they use python.el or
python-mode.el
(org-babel-python-initiate-session-by-key): updated for use with new
configuration option
* lisp/ob-tangle.el (org-babel-tangle): applying optional target-file
argument through integration into the default header arguments
(allowing overwriting through standard header-argument merging), and
allowing a default setting of (:tangle . "no") to be overwritten
when a target-file is specified.
* org-capture.el (org-capture): Check if
`org-capture-link-is-already-stored' is bound before evaluating.
If `org-protocol-capture' is the first function that calls
`org-capture', this variable is locally bound while it is globally
unbound. I.e. org-capture.el was not loaded before, the defvar not
evaluated. If `org-protocol-capture' exits, Emacs restores the global
value, which is void.
* lisp/ob-tangle.el (org-babel-post-tangle-hook): adding hook which
can be used to call functions from inside of code files tangled by
org-babel-tangle
(org-babel-tangle): added call to org-babel-post-tangle-hook
* lisp/ob-exp.el (org-export-babel-evaluate): customization variable
which can be used to inhibit the evaluation of code blocks on export
(org-babel-exp-results): code block evaluation is now contingent on
the value of org-export-babel-evaluate
* lisp/ob.el (org-babel-default-header-args): Added (:tangle . "no")
to the default header arguments. This is already the intended
behavior, but it's better to be more explicit about such things.
* org-feed.el (org-feed-unescape, org-feed-parse-atom-feed): Load XML
library if necessary.
Function that use xml.el must require 'xml to make sure it is loaded
at runtime.
* lisp/org-beamer.el (org-beamer-amend-header): Put extra header
last in header.
Tassilo Horn writes:
> I'm doing a LaTeX beamer presentation with org. The org doc starts with
> these lines:
>
> --8<---------------cut here---------------start------------->8---
> #+STARTUP: beamer
> #+LaTeX_CLASS: beamer
> #+TITLE: Implementieren, Integrieren, Installieren
> #+AUTHOR: Tassilo Horn
> #+EMAIL: horn@uni-koblenz.de
> #+LANGUAGE: de
> #+BEAMER_FRAME_LEVEL: 2
> #+LaTeX_CLASS_OPTIONS: [presentation]
> #+BEAMER_HEADER_EXTRA: \usetheme[secheader]{Boadilla} \institute{Universitt Koblenz, IST}
> --8<---------------cut here---------------end--------------->8---
>
> In the presentation, the in Universitt is printed as an A with a ~ on
> top, followed by a d'. The reason is that the BEAMER_HEADER_EXTRA is
> put before the input encoding declaration. To be clear, org produces a
> TeX file that starts with
>
> --8<---------------cut here---------------start------------->8---
> % Created 2010-07-06 Tue 08:57
> \documentclass[presentation]{beamer}
> \usetheme[secheader]{Boadilla} \institute{Universitt Koblenz, IST}
> \usepackage[utf8]{inputenc}
> \usepackage[T1]{fontenc}
> --8<---------------cut here---------------end--------------->8---
>
> but it should be at least:
>
> --8<---------------cut here---------------start------------->8---
> % Created 2010-07-06 Tue 08:57
> \documentclass[presentation]{beamer}
> \usepackage[utf8]{inputenc}
> \usetheme[secheader]{Boadilla} \institute{Universitt Koblenz, IST}
> \usepackage[T1]{fontenc}
> --8<---------------cut here---------------end--------------->8---
>
> In general, I'd say that it would be even more safe to put the extra
> headers below all default headers.
Org-publish: correctly find files in projects which didn't define a base-extension.
Previously, (org-publish-get-project-from-filename "~/org/file.org") would return nil because the constructed regular expression "^/home/dc/org/.+\\.\\(\\)$" required a dot at the end.
#+BEGIN_QUOTE
#+END_QUOTE
* org-exp-blocks.el (org-export-blocks-format-ditaa)
(org-export-blocks-format-dot): Remove text properties of body before
calculating cache hash.
Otherwise one and the same ditta/graphviz image has a different hash
depending on the text properties of the body.
E.g. `org-export-region-as-html' with target buffer 'string passed the
body of the block without possible indentation property `wrap-prefix'
while `org-export-as-html' does.
* lisp/org-capture.el (org-capture-templates): Allow the template
to come from a file or function call.
(org-capture-place-entry): Get the template from file or function.
* org-agenda.el (org-agenda-bulk-action): Don't create marker for
position if target is entire file.
If the target of a bulk refile operation is the entire file,
`org-refile-get-location' returns nil for the refile position.
Creating a marker for the target file's buffer at position nil returns
a marker that points nowhere (Cf. GNU Emacs Lisp Reference Manual,
31.6). `org-refile' adds headings to level 1 if the target position
for the target file is nil -- and hence a marker that points nowhere
is not nil, tries to jump to nowhere.
from the comments of the new file
This software provides EMACS org-babel export support for message
sequence charts. The mscgen utility is used for processing the
sequence definition, and must therefore be installed in the system.
Mscgen is available and documented at
http://www.mcternan.me.uk/mscgen/index.html
This code is directly inspired by Eric Schulte's ob-dot.el
Example:
msc {
A,B;
A -> B [ label = "send message" ];
A <- B [ label = "get answer" ];
}
Header for alternative file type:
This differs from most standard languages in that
1) there is no such thing as a "session" in mscgen
2) we are generally only going to return results of type "file"
3) we are adding the "file" and "filetype" header arguments
4) there are no variables
* lisp/ob.el (org-babel-confirm-evaluate): adding a new :eval header
argument which can be used to control evaluation
* doc/org.texi (eval): adding documentation for the new :eval header
argument
* lisp/ob-tangle.el (org-babel-spec-to-string): removed
`org-babel-tangle-w-comments', now just use the :comments header arg
to control the insertion of comments on tangling
For some reason ob-R refuses to compile when it requires ob-comint.
When (require 'ob-comint) is not included in ob-R.el everything
compiles without error, but warnings are thrown because the
arguments to a macro defined in ob-comint are mis-interpreted as
functions.
When (require 'ob-comint) is added to ob-R.el then it throws errors
complaining that the last argument to a function is nil and should
be a string. I don't understand this error at all and can't fix it.
* lisp/org.el (org-babel-load-languages): this variable controls which
languages will be loaded by org-babel. It is customizable through
the customize interface.
(org-babel-do-load-languages): load those languages in
org-babel-load-languages and disable those with nil cdr's
* lisp/babel/ob.el (org-confirm-babel-evaluate): variable used to
control evaluation of code blocks, default value it t, meaning all
code block evaluation requires confirmation
(org-babel-confirm-evaluate): function used to request confirmation
of code block evaluation from the user
(org-babel-execute-src-block): this function is the single point of
entry for evaluation of code blocks (whether initiated through lob
call, through direct code block evaluation, or as part of file
exportation). Every time this function is called it will now
request confirmation from the user. The newly added
`org-confirm-babel-evaluate' variable can be used to configure this
behavior.
(org-babel-no-eval-on-ctrl-c-ctrl-c): This variable can be used to
inhibit evaluation of code blocks with C-c C-c.
* lisp/org.el (org-ctrl-c-ctrl-c): added documentation of code block
evaluation behavior
* lisp/babel/ob-keys.el (org-babel-key-bindings): adding keybindings
for executing code blocks and for opening their results
* lisp/org-capture.el (org-capture-set-target-location): Store
exact positions for file+regexp and file+function targets.
(org-capture-place-entry, org-capture-place-item)
(org-capture-place-table-line, org-capture-place-plain-text): Respect
exact positions.
(org-capture-finalize): Make sure we are at the beginning of a line
when fixing the empty lines after the entry.