2009-11-13 Carsten Dominik <carsten.dominik@gmail.com>
[bpt/emacs.git] / lisp / org / org-id.el
index 01ce9ef..c6c007f 100644 (file)
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.31a
+;; Version: 6.33
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -392,25 +392,32 @@ When CHECK is given, prepare detailed information about duplicate IDs."
   (interactive)
   (if (not org-id-track-globally)
       (error "Please turn on `org-id-track-globally' if you want to track IDs")
-    (let ((files
-          (or files
-              (append
-               ;; Agenda files and all associated archives
-               (org-agenda-files t org-id-search-archives)
-               ;; Explicit extra files
-               (if (symbolp org-id-extra-files)
-                   (symbol-value org-id-extra-files)
-                 org-id-extra-files)
+    (let* ((org-id-search-archives
+           (or org-id-search-archives
+               (and (symbolp org-id-extra-files)
+                    (symbol-value org-id-extra-files)
+                    (member 'agenda-archives org-id-extra-files))))
+          (files
+           (or files
+               (append
+                ;; Agenda files and all associated archives
+                (org-agenda-files t org-id-search-archives)
+                ;; Explicit extra files
+                (if (symbolp org-id-extra-files)
+                    (symbol-value org-id-extra-files)
+                  org-id-extra-files)
              ;; Files associated with live org-mode buffers
-               (delq nil
-                     (mapcar (lambda (b)
-                               (with-current-buffer b
-                                 (and (org-mode-p) (buffer-file-name))))
-                             (buffer-list)))
-               ;; All files known to have IDs
-               org-id-files)))
-         org-agenda-new-buffers
-         file nfiles tfile ids reg found id seen (ndup 0))
+                (delq nil
+                      (mapcar (lambda (b)
+                                (with-current-buffer b
+                                  (and (org-mode-p) (buffer-file-name))))
+                              (buffer-list)))
+                ;; All files known to have IDs
+                org-id-files)))
+          org-agenda-new-buffers
+          file nfiles tfile ids reg found id seen (ndup 0))
+      (when (member 'agenda-archives files)
+       (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"
@@ -430,12 +437,14 @@ When CHECK is given, prepare detailed information about duplicate IDs."
                  (if (member id found)
                      (progn
                        (message "Duplicate ID \"%s\", also in file %s"
-                                id (car (delq
-                                         nil
-                                         (mapcar
-                                          (lambda (x)
-                                            (if (member id (cdr x)) (car x)))
-                                          reg))))
+                                id (or (car (delq
+                                             nil
+                                             (mapcar
+                                              (lambda (x)
+                                                (if (member id (cdr x))
+                                                    (car x)))
+                                              reg)))
+                                       (buffer-file-name)))
                        (when (= ndup 0)
                          (ding)
                          (sit-for 2))