浏览代码

Fix bug when forcing an ID onto an item.

The bug happened when calling org-id-get from another buffer.
It is then important to switch to that buffer when the new ID is
created.
Carsten Dominik 15 年之前
父节点
当前提交
0ea7f02336
共有 2 个文件被更改,包括 15 次插入10 次删除
  1. 4 0
      lisp/ChangeLog
  2. 11 10
      lisp/org-id.el

+ 4 - 0
lisp/ChangeLog

@@ -13,6 +13,10 @@
 
 	* org.el: Add an entry for org-crypt.
 
+2009-09-15  Carsten Dominik  <carsten.dominik@gmail.com>
+
+	* org-id.el (org-id-get): Fix bug with forcing ID on an item.
+
 2009-09-15  Carsten Dominik  <carsten.dominik@gmail.com>
 
 	* org-table.el (orgtbl-line-start-regexp): Match also TBLNAME

+ 11 - 10
lisp/org-id.el

@@ -212,16 +212,17 @@ If the entry does not have an ID, the function returns nil.
 However, when CREATE is non nil, create an ID if none is present already.
 PREFIX will be passed through to `org-id-new'.
 In any case, the ID of the entry is returned."
-  (let ((id (org-entry-get pom "ID")))
-    (cond
-     ((and id (stringp id) (string-match "\\S-" id))
-      id)
-     (create
-      (setq id (org-id-new prefix))
-      (org-entry-put pom "ID" id)
-      (org-id-add-location id (buffer-file-name (buffer-base-buffer)))
-      id)
-     (t nil))))
+  (org-with-point-at pom
+    (let ((id (org-entry-get nil "ID")))
+      (cond
+       ((and id (stringp id) (string-match "\\S-" id))
+	id)
+       (create
+	(setq id (org-id-new prefix))
+	(org-entry-put pom "ID" id)
+	(org-id-add-location id (buffer-file-name (buffer-base-buffer)))
+	id)
+       (t nil)))))
 
 ;;;###autoload
 (defun org-id-get-with-outline-path-completion (&optional targets)