From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dale Subject: Bug: clocktable doesn't preserve formulas with :scope file-with-archives Date: Fri, 21 Oct 2016 13:13:57 -0500 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a1140ccc4e16731053f640315 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:35485) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bxeL3-0007S8-Em for emacs-orgmode@gnu.org; Fri, 21 Oct 2016 14:14:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bxeL2-0006Lo-JV for emacs-orgmode@gnu.org; Fri, 21 Oct 2016 14:14:41 -0400 Received: from mail-it0-x22b.google.com ([2607:f8b0:4001:c0b::22b]:36438) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1bxeL2-0006KX-Cp for emacs-orgmode@gnu.org; Fri, 21 Oct 2016 14:14:40 -0400 Received: by mail-it0-x22b.google.com with SMTP id 139so237688430itm.1 for ; Fri, 21 Oct 2016 11:14:38 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org --001a1140ccc4e16731053f640315 Content-Type: text/plain; charset=UTF-8 Hi! I've found that the "#+TBLFM:" in a clocktable can get changed or deleted when used together with ":scope file-with-archives". Here's a minimal org file to reproduce with: ------8<------ * Test :LOGBOOK: CLOCK: [2016-10-20 Thu 17:42]--[2016-10-20 Thu 18:03] => 0:21 :END: #+BEGIN: clocktable :scope file-with-archives #+TBLFM: $3=string("foo") #+END: ------8<------ Steps to reproduce: 1. emacs -Q, load above file with org-mode from Git 2. Update clocktable dblock (move to "#+BEGIN" and C-c C-c) Expected result: a third column is added with value "foo" in every row; #+TBLFM line is preserved Observed result: table has two columns, the second of which contains "foo" in every row; #+TBLFM line changes from $3=string("foo") to $2=string("foo") If you keep updating the block, the formula's "$2" then becomes "$1". Do it one more time and the "#+TBLFM:" is preserved but now the formula is gone entirely. Emacs : GNU Emacs 25.1.1 (x86_64-apple-darwin15.6.0) of 2016-09-23 Package: Org-mode version 8.2.10 (release_8.2.10 @ /opt/local/share/emacs/25.1/\ lisp/org/) I have also reproduced this with org-mode from Git as of an hour or so ago. My hunch is that the problem is in org-clocktable-write-default. It writes the table (the dblock's contents have already been deleted), restores any #+TBLFM: line that used to be there pre-update, and then, if you're using :scope file-with-archives, it deletes the file column, which is the first column. The order here is the problem: org-table-delete-column updates the formula in #+TBLFM, decrementing the column reference to account for the deleted column. If this sounds right then I'd suggest that the solution may be as simple as just updating org-clocktable-write-default to insert table formulas *after* deleting the file column, along with some I'm attaching a patch but I'm not sure whether you'll be able to use it because my FSF assignment hasn't been updated for my new employer. Even if you can't use it, hopefully my description above is still useful. Thanks! Dale --001a1140ccc4e16731053f640315 Content-Type: application/octet-stream; name="clocktable-formulas.patch" Content-Disposition: attachment; filename="clocktable-formulas.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iuk3gf610 IGxpc3Avb3JnLWNsb2NrLmVsIHwgMzQgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2xpc3Avb3JnLWNsb2NrLmVsIGIvbGlzcC9vcmctY2xvY2suZWwKaW5kZXggMzQ0 OGQ4NC4uZGU3ZmNhYiAxMDA2NDQKLS0tIGEvbGlzcC9vcmctY2xvY2suZWwKKysrIGIvbGlzcC9v cmctY2xvY2suZWwKQEAgLTI2MTksNiArMjYxOSwyNCBAQCBmcm9tIHRoZSBkeW5hbWljIGJsb2Nr IGRlZmluaXRpb24uIgogICAgIDs7IFdoZW4gZXhwb3J0aW5nIHN1YnRyZWVzIG9yIHJlZ2lvbnMg dGhlIHJlZ2lvbiBtaWdodCBiZQogICAgIDs7IGFjdGl2YXRlZCwgc28gbGV0J3MgZGlzYWJsZSDM gGRlbGV0ZS1hY3RpdmUtcmVnaW9uJwogICAgIChsZXQgKChkZWxldGUtYWN0aXZlLXJlZ2lvbiBu aWwpKSAoYmFja3dhcmQtZGVsZXRlLWNoYXIgMSkpCisgICAgOzsgQmFjayB0byBiZWdpbm5pbmcs IGFsaWduIHRoZSB0YWJsZSwgcmVjYWxjdWxhdGUgaWYgbmVjZXNzYXJ5CisgICAgKGdvdG8tY2hh ciBpcG9zKQorICAgIChza2lwLWNoYXJzLWZvcndhcmQgIl58IikKKyAgICAob3JnLXRhYmxlLWFs aWduKQorICAgICh3aGVuIG9yZy1oaWRlLWVtcGhhc2lzLW1hcmtlcnMKKyAgICAgIDs7IHdlIG5l ZWQgdG8gYWxpZ24gYSBzZWNvbmQgdGltZQorICAgICAgKG9yZy10YWJsZS1hbGlnbikpCisgICAg KHdoZW4gc29ydAorICAgICAgKHNhdmUtZXhjdXJzaW9uCisJKG9yZy10YWJsZS1nb3RvLWxpbmUg MykKKwkob3JnLXRhYmxlLWdvdG8tY29sdW1uIChjYXIgc29ydCkpCisJKG9yZy10YWJsZS1zb3J0 LWxpbmVzIG5pbCAoY2RyIHNvcnQpKSkpCisgICAgKHdoZW4gcm0tZmlsZS1jb2x1bW4KKyAgICAg IDs7IFRoZSBmaWxlIGNvbHVtbiBpcyBhY3R1YWxseSBub3Qgd2FudGVkCisgICAgICAoZm9yd2Fy ZC1jaGFyIDEpCisgICAgICAob3JnLXRhYmxlLWRlbGV0ZS1jb2x1bW4pKQorICAgIChnb3RvLWNo YXIgKG9yZy10YWJsZS1lbmQpKQorICAgIChiYWNrd2FyZC1jaGFyIDEpCiAgICAgKGlmIChzZXRx IGZvcm11bGEgKHBsaXN0LWdldCBwYXJhbXMgOmZvcm11bGEpKQogCShjb25kCiAJICgoZXEgZm9y bXVsYSAnJSkKQEAgLTI2NTQsMTggKzI2NzIsNiBAQCBmcm9tIHRoZSBkeW5hbWljIGJsb2NrIGRl ZmluaXRpb24uIgogCSAgKHNldHEgcmVjYWxjIHQpCiAJICAoaW5zZXJ0ICJcbiIgKG1hdGNoLXN0 cmluZyAxIChwbGlzdC1nZXQgcGFyYW1zIDpjb250ZW50KSkpCiAJICAoYmVnaW5uaW5nLW9mLWxp bmUgMCkpKSkKLSAgICA7OyBCYWNrIHRvIGJlZ2lubmluZywgYWxpZ24gdGhlIHRhYmxlLCByZWNh bGN1bGF0ZSBpZiBuZWNlc3NhcnkKLSAgICAoZ290by1jaGFyIGlwb3MpCi0gICAgKHNraXAtY2hh cnMtZm9yd2FyZCAiXnwiKQotICAgIChvcmctdGFibGUtYWxpZ24pCi0gICAgKHdoZW4gb3JnLWhp ZGUtZW1waGFzaXMtbWFya2VycwotICAgICAgOzsgd2UgbmVlZCB0byBhbGlnbiBhIHNlY29uZCB0 aW1lCi0gICAgICAob3JnLXRhYmxlLWFsaWduKSkKLSAgICAod2hlbiBzb3J0Ci0gICAgICAoc2F2 ZS1leGN1cnNpb24KLQkob3JnLXRhYmxlLWdvdG8tbGluZSAzKQotCShvcmctdGFibGUtZ290by1j b2x1bW4gKGNhciBzb3J0KSkKLQkob3JnLXRhYmxlLXNvcnQtbGluZXMgbmlsIChjZHIgc29ydCkp KSkKICAgICAod2hlbiByZWNhbGMKICAgICAgIChpZiAoZXEgZm9ybXVsYSAnJSkKIAkgIChzYXZl LWV4Y3Vyc2lvbgpAQCAtMjY3MywxMCArMjY3OSw2IEBAIGZyb20gdGhlIGR5bmFtaWMgYmxvY2sg ZGVmaW5pdGlvbi4iCiAJICAgIChvcmctdGFibGUtZ290by1jb2x1bW4gcGNvbCBuaWwgJ2ZvcmNl KQogCSAgICAoaW5zZXJ0ICIlIikpKQogICAgICAgKG9yZy10YWJsZS1yZWNhbGN1bGF0ZSAnYWxs KSkKLSAgICAod2hlbiBybS1maWxlLWNvbHVtbgotICAgICAgOzsgVGhlIGZpbGUgY29sdW1uIGlz IGFjdHVhbGx5IG5vdCB3YW50ZWQKLSAgICAgIChmb3J3YXJkLWNoYXIgMSkKLSAgICAgIChvcmct dGFibGUtZGVsZXRlLWNvbHVtbikpCiAgICAgdG90YWwtdGltZSkpCiAKIChkZWZ1biBvcmctY2xv Y2t0YWJsZS1pbmRlbnQtc3RyaW5nIChsZXZlbCkK --001a1140ccc4e16731053f640315--