Hi Sébastien,

"Sebastien Vauban" <wxhgmqzgw...@spammotel.com> writes:

>> (I don't like using sit-for, it's often worse than getting an error...)
>
> I don't like it that much either, but, here, it's the only way to see the
> message before being flooded by the "Finding ID location..." messages.

You can also go back to the *Messages* buffer and check from there.

Maybe another option is to silent `org-id-update-id-locations' when
called from `org-id-find'?  Does the attached patch against master
improves the situation for you?

Thanks,

diff --git a/lisp/org-id.el b/lisp/org-id.el
index 55e826f..c2b3d86 100644
--- a/lisp/org-id.el
+++ b/lisp/org-id.el
@@ -273,7 +273,7 @@ With optional argument MARKERP, return the position as a new marker."
     (when file
       (setq where (org-id-find-id-in-file id file markerp)))
     (unless where
-      (org-id-update-id-locations)
+      (org-id-update-id-locations nil t)
       (setq file (org-id-find-id-file id))
       (when file
 	(setq where (org-id-find-id-in-file id file markerp))))
@@ -403,7 +403,7 @@ and time is the usual three-integer representation of time."
 
 ;; Storing ID locations (files)
 
-(defun org-id-update-id-locations (&optional files)
+(defun org-id-update-id-locations (&optional files silent)
   "Scan relevant files for IDs.
 Store the relation between files and corresponding IDs.
 This will scan all agenda files, all associated archives, and all
@@ -441,8 +441,9 @@ When CHECK is given, prepare detailed information about duplicate IDs."
 	(setq files (delq 'agenda-archives (copy-sequence files))))
       (setq nfiles (length files))
       (while (setq file (pop files))
-	(message "Finding ID locations (%d/%d files): %s"
-		 (- nfiles (length files)) nfiles file)
+	(unless silent
+	  (message "Finding ID locations (%d/%d files): %s"
+		   (- nfiles (length files)) nfiles file))
 	(setq tfile (file-truename file))
 	(when (and (file-exists-p file) (not (member tfile seen)))
 	  (push tfile seen)


-- 
 Bastien

Reply via email to