فهرست منبع

Avoid error when ID is created in buffer without a file.

When ID's are created, Org tries to remember in which file the id is
located.  However, if an ID is created in a remember buffer, no file
is known.  This patch makes sure that this condition does not lead to
an error.
Carsten Dominik 17 سال پیش
والد
کامیت
9f1e6fa952
2فایلهای تغییر یافته به همراه13 افزوده شده و 9 حذف شده
  1. 3 0
      lisp/ChangeLog
  2. 10 9
      lisp/org-id.el

+ 3 - 0
lisp/ChangeLog

@@ -1,5 +1,8 @@
 2008-11-18  Carsten Dominik  <carsten.dominik@gmail.com>
 
+	* org-id.el (org-id-add-location): Avoid error when no file is
+	given.
+
 	* org-remember.el (org-remember-apply-template): Fix the way how
 	the list of allowed properties is retrieved from the target file.
 

+ 10 - 9
lisp/org-id.el

@@ -376,15 +376,16 @@ Store the relation between files and corresponding ID's."
 
 (defun org-id-add-location (id file)
   "Add the ID with location FILE to the database of ID loations."
-  (unless org-id-locations (org-id-locations-load))
-  (catch 'exit
-    (let ((locs org-id-locations) list)
-      (while (setq list (pop locs))
-	(when (equal (file-truename file) (file-truename (car list)))
-	  (setcdr list (cons id (cdr list)))
-	  (throw 'exit t))))
-    (push (list file id) org-id-locations))
-  (org-id-locations-save))
+  (when (and id file) ; don't error when called from a buffer with no file
+    (unless org-id-locations (org-id-locations-load))
+    (catch 'exit
+      (let ((locs org-id-locations) list)
+	(while (setq list (pop locs))
+	  (when (equal (file-truename file) (file-truename (car list)))
+	    (setcdr list (cons id (cdr list)))
+	    (throw 'exit t))))
+      (push (list file id) org-id-locations))
+    (org-id-locations-save)))
 
 ;; Finding entries with specified id