Commit Graph

697 Commits

Author SHA1 Message Date
Nicolas Goaziou 0bdf4cedc5 Merge branch 'maint' 2015-12-15 00:03:57 +01:00
Thierry Banel cfb82b7c62 org-table: Fix missing dollar bug revealed by commit 16c7594
* org-table.el (orgtbl-ascii-plot): Add missing dollar in formula.
2015-12-14 23:55:17 +01:00
Nicolas Goaziou 9534b159e8 Merge branch 'maint' 2015-12-04 21:37:18 +01:00
Nicolas Goaziou 06c6ba4ac3 org-table: Fix named fields with TAB-indentation
* lisp/org-table.el (org-table-eval-formula): Properly parse named
  fields when indentation of current line ends with a TAB character.

* testing/lisp/test-org-table.el (test-org-table/tab-indent): New test.

Reported-by: Piotr Gajewski <pg7@outlook.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/103290>
2015-12-04 21:34:40 +01:00
Nicolas Goaziou bd79085be0 Merge branch 'maint' 2015-11-26 22:57:21 +01:00
Nicolas Goaziou d85ddfba0d org-table: Fix c651e150cc
* lisp/org-table.el (org-table-get-stored-formulas): Correctly detect
  named fields in formulas' LHS.
* testing/lisp/test-org-table.el (test-org-table/named-field):
(test-org-table/named-column): New tests.

Reported-by: "Stefan-W. Hahn" <stefan.hahn@s-hahn.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/103119>
2015-11-26 22:56:06 +01:00
Nicolas Goaziou 50359f705a Merge branch 'maint' 2015-11-23 23:23:06 +01:00
Nicolas Goaziou 16c7594a0f org-table: Fix `org-table-eval-formula'
* lisp/org-table.el (org-table-get-formula):
(org-table-store-formulas): Column formulas references are stored along
with their dollar-sign since "Fix `org-table-get-range' with column
formulas". Update functions accordingly.

Reported-by: John Hendy <jw.hendy@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/103056>
2015-11-23 23:19:14 +01:00
Nicolas Goaziou 39813c4d93 Merge branch 'maint' 2015-11-12 23:26:02 +01:00
Nicolas Goaziou c651e150cc org-table: Fix `org-table-get-range' with column formulas
* lisp/org-table.el (org-table-get-stored-formulas): Store complete
  column formulas including the "$" sign.  Remove interactive status.
(org-table-get-range): Handle nicely "$n..$m" ranges.  Apply
changes to `org-table-get-stored-formulas'.  Rename some bindings for
clarity.
(org-table-expand-lhs-ranges): Ignore column formalas.
(org-table-remote-reference-indirection): Refactor function.

Reported-by: Junpeng Qiu <qjpchmail@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/102861>
2015-11-12 23:24:18 +01:00
Nicolas Goaziou f0a48b9064 Merge branch 'maint' 2015-11-11 01:28:54 +01:00
Nicolas Goaziou 7bd20d0c6e org-table: Fix code typo
* lisp/org-table.el (org-table-analyze): Fix code typo introduced in
  5702908.
2015-11-11 01:28:27 +01:00
Nicolas Goaziou 64a602e822 Merge branch 'maint' 2015-11-11 00:41:06 +01:00
Nicolas Goaziou 57029084b5 org-table: Fix bug with "$>" reference
* lisp/org-table.el (org-table-analyze): Fix incorrect replacement for
  "$>" reference when the table ends on a hline.
* testing/lisp/test-org-table.el (test-org-table/end-on-hline): New
  test.
2015-11-11 00:37:57 +01:00
Aaron Ecay e4cd3dd22b Remove some home-grown copies of cl-lib functions.
* lisp/org.el (org-count, org-remove-if, org-remove-if-not):
(org-reduce, org-every, org-some): Obsolete, use cl-lib versions
everywhere.
(org-sublist): Reimplement in terms of `cl-subseq'; make obsolete.
2015-11-06 12:50:40 +00:00
Aaron Ecay 07e16c2fc5 Use setq-local and defvar-local.
* lisp/org-macs.el (org-set-local): Remove.  All callers changed.
* lisp/org-clock.el:
* lisp/org-colview.el:
* lisp/org-macro.el:
* lisp/org-mouse.el:
* lisp/org-table.el:
* lisp/org.el: Use defvar-local.
* lisp/org-agenda.el:
* lisp/org-capture.el:
* lisp/org-crypt.el:
* lisp/org-ctags.el:
* lisp/org-plot.el:
* lisp/org.el:
* lisp/ox-odt.el:
* lisp/ox.el: Use setq-local instead of set + make-local-variable.

Changes in contrib:

* contrib/lisp/org-colview-xemacs.el (org-colview-xemacs-set-local): New
macro. Adjust old callers of `org-set-local'.
2015-11-05 16:47:38 +00:00
Nicolas Goaziou f0bf77e82a Activate lexical binding in some libraries
* lisp/ob-C.el (org-babel-prep-session:C):
(org-babel-load-session:C):
* lisp/ob-J.el:
(org-babel-expand-body:J):
(org-babel-execute:J):
* lisp/ob-R.el:
(org-babel-expand-body:R):
* lisp/ob-abc.el:
(org-babel-execute:abc):
(org-babel-prep-session:abc):
* lisp/ob-asymptote.el:
(org-babel-execute:asymptote):
(org-babel-prep-session:asymptote):
* lisp/ob-awk.el:
(org-babel-expand-body:awk):
* lisp/ob-calc.el:
(org-babel-expand-body:calc):
* lisp/ob-clojure.el:
* lisp/ob-comint.el:
(org-babel-comint-in-buffer):
(org-babel-comint-with-output):
(org-babel-comint-eval-invisibly-and-wait-for-file):
* lisp/ob-coq.el:
* lisp/ob-css.el:
(org-babel-execute:css):
(org-babel-prep-session:css):
* lisp/ob-ditaa.el:
(org-babel-execute:ditaa):
(org-babel-prep-session:ditaa):
* lisp/ob-dot.el:
(org-babel-execute:dot):
(org-babel-prep-session:dot):
* lisp/ob-ebnf.el:
* lisp/ob-emacs-lisp.el:
* lisp/ob-eval.el:
* lisp/ob-forth.el:
* lisp/ob-fortran.el:
(org-babel-execute:fortran):
(org-babel-prep-session:fortran):
(org-babel-load-session:fortran):
* lisp/ob-gnuplot.el:
(org-babel-expand-body:gnuplot):
(org-babel-prep-session:gnuplot):
(org-babel-gnuplot-initiate-session):
* lisp/ob-groovy.el:
(org-babel-prep-session:groovy):
(org-babel-groovy-initiate-session):
* lisp/ob-haskell.el:
(org-babel-haskell-initiate-session):
* lisp/ob-io.el:
(org-babel-prep-session:io):
(org-babel-io-initiate-session):
* lisp/ob-java.el:
(org-babel-execute:java):
* lisp/ob-js.el:
* lisp/ob-keys.el:
* lisp/ob-latex.el:
(org-babel-prep-session:latex):
* lisp/ob-ledger.el:
(org-babel-execute:ledger):
(org-babel-prep-session:ledger):
* lisp/ob-lilypond.el:
(org-babel-lilypond-commands):
(org-babel-lilypond-process-basic):
(org-babel-prep-session:lilypond):
(org-babel-lilypond-parse-line-num):
* lisp/ob-lisp.el:
* lisp/ob-makefile.el:
(org-babel-execute:makefile):
(org-babel-prep-session:makefile):
* lisp/ob-matlab.el:
* lisp/ob-maxima.el:
(org-babel-prep-session:maxima):
* lisp/ob-mscgen.el:
(org-babel-prep-session:mscgen):
* lisp/ob-ocaml.el:
(org-babel-execute:ocaml):
(org-babel-prep-session:ocaml):
* lisp/ob-octave.el:
(org-babel-execute:octave):
(org-babel-octave-initiate-session):
* lisp/ob-org.el:
(org-babel-prep-session:org):
* lisp/ob-perl.el:
(org-babel-prep-session:perl):
(org-babel-perl--var-to-perl):
(org-babel-perl-initiate-session):
* lisp/ob-picolisp.el:
(org-babel-expand-body:picolisp):
(org-babel-execute:picolisp):
* lisp/ob-plantuml.el:
(org-babel-execute:plantuml):
(org-babel-prep-session:plantuml):
* lisp/ob-processing.el:
(org-babel-prep-session:processing):
* lisp/ob-python.el:
(org-babel-python-initiate-session):
* lisp/ob-ref.el:
(org-babel-ref-resolve):
* lisp/ob-ruby.el:
(org-babel-ruby-initiate-session):
* lisp/ob-sass.el:
(org-babel-execute:sass):
(org-babel-prep-session:sass):
* lisp/ob-scala.el:
(org-babel-execute:scala):
(org-babel-prep-session:scala):
(org-babel-scala-initiate-session):
* lisp/ob-scheme.el:
* lisp/ob-screen.el:
(org-babel-prep-session:screen):
(org-babel-screen-session-write-temp-file):
(org-babel-screen-test):
* lisp/ob.el:
* lisp/org-colview.el:
(org-columns-todo):
(org-columns-set-tags-or-toggle):
(org-columns-new):
(org-columns-uncompile-format):
(org-agenda-colview-summarize):
* lisp/org-footnote.el:
(electric-indent-mode):
* lisp/org-indent.el:
(org-indent-refresh-maybe):
* lisp/org-list.el:
* lisp/org-macro.el:
(org-macro--collect-macros):
* lisp/org-src.el:
* lisp/org-table.el:
(sort-fold-case):
(org-table-create):
(org-table-field-info):
(org-table-transpose-table-at-point):
(org-table-remove-rectangle-highlight):
(orgtbl-create-or-convert-from-region):
(org-define-lookup-function):
* lisp/ox-ascii.el:
(org-ascii-format-drawer-function):
(org-ascii--has-caption-p):
(org-ascii-bold):
(org-ascii-center-block):
(org-ascii-clock):
(org-ascii-code):
(org-ascii-dynamic-block):
(org-ascii-entity):
(org-ascii-example-block):
(org-ascii-export-snippet):
(org-ascii-export-block):
(org-ascii-fixed-width):
(org-ascii-footnote-reference):
(org-ascii-horizontal-rule):
(org-ascii-inline-src-block):
(org-ascii-format-inlinetask-default):
(org-ascii-italic):
(org-ascii-keyword):
(org-ascii-latex-environment):
(org-ascii-latex-fragment):
(org-ascii-line-break):
(org-ascii-node-property):
(org-ascii-planning):
(org-ascii-quote-block):
(org-ascii-radio-target):
(org-ascii-special-block):
(org-ascii-src-block):
(org-ascii-statistics-cookie):
(org-ascii-subscript):
(org-ascii-superscript):
(org-ascii-strike-through):
(org-ascii-timestamp):
(org-ascii-underline):
(org-ascii-verbatim):
(org-ascii-verse-block):
(org-ascii-filter-headline-blank-lines):
(org-ascii-filter-paragraph-spacing):
(org-ascii-filter-comment-spacing): Use lexical binding.
2015-10-26 01:56:00 +01:00
Nicolas Goaziou 609e1e28fb Fix "undefined symbol 'org-export-create-backend"
* lisp/org-table.el (orgtbl-to-generic): Make sure "ox.el" is loaded
  before converting a radio table.

Reported-by: Dave Marquardt <davemarq@linux.vnet.ibm.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/101642>
2015-10-01 21:55:13 +02:00
Nicolas Goaziou 2e1b93db41 org-table: Fix radio tables
* lisp/org-table.el (orgtbl-to-generic): Strip text properties from
  output.

Reported-by: "Charles C. Berry" <ccberry@ucsd.edu>
<http://permalink.gmane.org/gmane.emacs.orgmode/101425>
2015-09-23 22:58:25 +02:00
Paul Eggert c86a10b0bc Backport commit 284c470 from Emacs master branch
Backslash cleanup in Elisp source files
284c470ef752967fcd8bae6a450dc138462b1e49
Paul Eggert
Thu Sep 17 16:09:39 2015 -0700
2015-09-21 18:38:39 -04:00
Kyle Meyer 0839dc4322 Protect remaining apostrophes in docstrings
Protect apostrophes not covered by the last backport.  Convert
expressions like '(...)  to \\='(...)  and symbols written as 'name to
`name'.  (In addition to ensuring the correct display, the latter also
improves consistency with many Org docstrings.)

If these aren't protected, Emacs 25 may display them as curved quotes in
the help buffer, depending on the value of text-quoting-style.
2015-09-21 18:38:39 -04:00
Kyle Meyer d77a52a502 Backport quote-related commits from Emacs
These changes are the combination of the commits below (in order
applied).  Unlike other backports, these are applied in one commit
because they are closely related and because some of the later commits
reverse changes in earlier commits.  Changes to message and help quote
display for Emacs 25 seem to be here to stay.  The quote protections are
required to ensure grave accents and apostrophes are displayed as
intended in Emacs 25, and they should not affect earlier versions.

  Quoting fixes in lisp/org
  6cd2629bd1b3ce77d29ac28e29237c94a4197116
  Paul Eggert
  Mon Aug 31 00:29:40 2015 -0700

  More-conservative ‘format’ quote restyling
  fbb5531fa11d13854b274d28ccd329c9b6652cfc
  Paul Eggert
  Sun Aug 23 22:39:06 2015 -0700

  Prefer directed to neutral quotes
  875a5d0ead827d3da32ecbd30e739a29f07bbc87
  Paul Eggert
  Mon Aug 24 23:57:25 2015 -0700

  Escape ` and ' in doc
  19532d147b431a4fe34f088d6de07891c48e2c5c
  Paul Eggert
  Tue Sep 1 18:23:21 2015 -0700

  Fix some more docstring etc. quoting problems
  26bd978d87dfbf9baa115cd961a67d42b416c4bf
  Paul Eggert
  Thu Sep 3 15:32:54 2015 -0700

  Go back to grave quoting in source-code docstrings etc.
  6afef3f6ca2f3009c722b84e249903b7f807b044
  Paul Eggert
  Mon Sep 7 16:09:27 2015 -0700
2015-09-21 18:38:18 -04:00
Kyle Meyer 0cf9f17c55 Use substitute-command-keys more
* lisp/ob-core.el (org-confirm-babel-evaluate):
(org-babel-no-eval-on-ctrl-c-ctrl-c):
(org-babel-hash-at-point):
* lisp/org-agenda.el (org-agenda-log-mode-items):
(org-agenda-auto-exclude-function):
(org-search-view):
(org-todo-list):
(org-tags-view):
(org-agenda-log-mode):
(org-agenda-show-the-flagging-note):
* lisp/org-clock.el (org-clock-out-when-done):
* lisp/org-id.el (org-id-link-to-org-use-id):
* lisp/org-table.el (org-table-allow-automatic-line-recalculation):
(org-table-edit-formulas):
* lisp/org.el (org-support-shift-select):
(org-remove-highlights-with-change):
(org-refile-use-cache):
(org-use-fast-todo-selection):
(org-time-stamp-rounding-minutes):
(org-agenda-text-search-extra-files):
(org-cycle):
(org-ctrl-c-ctrl-c): Use substitute-command-keys.
2015-09-21 18:33:45 -04:00
Nicolas Goaziou 54a65250a8 org-table: Silence byte-compiler 2015-09-19 16:36:26 +02:00
Nicolas Goaziou 6d2ab40719 org-table: Fix radio tables containing macros
* lisp/org-table.el (orgtbl-to-generic): Export macros as-is, even if
  they are undefined.
* testing/lisp/test-org-table.el (test-org-table/to-generic): Add test.

Radio tables are now using a minimal set-up for export.  In particular,
no macro is expanded, and no Babel code is executed.  If any of these is
needed, use `org-export-string-as' or `org-export-region-as' instead.

Reported-by: Mark Edgington <edgimar@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/100621>
2015-09-19 13:25:12 +02:00
Nicolas Goaziou 46f3f4c626 org-table: Fix number-or-marker-p error
* lisp/org-table.el (org-table-goto-field): Fix number-or-marker-p
  error.

Initial patch by Rasmus <rasmus@gmx.us>.

Reported-by: Scott Randby <srandby@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/99715>
2015-08-09 02:12:47 +02:00
Nicolas Goaziou a70604eb63 org-table: Fix computation with backwards ranges
* lisp/org-table.el (org-table-get-range): Use correct values to extract
  range.  This is important when range is defined backwards (e.g.,
  @-I..@-II).

Reported-by: Sebastien Vauban
<http://permalink.gmane.org/gmane.emacs.orgmode/99430>
2015-08-03 22:58:39 +02:00
Nicolas Goaziou 8094d01a68 org-table: Simplify `org-table-sort-lines'
* lisp/org-table.el (org-table-sort-lines): Rely on `sort-subr'.
  Refactor code.
(org-table--do-sort): Remove function.

* testing/lisp/test-org-table.el (test-org-table/sort-lines): Fix test.
2015-08-02 18:01:15 +02:00
Nicolas Goaziou 14d07c0e7d org-table: Improve tables' speed in large buffers
* lisp/org-table.el (org-table-auto-recalculate-regexp):
(org-table-recalculate-regexp):
(org-table-calculate-mark-regexp):
(org-table-column-names):
(org-table-column-name-regexp):
(org-table-local-parameters):
(org-table-named-field-locations):
(org-table-current-line-types):
(org-table-current-begin-pos):
(org-table-current-ncol):
(org-table-dlines):
(org-table-hlines): Improve docstrings.

(org-table-current-begin-line): Remove variable.

(org-table-save-field): New macro.

(org-table-get-specials): Remove function.
(org-table-analyze): New function, renamed from
`org-table-get-specials'.

(org-table-find-row-type): Remove function.
(org-table--row-type): New function, renamed from
`org-table-find-row-type'.

(org-table-align): Use new macro.

(org-table-field-info):
(org-table-insert-column):
(org-table-delete-column):
(org-table-move-column):
(org-table-sort-lines):
(org-table-paste-rectangle):
(org-table-wrap-region):
(org-table-current-field-formula):
(org-table-get-formula):
(org-table-maybe-recalculate-line):
(org-table-eval-formula):
(org-table-get-range):
(org-table--descriptor-line):
(org-table-recalculate):
(org-table-expand-lhs-ranges):
(org-table-edit-formulas):
(org-table-show-reference):
(org-table-get-remote-range): Apply changes above.  Refactor code.

(org-table-check-inside-data-field):
(org-table-current-column):
(org-table-current-dline):
(org-table-line-to-dline):
(org-table-copy-region):
(org-table-rotate-recalc-marks):
(org-table-fedit-post-command):
(org-table-fedit-convert-buffer):
(org-table-highlight-rectangle): Refactor code.

(org-table-goto-field): New function.

* lisp/org-capture.el (org-capture-place-table-line): Apply change made
  to table internals.

The point of this commit is to remove dependency on `org-current-line'
and `org-goto-line', which are both expensive in large buffers.  Now,
lines are relative to the beginning of the current table instead of
global (i.e., relative to the beginning of the buffer).
2015-08-02 18:01:12 +02:00
Nicolas Goaziou 8344f29dac org-table: Speed-up `org-table-{begin,end}'
* lisp/org-table.el (org-table-border-regexp): Improve docstring.
(org-table-begin):
(org-table-end): Assume point is in a table already.  In this case,
using parser is not necessary anymore.
2015-08-02 17:56:13 +02:00
Nicolas Goaziou 84d5986cdf org-table: Fix code comments 2015-08-02 17:56:12 +02:00
Nicolas Goaziou 00170d401f org-table: Remove outdated functions
* lisp/org-table.el (org-table-colgroup-line-p,
  org-table-cookie-line-p): Remove functions.

* etc/ORG-NEWS: Signal removal.

These functions were used in the pre Org 8.0, specifically in HTML
export back-end.  They are no longer accurate since they tolerate some
HTML entities whereas Org syntax doesn't.
2015-08-02 17:55:55 +02:00
Nicolas Goaziou bf37cd09b1 org-table: Do not trim output of radio tables
* lisp/org-table.el (orgtbl-to-generic): Leading and trailing spaces
  could be significant, so do not trim result.  However, remove the
  final newline character.

Reported-by: lom pik <lompikvoila@gmail.com> <>
<http://permalink.gmane.org/gmane.emacs.orgmode/99171>
2015-07-23 00:34:02 +02:00
Nicolas Goaziou 120dcd1d13 org-table: Fix table alignment
* lisp/org-table.el (org-table-align): Refactor function fix wrong
  alignment bug.
* lisp/org-compat.el (org-format-transports-properties-p): Remove
  variable.
* testing/lisp/test-org.el (test-org/fill-paragraph): Fix test

Reported-by: William Denton <wtd@pobox.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/98901>
2015-07-09 17:53:33 +02:00
Rasmus be019c4339 Autoload orgtbl-exp-regexp
* org-table.el (orgtbl-exp-regexp): Add autoload cookie.

Reported-by: Robert Klein <roklein@roklein.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/98887>
2015-07-07 14:42:31 +02:00
Nicolas Goaziou f03d96572e Silence byte-compiler 2015-06-28 16:50:08 +02:00
Nicolas Goaziou 6d60138260 org-table: Do not modify buffer needlessly when aligning table
* lisp/org-table.el (org-table-align): Compare new table with old one
  before replacing it.  Only replace modified lines.
2015-06-28 16:21:45 +02:00
Nicolas Goaziou 03eb88661b Use parser for `org-at-table-p' and al.
* lisp/org-table.el (org-table-begin):
(org-table-end): Refactor using parser.

* lisp/org.el (org-at-table-p):
(org-at-table.el-p): Refactor using parser.

(org-meta-return): Use `org-at-table-p'.

(org-at-table-hline-p):
(org-table-recognize-table.el): Small refactoring.
2015-06-28 14:51:31 +02:00
Nicolas Goaziou c916ea54f0 org-table: Remove `org-table-relative-ref-may-cross-hline'
* 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.
2015-06-28 10:34:31 +02:00
Nicolas Goaziou 3924989b4f org-table: Fix formulas with relative ranges in current row
* lisp/org-table.el (org-table-eval-formula): Fix formulas with
  relative ranges in current row.

Reported-by: Eric S Fraga <e.fraga@ucl.ac.uk>
<http://permalink.gmane.org/gmane.emacs.orgmode/97727>
2015-06-09 15:03:27 +02:00
Nicolas Goaziou c0dec9a8bc org-table: Fix durations extracted from node properties
* lisp/org-table.el (org-table-formula-substitute-names): Convert
  durations when needed.  Refactor code.

* testing/lisp/test-org-table.el (test-org-table/duration): New test.

Reported-by: Daniele Pizzolli <dan@toel.it>
<http://permalink.gmane.org/gmane.emacs.orgmode/97252>
2015-05-11 01:20:37 +02:00
Nicolas Goaziou 6ac8db9dba Fix TBLFM line handling
* 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>
2015-05-08 10:46:07 +02:00
Nicolas Goaziou cff54cd127 org-table: `org-table-end' does not return a marker
* 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.
2015-04-06 09:38:21 +02:00
Nicolas Goaziou f6bd2a9cb4 org-table: Fix docstrings
* lisp/org-table.el (org-table-beginning-of-field):
(org-table-end-of-field): Swap docstrings.
2015-03-29 14:14:32 +02:00
Nicolas Goaziou 0d24086657 Update some copyright years 2015-02-16 01:40:07 +01:00
Nicolas Goaziou b5d9f4be4d org-table: Allow accentuated characters in remote table names
* lisp/org-table.el (org-table-eval-formula): Allow a larger set of
  characters in remote name.

Reported-by: flav <flav.justflav@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/75690>
2015-02-01 01:03:45 +01:00
Nicolas Goaziou 53592f4e25 org-table: Fix typo
* lisp/org-table.el (org-table-show-reference): Fix typo.
2015-01-23 00:16:58 +01:00
Aaron Ecay 9f75cea40d Obsolete ‘org-at-regexp-p’.
* lisp/org.el (org-at-regexp-p): Remove, adding an obsolete function
alias.
(org-in-regexp): Tidy docstring.
(org-open-at-point):
(org-between-regexps-p):
* lisp/org-table.el (org-table-fedit-shift-reference):
(org-table-show-reference): Call ‘org-in-regexp’ instead.
2015-01-22 01:52:49 -05:00
Nicolas Goaziou ef523b0bca org-table: Fix `orgtbl-to-unicode'
* lisp/org-table.el (orgtbl-to-unicode): Remove dummy property.
2015-01-07 00:30:34 +01:00
Nicolas Goaziou 70f965535b org-table: Ignore filters and hooks in radio tables
* lisp/org-table.el (orgtbl-to-generic): Ignore user-defined filters
  and hooks.

* testing/lisp/test-org-table.el (test-org-table/to-generic): Add
  tests.

Suggested-by: Aaron Ecay <aaronecay@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/93795>
2015-01-05 12:39:26 +01:00
Nicolas Goaziou 44744bba2c org-table: Fix freeze with invalid hline reference
* lisp/org-table.el (org-table-find-row-type): Don't end up on the
  last hline, which doesn't exist, per
  e793158bc8.

Reported-by: Artis Rozentāls <artis.rozentals@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/93654>
2014-12-30 22:37:44 +01:00
Nicolas Goaziou 7dc8a1b362 Move `org-do-sort' into "org-table.el"
* 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.
2014-12-21 22:23:11 +01:00
Jon Snader 71b098702c org.el: Implement user-defined table sorting
* 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
2014-12-20 20:36:57 +01:00
Nathaniel Flath 90c047d2ff org-table.el: org-table-recalculate is quieter
* 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
2014-12-14 22:06:25 +01:00
Nathaniel Flath 2945c1e8c5 org-table.el: org-table-recalculate early returns
* lisp/org-table.el (org-table-recalculate): Add early return.

TINYCHANGE
2014-12-14 22:06:20 +01:00
Aaron Ecay b8d790a076 org-table: introduce an upper bound on `org-table-convert-region-max-lines'.
* 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.
2014-12-11 23:51:57 -05:00
Aaron Ecay f12e3d4589 org-table: various small fixes
* lisp/org-table.el (org-table-rewrite-old-row-references): Rename function.
(org-table-eval-formula): Update caller.
(org-table--to-generic-cell): Fix typo in string constant.
(orgtbl-to-orgtbl): Properly respect params argument.
2014-12-10 17:03:38 -05:00
Nicolas Goaziou 61a241f0dc Rewrite setup keywords initialization
* 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.
2014-10-28 14:23:52 +01:00
Nicolas Goaziou 0b74864bfb org-table: Do not look after CONSTANTS in Orgtbl mode
* 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).
2014-10-28 14:23:52 +01:00
Nicolas Goaziou 7f97406542 Bump Emacs version
* lisp/ob-core.el (org-babel-examplize-region):
* lisp/ob-exp.el (org-babel-exp-inline-code-template):
* lisp/org-table.el (org-table-copy-increment):
(org-table-formula-create-columns):
* lisp/org.el (org-agenda-ignore-drawer-properties):
(org-agenda-ignore-properties):
* lisp/ox-ascii.el (org-ascii-list-margin):
* lisp/ox-html.el (org-html-format-headline-function):
(org-html-format-inlinetask-function):
* lisp/ox-latex.el (org-latex-hyperref-template):
(org-latex-custom-id-as-label):
(org-latex-format-inlinetask-function):
(org-latex-known-warnings):
* lisp/ox-odt.el (org-odt-format-headline-function):
(org-odt-format-inlinetask-function):
* lisp/ox-texinfo.el (org-texinfo-format-headline-function): Bump
  Emacs version.
2014-10-24 11:56:09 +02:00
Thierry Banel 0e07eb5665 Ascii and Gnuplot key-bindings
* 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
2014-10-12 11:25:51 +02:00
Dima Kogan 1c1f91811d org-table: Field formulas can now create columns as needed
* 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.
2014-10-12 11:11:57 +02:00
Nicolas Goaziou 39eb7796e8 org-table: Fix :raw parameter in radio tables
* 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
2014-10-11 17:10:05 +02:00
Aaron Ecay 5bb58daa22 org-table: fix docstring
* lisp/org-table.el (org-table-get): Fix docstring.
2014-09-19 14:38:23 -04:00
Achim Gratz 1483df8c99 org-table: for compatibility, use org-file-equal-p
* lisp/org-table.el: Predicate function `file-equal-p' is not
  available in older Emacsen, use compatibility function
  `org-file-equal-p' instead.
2014-09-19 10:05:15 +02:00
Michael Brand 739136e17f Table formula: Fix for Lisp return value nil
* lisp/org-table.el (org-table-eval-formula): Substitute `listp' with
`consp'.

* testing/lisp/test-org-table.el (test-org-table/lisp-return-value):
Fix test.
2014-09-14 10:44:28 +02:00
Nicolas Goaziou 9209aa3c9d org-table: Use "ox.el" internally for radio tables
* lisp/org-table.el (org-table-clean-before-export, orgtbl-get-fmt,
  orgtbl-apply-fmt, orgtbl-eval-str, orgtbl-format-line,
  orgtbl-format-section): Remove functions.
(org-table-clean-did-remove-column, *orgtbl-table*, *orgtbl-rtn*,
  *orgtbl-hline*, *orgtbl-sep*, *orgtbl-default-fmt*, *orgtbl-fmt*,
  *orgtbl-efmt*, *orgtbl-lfmt*, *orgtbl-llfmt*, *orgtbl-lstart*,
  *orgtbl-llstart*, *orgtbl-lend*, *orgtbl-llend*): Remove variables.

(org-table-export, orgtbl-send-table): Apply function removal.  Do not
set `org-table-last-alignment' and `org-table-last-column-widths'
anymore.
(org-table-to-lisp, orgtbl-send-replace-tbl): Small refactoring.

(org-table--to-generic-table, org-table--to-generic-row,
org-table--to-generic-cell): New functions.
(orgtbl-to-generic): Rewrite function.  Handle :skip and :skipcols
parameters.
(orgtbl-to-latex, orgtbl-to-html, orgtbl-to-texinfo, orgtbl-to-orgtbl,
orgtbl-to-unicode): Use new `orgtbl-to-generic' features.

* testing/lisp/test-org-table.el (test-org-table/to-generic,
  test-org-table/to-latex, test-org-table/to-texinfo,
  test-org-table/to-html, test-org-table/to-unicode,
  test-org-table/send-region): New tests.

* doc/org.texi (Radio tables, A @LaTeX{} example, Translator
  functions): Update documentation.

* etc/ORG-NEWS (argument): Document new features.
2014-09-13 15:10:26 +02:00
Thierry Banel 851b779d1a org-table: Add ascii plotting in tables
* 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.
2014-08-29 10:00:35 +02:00
Konubinix 7a5f3fb5a5 Make the regexp matching the beginning of a table more explicit
* org-table.el (org-table-get-remote-range): Enhance regexp.

TINYCHANGE
2014-08-22 15:44:20 +02:00
Nick Dokos f15a83ab9f Merge branch 'maint'
Revert commit 79873390ed.
The fix was wrong and gave rise to a different problem - see

    http://thread.gmane.org/gmane.emacs.orgmode/89945
2014-08-20 22:18:07 -04:00
Nick Dokos 50da53de51 Revert "org-clean-before-export matches non-special columns spuriously"
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.
2014-08-20 22:14:53 -04:00
York Zhao 12d5d5f775 org-table.el (org-table-eval-formula): Fix variable name typo 2014-07-29 19:27:57 +02:00
Bastien Guerry d4799ebfc1 org-table.el (org-table-eval-formula): Better error throwing
* 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.
2014-07-27 15:05:48 +02:00
Nick Dokos db0130468b Merge branch 'maint' 2014-07-23 23:58:13 -04:00
Nick Dokos c9613c0cad When editing a table formula, point is not necessarily on its referent.
* org-table.el (org-table-show-reference): Call `set-window-start'
  with the calculated values `min' and `max', not with
  (point-min) and (point-max).

Reported by Luke Crook (http://article.gmane.org/gmane.emacs.orgmode/88610)
	    Thorsten Grothe (http://thread.gmane.org/gmane.emacs.orgmode/88698)
	    and Robert Klein in the latter thread.

Robert Klein bisected it down to 30220ffcdc.
2014-07-23 23:57:06 -04:00
Nick Dokos 335e97f5ab Merge branch 'maint'
Merge bug fix for org-table.el:org-table-clean-before-export.
2014-07-18 23:47:03 -04:00
Nick Dokos 79873390ed org-clean-before-export matches non-special columns spuriously
* 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
2014-07-18 23:44:46 -04:00
Bastien Guerry 4014947f31 Merge branch 'maint' 2014-06-12 12:05:00 +02:00
Bastien Guerry 30220ffcdc Prefer `set-window-start' over `recenter' in some places.
* org-agenda.el (org-agenda-show-1):
* org-table.el (org-table-show-reference):
* org.el (org-fix-ellipsis-at-bol)
(org-first-headline-recenter): Use `set-window-start' instead
of `recenter'.

* org-agenda.el (org-recenter-heading): Delete.
2014-06-12 12:04:24 +02:00
Bastien Guerry 66db8836b5 org-table.el (org-table-copy-down): Fix bug
* org-table.el (org-table-copy-down): When the text above does
not contain a number, fall back on incrementing by one.
2014-05-31 10:47:55 +02:00
Eric Abrahamsen 62950827ec Improve table column narrowing with variable-width strings
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.
2014-05-25 07:18:12 +02:00
Eric Abrahamsen 4af31090b4 Use string width in table field justification
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.
2014-05-25 07:18:06 +02:00
Bastien Guerry dd179e81f3 Minor reformatting 2014-05-24 11:52:36 +02:00
Bastien Guerry d6ac42b6aa Fix previous commit 2014-05-21 18:37:53 +02:00
Bastien Guerry 9c47412981 org-table.el (org-table-copy-down): Fix copying from a blank field
* org-table.el (org-table-copy-down): Fix copying from a blank
field.

Thanks to Michael Brand for reporting this.
2014-05-21 17:48:29 +02:00
Bastien Guerry 74168eea55 Merge branch 'maint' 2014-05-20 22:22:14 +02:00
Bastien Guerry b06dcf05a8 org-table.el (org-table-eval-formula): Fix conversion of inactive timestamps
* org-table.el (org-table-eval-formula): Fix conversion of
inactive timestamps to active ones.

Thanks to Gang Chen for reporting this.
2014-05-20 22:03:30 +02:00
Bastien Guerry d8fdaf89ae Continue enhancing 7ac468
Thanks to Michael Brand for his feedback.
2014-05-20 21:44:37 +02:00
Bastien Guerry b09ba2d4f1 Fix code typo in 7ac468
Thanks to Michael for reporting it.
2014-05-20 18:59:29 +02:00
Bastien Guerry 7ac468ff55 org-table.el (org-table-copy-increment): Change increment behavior
* 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.
2014-05-20 16:07:01 +02:00
Bastien Guerry 132da2db35 Let sort-by-time handle [H]H:MM strings and add a :sort parameter for clocktables
* 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.
2014-04-16 18:23:47 +02:00
Bastien Guerry 613333d665 Merge branch 'maint' 2014-03-20 15:07:11 +01:00
Bastien Guerry a3ec854cab Fix bugs wrt invisibility handline.
* 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.
2014-03-20 15:04:49 +01:00
Bastien Guerry 0db6b24164 Merge branch 'maint' 2014-02-06 09:58:30 +01:00
Bastien Guerry 323c7b3de2 org-table.el: Fix bugs about cursor repositioning
* 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.
2014-02-06 09:58:17 +01:00
Bastien Guerry cf2c7e9f18 Merge branch 'maint' 2014-01-30 11:59:57 +01:00
Bastien Guerry ca69fdd884 org-table.el (org-table-field-info): Throw a user error when not at a table
* org-table.el (org-table-field-info): Throw a user error when
not at a table.
2014-01-30 11:58:28 +01:00
Michael Brand 46f6fe3655 TBLFM remote ref indirection: Fix start
* 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'.
2014-01-13 20:23:11 +01:00
Michael Brand 9a5b8a7434 TBLFM remote ref: Improve indirection
* 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.
2014-01-12 11:52:40 +01:00
Michael Brand bc1d54b84b TBLFM remote ref: Add indirection of name or ID
* 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.
2014-01-12 10:53:06 +01:00
Michael Brand 9c1bc61cce Merge branch 'maint' 2014-01-09 20:11:07 +01:00
Michael Brand 34af2fe7ff Fix multiple TBLFM
Simplify commit release_8.2.4-14-geb28fe4 and commit
release_8.2.5c-8-ga2619b7.

* org-table.el (org-table-fix-formulas): Handle multiple #+TBLFM lines
with `forward-line'.
2014-01-09 20:10:19 +01:00
Bastien Guerry e0f46e9a1d Merge branch 'maint' 2014-01-09 11:03:11 +01:00
Bastien Guerry a2619b7145 org-table.el (org-table-fix-formulas): Fix commit eb28fe
Thanks to Michael Brand for reporting this.
2014-01-09 11:03:01 +01:00
Bastien Guerry f8e1745440 Merge branch 'maint'
Conflicts:
	contrib/lisp/org-favtable.el
2014-01-07 14:19:03 +01:00
Bastien Guerry 7d9a883b50 Update copyright years again.
Hint: copyright years are all updated in Emacs.
2014-01-07 14:18:17 +01:00
Bastien Guerry c41f5075ac Merge branch 'maint'
Conflicts:
	contrib/lisp/org-favtable.el
2014-01-05 06:36:11 +01:00
Bastien Guerry 0beda99171 Revert "Update copyright years."
This reverts commit 21105594fc.
2014-01-05 06:28:07 +01:00
Bastien Guerry 096ff7e078 Merge branch 'maint'
Conflicts:
	contrib/lisp/org-favtable.el
2014-01-04 18:58:12 +01:00
Bastien Guerry 21105594fc Update copyright years. 2014-01-04 18:56:11 +01:00
Bastien Guerry b291cdbe6d Merge branch 'maint' 2013-12-22 10:10:02 +01:00
Bastien Guerry eb28fe41dc org-table.el (org-table-fix-formulas): Handle multiple #+tblfm: lines
* org-table.el (org-table-fix-formulas): Handle multiple
#+tblfm: lines.

Thanks to Daniel Gerber for reporting this problem.
2013-12-22 10:09:53 +01:00
Bastien Guerry b6a1584fa6 Merge branch 'maint' 2013-11-22 22:33:05 +01:00
Nicolas Richard 9ff70abc14 Use key-description on the keys mentionned by the functions defined by
`orgtbl-mode'.
2013-11-22 22:32:50 +01:00
Bastien Guerry 9214000c21 Merge branch 'maint'
Conflicts:
	doc/org.texi
2013-11-17 09:17:39 +01:00
Bastien Guerry a6210cc9c2 Backport Paul's fixes from Emacs trunk (1/2)
See http://article.gmane.org/gmane.emacs.diffs/123123
2013-11-17 09:12:41 +01:00
Bastien Guerry 668ba5de0e Merge branch 'maint' 2013-11-15 06:56:10 +01:00
Bastien Guerry bf012136bd Remove org-autoload.
* 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.
2013-11-15 06:55:28 +01:00
Rick Frankel a2c71a6e35 org-table.el (org-table-recalculate): Generate user error if an hline relative reference is use on the LHS of a formula
* org-table.el (org-table-recalculate): Generate user error if
an hline relative reference is use on the LHS of a formula.

TINYCHANGE
2013-11-05 12:07:41 +01:00
Michael Brand fb5003ea63 org-table-transpose-table-at-point: Preserve indentation and point
* lisp/org-table.el (org-table-transpose-table-at-point): Preserve
indentatinon of first row. Restore point to transposed field in
transposed table.
2013-10-15 16:49:07 +02:00
Carsten Dominik 817cbca767 Allow regexp separator when converting the region to a table
* 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.
2013-09-29 12:27:09 +02:00
Michael Brand 0f5f58037d Fix table formula debugger error display
* lisp/org-table.el (org-table-eval-formula): Align the arrow pointing
to the error in a Calc formula to the other fomula debugger logs.
2013-09-07 16:21:38 +02:00
Carsten Dominik 4242b12d1b Fix typo. 2013-09-03 07:07:57 +02:00
Carsten Dominik 3f10db731c Improve docstring of `orgtbl-radio-table-templates'
* lisp/org-table.el (orgtbl-radio-table-templates): Improve docstring.
2013-09-02 11:33:54 +02:00
Carsten Dominik daf36fc918 Fix some issue with orgtbl-mode
* lisp/org-table.el (orgtbl-send-replace-tbl): Allow multiple spaces between
keywords in RECEIVE ORGTBL lines.
* doc/org.texi (A @LaTeX{} example): Fix typo in variable name.
2013-08-30 17:53:28 +02:00
Bastien Guerry 7be5f737f8 Merge branch 'maint' 2013-07-03 10:18:35 +02:00
Bastien Guerry 244aaa3d72 org-table.el (org-table-sum): Fix rounding error when summing times
* 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.
2013-07-03 10:18:22 +02:00
Bastien Guerry 5a36318511 Merge branch 'maint' 2013-06-28 09:13:41 +02:00
Achim Gratz 30581835bd do not use mapcar* for transposing tables
* 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).
2013-06-27 20:17:22 +02:00
Carsten Dominik 29797e921d Fix `interactive' statement in `org-table-convert-region'
* lisp/org-table.el (org-table-convert-region): Fix interactive statement.
2013-06-01 07:46:08 +02:00
Bastien Guerry 8b15ff9d07 Merge branch 'maint' 2013-05-15 16:31:54 +02:00
Bastien Guerry 0c31a4fcb6 org-table.el: Rename a variable and a function
* org-table.el (org-table-TBLFM-begin-regexp): Rename from
`org-TBLFM-begin-regexp'.
(org-table-calc-current-TBLFM): Rename from
`org-calc-current-TBLFM'.

* org.el (org-ctrl-c-ctrl-c): Require org-table if needed.
2013-05-15 16:18:37 +02:00
Achim Gratz 646f1ac426 org-table: several cleanups
* 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.
2013-05-12 21:10:19 +02:00
Michael Brand 92f3729857 Allow also "#+NAME: table" for remote references
* 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.
2013-04-26 23:17:48 +02:00
Bastien Guerry 2c46ecee4f org-table.el (org-table-get-remote-range): Fix typo
* org-table.el (org-table-get-remote-range): Fix typo.
2013-04-18 15:42:31 +02:00
Bastien Guerry 9ac7fabb46 org-table.el (org-table-copy-down): Don't move cursor when getting the field
* 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.
2013-04-11 00:32:33 +02:00
Bastien Guerry 01d6b355d8 Use #+NAME instead of #+TBLNAME
* org-table.el (org-table-get-remote-range): Fix docstring:
use #+NAME instead of #+TBLNAME.

* ob-ref.el: Use #+NAME instead of #+TBLNAME in comment.
2013-04-09 22:09:00 +02:00
Michael Brand 5625a6ed79 org-table.el: Fix range len bugs for empty ranges
(org-table-make-reference): A range with only empty fields should lead
to length 0.
* testing/lisp/test-org-table.el: Adapt expected for several
ert-deftest.

The range len bugs may lead to wrong calculations for range references
with empty fields when the range len is relevant.  Affects typically
Calc vmean on simple range and without format specifier EN.  Also
Lisp with e. g. `length' on simple range or with L.

It is worth a small compatibility change: For a range with only empty
fields it is now possible and necessary to choose different behaviors
of vmean by adding the format specifiers E and/or N.

This is a follow-up of commit
764315b3fc.
2013-04-09 19:05:20 +02:00
Rémi Vanicat 1f8822101b Correctly format orgtbl line when there is a :lfmt argument.
* org-table.el (orgtbl-format-line): Fix bug when formatting
line.

TINYCHANGE
2013-04-07 09:41:00 +02:00
Bastien Guerry 0625b53a07 org-table.el (orgtbl-apply-fmt): Enhance docstring
* org-table.el (orgtbl-apply-fmt): Enhance docstring.
2013-04-07 09:36:52 +02:00
Ippei FURUHASHI 67a55acb39 org-table.el: Fix a bug of leaving the inserted TBLFM line
* org-table.el (org-calc-current-TBLFM): Ensure to remove the
currently inserted TBLFM line, when calling `org-table-recalculate'
returns an error and the processing stops.

* testing/lisp/test-org-table.el: Add test.

When you hit =C-c C-c= at the line of "#+TBLFM: $2=$1*2::$2=$1**2" in

    | 1 |   |
    | 2 |   |
    #+TBLFM: $2=$1*1
    #+TBLFM: $2=$1*2::$2=$1**2

you got:

    | 1 |   |
    | 2 |   |
    #+TBLFM: $2=$1*2::$2=$1**2
    #+TBLFM: $2=$1*1
    #+TBLFM: $2=$1*2::$2=$1**2

with the error message of:

    user-error: Double definition `$2=' in TBLFM line, please fix by hand

In this case, you expected:

    | 1 |   |
    | 2 |   |
    #+TBLFM: $2=$1*1
    #+TBLFM: $2=$1*2::$2=$1**2
2013-04-06 15:15:44 +02:00
Ippei FURUHASHI 6693456dd7 org-table.el (org-calc-current-TBLFM): Add function
* org-table.el (org-calc-current-TBLFM): New function to
re-calculate the table by applying the #+TBLFM in the line
where the point is.

* org.el (org-ctrl-c-ctrl-c): Call `org-calc-current-TBLFM' when
point is in the #+TBLFM line.

* testing/lisp/test-org-table.el: Add test.
2013-04-05 08:37:51 +02:00
Ippei FURUHASHI c8c17460f1 org-table.el (org-TBLFM-begin): Add function
* org-table.el (org-TBLFM-begin): New defun.
(org-TBLFM-begin-regexp): New variable.

* testing/lisp/test-org-table.el: Add test.
2013-04-05 08:37:51 +02:00
Bastien Guerry de4d520610 org-table.el (orgtbl-to-generic): Fix bug when exporting the cells of radio tables with 'hline
* org-table.el (orgtbl-to-generic): Fix bug when exporting the
cells of radio tables with 'hline.

Thanks to David Kincaid for reporting this.
2013-04-04 00:21:31 +02:00
Carsten Dominik 21fead7888 Revert "Work around calc-eval regression"
This reverts commit 10e239f434.
2013-03-25 15:48:56 +01:00
Carsten Dominik 10e239f434 Work around calc-eval regression
* lisp/org-table.el (org-table-eval-formula): Work-around for
  calc-eval regression.

Calc-eval can no longer be called without initializing the
*Calculator* buffer first.
2013-03-25 11:48:21 +01:00
Bastien Guerry 70417caa90 org-table.el (orgtbl-to-latex, orgtbl-to-texinfo): Export cells to LaTeX and Texinfo before sending the table
* org-table.el (orgtbl-to-generic): New parameter `backend' to
export cells content using a specific backend.
(orgtbl-to-latex, orgtbl-to-texinfo): Export cells to LaTeX
and Texinfo before sending the table.

Thanks to Luca Sabbatini for reporting a problem that led to this change.
2013-03-19 19:39:35 +01:00
Bastien Guerry d8969931a9 org-table.el: Fix setting of constants.
* org.el (org-set-regexps-and-options): Use
`org-table-set-constants'.

* org-table.el (org-table-set-constants): New function.
(orgtbl-ctrl-c-ctrl-c): Use it.

Thanks to Oliver Večerník for reporting problems here.
2013-03-19 19:39:34 +01:00
Achim Gratz e541a1dd19 fix a stray "user-error" introduced in bd89d6a02f
* lisp/org-table.el (org-table-eval-formula): The condition-case to
  check for must be "error", not "user-error".

This fixes these test failures:

4 unexpected results:
   FAILED  test-org-table/references/format-specifier-E
   FAILED  test-org-table/references/format-specifier-EL
   FAILED  test-org-table/references/format-specifier-L
   FAILED  test-org-table/references/format-specifier-none

Reported in:
http://permalink.gmane.org/gmane.emacs.orgmode/67450
http://permalink.gmane.org/gmane.emacs.orgmode/67503
2013-03-03 20:29:58 +01:00
Bastien Guerry bd89d6a02f org-table.el: Use `user-error' instead of `error' for user errors
* org-table.el (org-table-convert-region, org-table-export)
(org-table-align, org-table-beginning-of-field)
(org-table-copy-down, org-table-check-inside-data-field)
(org-table-insert-column, org-table-find-dataline)
(org-table-delete-column, org-table-move-column)
(org-table-insert-row, org-table-insert-hline)
(org-table-kill-row, org-table-paste-rectangle)
(org-table-wrap-region, org-table-sum, org-table-get-formula)
(org-table-get-formula, org-table-get-stored-formulas)
(org-table-fix-formulas, org-table-maybe-eval-formula)
(org-table-rotate-recalc-marks, org-table-eval-formula)
(org-table-get-range, org-table-get-descriptor-line)
(org-table-find-row-type, org-table-recalculate)
(org-table-iterate, org-table-iterate-buffer-tables)
(org-table-formula-handle-first/last-rc)
(org-table-edit-formulas, org-table-fedit-shift-reference)
(org-rematch-and-replace, org-table-shift-refpart)
(org-table-fedit-finish, org-table-fedit-lisp-indent)
(org-table-show-reference, org-table-show-reference)
(org-table-show-reference, org-table-show-reference)
(org-table-force-dataline, orgtbl-error, orgtbl-export)
(orgtbl-send-replace-tbl, org-table-to-lisp)
(orgtbl-send-table, orgtbl-send-table, orgtbl-send-table)
(orgtbl-toggle-comment, orgtbl-insert-radio-table)
(orgtbl-to-unicode, org-table-get-remote-range)
(org-table-get-remote-range, org-table-copy-dow)
(org-table-check-inside-data-field, org-table-insert-colum)
(org-table-find-dataline, org-table-delete-colum)
(org-table-move-column, org-table-insert-ro)
(org-table-insert-hline, org-table-kill-ro)
(org-table-paste-rectangle, org-table-wrap-regio)
(org-table-sum, org-table-get-formul)
(org-table-get-stored-formulas, org-table-fix-formula)
(org-table-maybe-eval-formul, org-table-rotate-recalc-marks)
(org-table-eval-formul, org-table-get-range)
(org-table-get-descriptor-lin, org-table-find-row-type)
(org-table-recalculat, org-table-iterate)
(org-table-iterate-buffer-table)
(org-table-formula-handle-first/last-r)
(org-table-edit-formulas, org-table-fedit-shift-referenc)
(org-rematch-and-replace, org-table-shift-refpar)
(org-table-fedit-finish, org-table-fedit-lisp-inden)
(org-table-show-reference, org-table-force-datalin)
(orgtbl-error, orgtbl-export, orgtbl-send-replace-tb)
(org-table-to-lisp, orgtbl-send-tabl, orgtbl-toggle-comment)
(orgtbl-insert-radio-tabl, orgtbl-to-unicode)
(org-table-get-remote-range): Use `user-error' instead of
`error' for user errors.
2013-03-02 15:40:09 +01:00