kanban.el

(stackeffect )
2013-10-05: Avoid producing full file links if destination is in same file as stackeffect

Avoid producing full file links if destination is in same file as kanban table

diff --git a/kanban.el b/kanban.el
--- a/kanban.el
+++ b/kanban.el
@@ -101,12 +101,13 @@
       (org-table-get-field matchcol kw)))))
   ofc))
 
-(defun kanban--todo-links-function ()
+(defun kanban--todo-links-function (srcfile)
   "Retrieve the current header as org-mode link."
   (let ((file (buffer-file-name))
         (line (filter-buffer-substring
                (point) (line-end-position)))
         (keyword (nth (- row 1) org-todo-keywords-1)))
+    (if (equal file srcfile) (setq file nil))
     (if file
         (setq file (concat file "::")))
     ; clean up the string
@@ -145,9 +146,10 @@
 Gets the ROW and COLUMN via TBLFM ($# and @#) and can get a string as MATCH to select only entries with a matching tag, as well as a list of org-mode files as the SCOPE to search for tasks."
   (let*
       ((todo (kanban--get-todo-of-current-col))
+       (srcfile (buffer-file-name))
        (elem (and todo (nth (- row 2)
                             (delete nil (org-map-entries
-                               'kanban--todo-links-function
+                               '(kanban--todo-links-function srcfile)
                                ; select the TODO state via the matcher: just match the TODO.
                                (if match
                                    (concat match "+TODO=\"" todo "\"")
@@ -169,7 +171,8 @@
 use org-mode to supply new TODO entries.
 
 Gets the ROW and all other CELS via TBLFM ($# and @2$2..@>$>) and can get a string as MATCH to select only entries with a matching tag, as well as a list of org-mode files as the SCOPE to search for tasks."
- (let ((elem (nth (- row 2) (delete nil
+ (let ((srcfile (buffer-file-name))
+       (elem (nth (- row 2) (delete nil
                                    (org-map-entries
                                     (lambda
                                       ()
@@ -177,6 +180,7 @@
                                           ((file (buffer-file-name))
                                            (line (filter-buffer-substring (point) (line-end-position)))
                                            (keyword (nth 0 org-todo-keywords-1)))
+                                        (if (equal file srcfile) (setq file nil))
                                         (if file
                                             (setq file (concat file "::")))
                                         (let* ((cleanline (nth 1 (split-string line "* ")))