emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] [PATCH] Avoid parsing Calc's HMS forms as ranges


From: Andreas Seltenreich
Subject: [Orgmode] [PATCH] Avoid parsing Calc's HMS forms as ranges
Date: Wed, 15 Oct 2008 12:34:06 +0200
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/22.3 (gnu/linux)

Hi,

I just tried to do the following computation using Calc's HMS forms in
an Org table, but Org got stuck in an endless loop when computing the
last row.

--8<---------------cut here---------------start------------->8---
| samples                                | mean              |    stddev |
|----------------------------------------+-------------------+-----------|
| [11'10, 9'55, 9'7, 10'45, 10'14, 9'29] | 0@ 10' 6.6666667" | 46.150479 |
| [6'37, 6'18, 7'31, 7'45, 7'35, 6'25]   | 0@ 7' 1.8333333"  | 39.265337 |
| [10'8, 9'48, 9'50]                     | 0@ 9' 55.333333"  | 11.015141 |
|----------------------------------------+-------------------+-----------|
|                                        | 0@ 27' 2.8027"    | 61.587066 |
#+TBLFM: 
$2=vmean(@$-1/1")*1"::$3=vsdev(@$-2/1")::@5$2=vsum(@address@hidden)::@5$3=sqrt(@2^2
 + @3^2 + @4^2)
--8<---------------cut here---------------end--------------->8---

Patching org-table.el like this appears to fix the problem:

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/org-table.el b/lisp/org-table.el
index 339c01c..f17e072 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -2116,7 +2116,8 @@ not overwrite the stored one."
        ;; Check for old vertical references
        (setq form (org-rewrite-old-row-references form))
        ;; Insert complex ranges
-       (while (string-match org-table-range-regexp form)
+       (while (and (string-match org-table-range-regexp form)
+                   (> (length (match-string 0 form)) 1))
          (setq form
                (replace-match
                 (save-match-data
--8<---------------cut here---------------end--------------->8---

Here's a ChangeLog entry in case this fix is actually correct:

--8<---------------cut here---------------start------------->8---
2008-10-15  Andreas Seltenreich  <address@hidden>

        * org-table.el (org-table-eval-formula): Avoid parsing Calc's HMS
        forms as ranges.

--8<---------------cut here---------------end--------------->8---

regards,
andreas
-- 
Org-mode version 6.09a
Calc version 2.1
GNU Emacs 22.3.1 (x86_64-unknown-linux-gnu) of 2008-09-15 on tengen




reply via email to

[Prev in Thread] Current Thread [Next in Thread]