Hi all

On Mon, Sep 30, 2013 at 8:30 PM, Michael Brand
<michael.ch.br...@gmail.com> wrote:
> http://orgmode.org/worg/org-hacks.html#field-same-row-or-column

For the use case of org-table-transpose-table-at-point there, I made a
patch for org-table-transpose-table-at-point to preserve indentation
and point after transposition.
From 119aad10f2144a1397f2b034bef46dc891dbae5a Mon Sep 17 00:00:00 2001
From: Michael Brand <michael.ch.br...@gmail.com>
Date: Mon, 30 Sep 2013 20:32:29 +0200
Subject: [PATCH] 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.
---
 lisp/org-table.el | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/lisp/org-table.el b/lisp/org-table.el
index 5bc754c..7be77cc 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -1834,7 +1834,7 @@ blindly applies a recipe that works for simple tables."
          (goto-char beg)))))
 
 (defun org-table-transpose-table-at-point ()
-  "Transpose orgmode table at point and eliminate hlines.
+  "Transpose Org table at point and eliminate hlines.
 So a table like
 
 | 1 | 2 | 4 | 5 |
@@ -1849,9 +1849,11 @@ will be transposed as
 | 4 | c | g |
 | 5 | d | h |
 
-Note that horizontal lines disappeared."
+Note that horizontal lines disappear."
   (interactive)
   (let* ((table (delete 'hline (org-table-to-lisp)))
+        (dline_old (org-table-current-line))
+        (col_old (org-table-current-column))
         (contents (mapcar (lambda (p)
                             (let ((tp table))
                               (mapcar
@@ -1861,10 +1863,17 @@ Note that horizontal lines disappeared."
                                    (setq tp (cdr tp))))
                                table)))
                           (car table))))
-    (delete-region (org-table-begin) (org-table-end))
-    (insert (mapconcat (lambda(x) (concat "| " (mapconcat 'identity x " | " ) 
"  |\n" ))
-                       contents ""))
-    (org-table-align)))
+    (goto-char (org-table-begin))
+    (re-search-forward "|")
+    (backward-char)
+    (delete-region (point) (org-table-end))
+    (insert (mapconcat
+            (lambda(x)
+              (concat "| " (mapconcat 'identity x " | " ) "  |\n" ))
+            contents ""))
+    (org-table-goto-line col_old)
+    (org-table-goto-column dline_old))
+  (org-table-align))
 
 ;;;###autoload
 (defun org-table-wrap-region (arg)
-- 
1.7.12.4 (Apple Git-37)

Reply via email to