* lisp/org-table.el (org-table-relative-ref-may-cross-hline): Remove
variable.
* etc/ORG-NEWS: Document removal.
This variable was declared obsolete in August 2009. See
2cc99fbb0a.
* lisp/org-table.el (org-table-TBLFM-begin-regexp): Take into
consideration that table lines are not required to end with "|".
(org-table-calc-current-TBLFM): Properly clean markers at the end of
the process.
(org-table-TBLFM-begin): Small refactoring.
* lisp/org.el (org-at-TBLFM-p): Prevent false positives.
Suggested-by: Oleg Sivokon <olegsivokon@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/97461>
* lisp/org-table.el (org-table-end): Do not return a maker.
(org-table-align):
(org-table-insert-column):
(org-table-delete-column):
(org-table-move-column):
(org-table-convert):
(org-table-recalculate): Create needed marker.
Creating a marker was not documented, and not always needed.
`copy-marker' should be used when they are. Markers not deactivated
slow down editing.
* lisp/org.el (org-do-sort): Remove function.
* lisp/org-table.el (org-table--do-sort): New function.
(org-table-sort-lines): Use new function.
`org-do-sort' is really a helper function for `org-table-sort-lines',
which applies exclusively on tables.
* lisp/org.el (org-do-sort): Implement the ?f and ?F sorting options
to allow user-defined table sorting. Update the DOC string.
* lisp/org-table (org-table-sort-lines): Add the GETKEY-FUNC and
COMPARE-FUNC optional parameters and pass them to the call to
`org-do-sort'. Update the DOC string.
* doc/org.texi (org-table-sort-lines): Update documentation to reflect
the addition of the ?f and ?F options.
This patch implements user-defined extraction and comparison functions
for table sorting. Thanks to Nicolas Goaziou for helpful suggestions.
This patch was discussed on the Org Mode mailing list:
http://article.gmane.org/gmane.emacs.orgmode/93334
* lisp/org-table.el (org-table-recalculate): Removed message for start of
processing. When ALL is t, messages are printed at most once per second.
TINYCHANGE
* lisp/org-table.el (org-table-convert-region-max-lines): New
defcustom.
(org-table-convert-region): Use it.
This is useful primarily for babel results. If a large table-like
object is returned by a code block, this function will become bogged
down in trying to read it, and hang emacs (necessitating a C-g). This
situation most commonly arises when a :results none header has been
omitted. With the patch, the user will not experience a hang, but
rather an error message.
* lisp/org-table.el (org-table-set-constants): Remove function.
* lisp/org.el (org-set-regexps-and-options): Rewrite function. Merge
it with `org-set-regexps-and-options-for-tags'.
(org-set-regexps-and-options-for-tags): Remove function
(org--setup-collect-keywords, org--setup-process-tags): New functions.
(org-mode): Remove `org-set-regexps-and-options-for-tags' call.
(org-agenda-prepare-buffers): Use optimized setup for tags in all
cases. Improve docstring.
(org-make-options-regexp): Make returned regexp more efficient.
* lisp/org-table.el (orgtbl-ctrl-c-ctrl-c): Do not set constants.
Orgtbl provides limited support for Org tables in an arbitrary major
mode. Any Org syntax outside tables, including keywords, cannot be
supported in this environment. Therefore there is no point to look
for CONSTANTS keywords. Moreover, constants can be defined within the
table.
This change allows to move `org-table-set-constants' feature to
`org-set-regexps-and-options' and treat CONSTANTS keyword like any
other keyword (e.g., defining it in a SETUPFILE).
* org.el (org-mode-map): change key-binding from C-c p to C-c " a add
C-c " g key-binding for Gnuplot
(org-tbl-menu): add sub-menu for plotting featuring Gnuplot and ascii
plot
* org-table.el (orgtbl-setup): add sub-menu for plotting featuring
Gnuplot and ascii plot
* org-table.el (org-table-formula-create-columns): New variable.
(org-table-recalculate): Use the new org-table-formula-make-new-cols
customization to control whether org creates new columns when
a formula explicitly targets them.
* lisp/org-table.el (org-table--to-generic-cell): Use
`org-element-interpret' data when parameter :raw is non-nil so
pseudo elements and objects are not ignored.
* testing/lisp/test-org-table.el (test-org-table/to-latex): Add test.
Thanks to Giuseppe Lipari for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/91559
* org-table.el (orgtbl-ascii-plot): Top-level function.
(orgtbl-ascii-draw), (orgtbl-uc-draw-grid), (orgtbl-uc-draw-cont):
Functions which go in table formulas for drawing bars.
* org.el: key binding and menu binding
Thanks to Michael Brand and Nicolas Goaziou for feedback and
enhancements.
This reverts commit 79873390ed.
The fix was wrong and gave rise to a different problem - see
http://thread.gmane.org/gmane.emacs.orgmode/89945
Revert it for now, since there is a workaround for the original
problem and plan on a correct fix in the near future.
* org-table.el (org-table-eval-formula): Throw an error when
trying to replace a wrong formula specifier.
Thanks to Alejandro Suarez for reporting this.
* org-table.el (org-table-clean-before-export): The regexes match
spaces in addition to the special characters that might be used in
the first column as special marking characters. Remove the space
from the character class.
In addition, the `special' variable included a backslash which
afaict does nothing: delete it.
The function itself takes an optional parameter which is not used by
any of the callers: get rid of it. Getting rid of it allows a small
simplification of the code.
The bug was found by Thorsten Grothe:
http://thread.gmane.org/gmane.emacs.orgmode/88634
org-table.el (org-table-align): Use `org-string-width'.
This aims at better guessing how wide a narrowed table column should
actually be. This won't work perfectly with variable-width scripts,
as it still only narrows in full-column increments, but it's better
than before.
org-table.el (org-table-justify-field-maybe): Use
`org-string-width' instead of `length' to calculate the visual
width of table cells.
This is useful for e.g. double-width charsets.
* org-table.el (org-table-copy-increment): Use a number as a
way to force a fixed increment value.
(org-table-copy-down): Increment by the difference between the
current field and the field in the row above. This is the
default behavior. To go back to the previous behavior (to
always increment by 1 unit), set `org-table-copy-increment'
to 1.
Thanks to Michael Brand for suggesting this.
* org-clock.el (org-clocktable-write-default): New parameter
":sort" to sort a column by a sorting type. E.g., a value of
:sort (1 . ?a) will sort the first column alphabetically. The
sorting line is the third one, table-wise, which is usually
the first line that contains user data.
* org.texi (The clock table): Document the new :sort
parameter.
* org.el (org-do-sort): Recognize [H]H:MM strings as time
values and allow sort-by-time to process them.
* org-table.el (org-table-sort-lines): Mention that sorting by
time also recognize [H]H:MM time values.
* org-compat.el (org-move-to-column): Always ignore invisible
text in agenda buffer, and when there is both a bracket link
and '(org-link) as a member of `buffer-invisibility-spec'.
Add a docstring.
* org.el (org-align-tags-here): Add docstring and remove
useless arguments when calling `org-move-to-column'.
* org-table.el (org-table-copy-down)
(org-table-find-dataline, org-table-move-row)
(org-table-insert-hline, org-table-kill-row):
* org-agenda.el (org-agenda-next-item)
(org-agenda-previous-item, org-agenda-todo)
(org-agenda-priority, org-agenda-show-new-time)
(org-agenda-clock-in, org-agenda-clock-out): Remove useless
arguments when calling `org-move-to-column'.
This fixes the issue about S-RET not placing the cursor in the right
table field when M-x org-toggle-link-display RET removed '(org-link)
from `buffer-invisibility-spec' and some other discrepancies (like
S-M-<up> not restoring point correctly when there is a bracket link
before point, or M-x org-clock-display RET not aligning overlays
correctly, etc.
Thanks to Matt Lundin and Michael Brand for tracking issues
about this.
* org-table.el (org-table-copy-down)
(org-table-find-dataline, org-table-move-row)
(org-table-insert-hline, org-table-kill-row): Use
`org-move-to-column' with the IGNORE-INVISIBLE arg set to `t',
so that abbreviated rows don't interfer with setting the
cursor back at the correct position.
Thanks to Jason Lewis for reporting one of these bugs.
* lisp/org-table.el (org-table-remote-reference-indirection): Change
the local variable START to a value that will be still valid after
`replace-match'.
* lisp/org-table.el (org-table-remote-reference-indirection): Use the
optional arg START of `string-match' to improve performance and to
avoid endless loop on user error.
* doc/org.texi (References): Add description for indirection of
NAME-OR-ID.
* lisp/org-table.el (org-table-eval-formula): Make use of
`org-table-remote-reference-indirection'.
(org-table-remote-reference-indirection): New function.
* testing/lisp/test-org-table.el
(test-org-table/remote-reference-indirect): Change to use remote
reference indirection.
* org-macs.el (org-autoload): Delete.
* org-docview.el ("docview"): Fix declarations and require
doc-view directly.
* org-id.el (org-id-copy)
(org-id-get-with-outline-path-completion)
(org-id-get-with-outline-drilling, org-id-new):
* org-colview.el:
(org-colview-initial-truncate-line-value)
(org-columns-open-link, org-string-to-number):
* org-clock.el:
(org-clock-put-overlay, org-count-quarter, org-clock-loaded):
* org-archive.el (org-get-local-archive-location):
* org-agenda.el (org-agenda-todo-custom-ignore-p):
Autoload.
Those functions were autoloaded from within calls to `org-autoload'
in org.el, we now autoload them from where they live.
* lisp/org-table.el (org-table-convert-region): Interpret string SEPARATOR
as regular expression. Triple `C-u' prefix arg will read a regexp
from the user.
* doc/org.texi: Document that `C-c |' can take a regexp as a separator.
Patch modified from a proposal by Francois.
* org-table.el (org-table-sum): Fix rounding error when
summing times.
Thanks to Paul Stansell for reporting this and to Nick Dokos for
providing the fix.
See http://mid.gmane.org/87ppv2atvf.fsf%40gmail.com for the
discussion of this bug.
* lisp/ob-core.el (org-babel-get-rownames),
lisp/org-table.el (org-table-transpose-table-at-point): Replace the
inadvertent use of mapcar* (from cl) by plain mapcar and direct cons
manipulation.
The error was not caught at compilation time since both source files
require cl during compilation for using cl macros. These were the
only uses of mapcar* in Org, but I didn't check for other cl
_functions_ (as opposed to macros, which would need to be checked if
their implementation uses cl functions).
* lisp/org.el (org-table-clean-did-remove-column),
lisp/org-table.el (org-table-clean-did-remove-column): Move defvar,
this dynamic variable is only used in org-table.
* lisp/org-table.el (org-table-colgroup-info): Remove unused defvar
for `org-table-colgroup-info'.
(org-table-clean-before-export): Let-bind regular expression strings
and remove unused matching group. Use
`org-table-clean-did-remove-column' in cond statement rather than
branching via if to avoid code duplication. Remove the code
associated with the removed `org-table-colgroup-info'.
(orgtbl-export): Remove unused internal function.
* lisp/org-table.el (org-table-get-remote-range): Extend regexp to
match "#+NAME: table" additionally to "#+TBLNAME: table".
* testing/lisp/test-org-table.el: Add test.
* testing/org-test.el (org-test-table-target-expect): Allow several
tables to support testing remote references in the last table.
* org-table.el (org-table-copy-down): Don't move cursor when
getting the field.
This prevents the point from moving when inadvertently calling
S-RET outside of a table.