Sfoglia il codice sorgente

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 16 anni fa
parent
commit
9f1e6fa952
2 ha cambiato i file con 13 aggiunte e 9 eliminazioni
  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