Carsten Dominik <[EMAIL PROTECTED]> writes:

> On Aug 20, 2007, at 4:46, Bake Timmons wrote:
>>        (concat "[" (mapconcat
>>                 (lambda (x)
>> @@ -9131,8 +9132,11 @@
>>         ((match-end 3)
>>      ;; format match, just advance
>>      (setq start (match-end 0)))
>> -       ((and (> (match-beginning 0) 0)
>> -         (equal ?. (aref s (max (1- (match-beginning 0)) 0))))
>> +       ((let ((pos (match-beginning 0)))
>> +      (and (> pos 0)
>> +           (equal ?. (aref s (1- pos)))
>> +           ;; not using .. for a range reference
>> +           (or (< pos 2) (not (equal ?. (aref s (1- pos)))))))
>>      ;; 3.e5 or something like this.  FIXME: is this ok????
>>      (setq start (match-end 0)))
>>         (t
>
> Could you please explain this part of the patch to me?
> Thanks.

After fixing the mapconcat bug, I reloaded the code and observed an
erroneous conversion of a range in an elisp formula.  E.g., during
formula debugging A1..B1 becomes @1$1..B1 instead of @[EMAIL PROTECTED]  More
debugging showed that A1 match correctly takes the final branch of the
cond within the org-table-convert-refs-to-rc function and is
converted, but that the match for B1 erroneously matched the second
condition of the cond form, i.e., it is treated as something in
scientific notation and is incorrectly skipped over.  Thus, I changed
the test to ensure that no additional "." is adjacent to the already
recognized ".".  Moreover, I eliminated the max function call, since a
positive number minus one is already nonnegative.  Thanks.


_______________________________________________
Emacs-orgmode mailing list
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

Reply via email to