emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/org/org-table.el,v


From: Carsten Dominik
Subject: [Emacs-diffs] Changes to emacs/lisp/org/org-table.el,v
Date: Thu, 24 Jul 2008 14:00:09 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Carsten Dominik <cdominik>      08/07/24 13:59:57

Index: org-table.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-table.el,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- org-table.el        27 Jun 2008 02:29:46 -0000      1.5
+++ org-table.el        24 Jul 2008 13:59:56 -0000      1.6
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.05a
+;; Version: 6.06a
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -445,8 +445,14 @@
   (let* ((beg (org-table-begin))
         (end (org-table-end))
         (txt (buffer-substring-no-properties beg end))
-        (file (or file (org-entry-get beg "TABLE_EXPORT_FILE" t)))
-        (format (or format (org-entry-get beg "TABLE_EXPORT_FORMAT" t)))
+        (file (or file
+                  (condition-case nil
+                      (org-entry-get beg "TABLE_EXPORT_FILE" t)
+                    (error nil))))
+        (format (or format
+                    (condition-case nil
+                        (org-entry-get beg "TABLE_EXPORT_FORMAT" t)
+                      (error nil))))
         buf deffmt-readable)
     (unless file
       (setq file (read-file-name "Export table to: "))
@@ -464,8 +470,13 @@
        (setq deffmt-readable (replace-match "\\t" t t deffmt-readable)))
       (while (string-match "\n" deffmt-readable)
        (setq deffmt-readable (replace-match "\\n" t t deffmt-readable)))
-      (setq format (read-string "Format: " deffmt-readable)))
-
+      (setq format (org-completing-read
+                   "Format: "
+                   '("orgtbl-to-tsv" "orgtbl-to-csv"
+                     "orgtbl-to-latex" "orgtbl-to-html"
+                     "orgtbl-to-generic" "orgtbl-to-texinfo"
+                     "orgtbl-to-orgtbl") nil nil
+                     deffmt-readable)))
     (if (string-match "\\([^ \t\r\n]+\\)\\( +.*\\)?" format)
        (let* ((transform (intern (match-string 1 format)))
               (params (if (match-end 2)
@@ -1864,7 +1875,7 @@
                     (string-match "^[a-zA-Z][a-zA-Z0-9]*$" field))
              (push (cons field v) org-table-local-parameters)
              (push (list field line col) org-table-named-field-locations))))
-      ;; Analyze the line types
+      ;; Analyse the line types
       (goto-char beg)
       (setq org-table-current-begin-line (org-current-line)
            org-table-current-begin-pos (point)
@@ -3541,6 +3552,26 @@
        (delete-region beg (point))))
     (insert txt "\n")))
 
+(defun org-table-to-lisp (&optional txt)
+  "Convert the table at point to a Lisp structure.
+The structure will be a list.  Each item is either the symbol `hline'
+for a horizontal separator line, or a list of field values as strings.
+The table is taken from the parameter TXT, or from the buffer at point."
+  (unless txt
+    (unless (org-at-table-p)
+      (error "No table at point")))
+  (let* ((txt (or txt 
+                 (buffer-substring-no-properties (org-table-begin)
+                                                 (org-table-end))))
+        (lines (org-split-string txt "[ \t]*\n[ \t]*")))
+
+    (mapcar
+     (lambda (x)
+       (if (string-match org-table-hline-regexp x)
+          'hline
+        (org-split-string (org-trim x) "\\s-*|\\s-*")))
+     lines)))
+
 (defun orgtbl-send-table (&optional maybe)
   "Send a tranformed version of this table to the receiver position.
 With argument MAYBE, fail quietly if no transformation is defined for




reply via email to

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