Function: idlwave-scan-user-lib-files

idlwave-scan-user-lib-files is a byte-compiled function defined in idlwave.el.gz.

Signature

(idlwave-scan-user-lib-files PATH-ALIST)

Source Code

;; Defined in /usr/src/emacs/lisp/obsolete/idlwave.el.gz
(defun idlwave-scan-user-lib-files (path-alist)
  ;; Scan the PRO files in PATH-ALIST and store the info in the user catalog
  (let* ((idlwave-scanning-lib t)
	 (idlwave-scanning-lib-dir "")
	 (idlwave-completion-case nil)
	 dirs-alist dir files file)
    (setq idlwave-user-catalog-routines nil
	  idlwave-path-alist path-alist ; for library-path instead
	  idlwave-true-path-alist nil)
    (if idlwave-auto-write-paths (idlwave-write-paths))
    (with-current-buffer (get-buffer-create "*idlwave-scan.pro*")
      (idlwave-mode)
      (setq dirs-alist (reverse path-alist))
      (while (setq dir (pop dirs-alist))
	(when (memq 'user (cdr dir))	; Has it marked for scan?
	  (setq dir (car dir))
	  (setq idlwave-scanning-lib-dir dir)
	  (when (file-directory-p dir)
	    (setq files (directory-files dir 'full "\\.[pP][rR][oO]\\'"))
	    (while (setq file (pop files))
	      (when (file-regular-p file)
		(if (not (file-readable-p file))
		    (message "Skipping %s (no read permission)" file)
		  (message "Scanning %s..." file)
		  (erase-buffer)
		  (insert-file-contents file 'visit)
		  (setq idlwave-user-catalog-routines
			(append (idlwave-get-routine-info-from-buffers
				 (list (current-buffer)))
				idlwave-user-catalog-routines)))))))))
    (message "Creating user catalog file...")
    (kill-buffer "*idlwave-scan.pro*")
    (kill-buffer (get-buffer-create "*IDLWAVE Widget*"))
    (with-temp-buffer
      (insert ";; IDLWAVE user catalog file\n")
      (insert (format ";; Created %s\n\n" (current-time-string)))

      ;; Define the routine info list
      (insert "\n(setq idlwave-user-catalog-routines\n    '(")
      (let ((standard-output (current-buffer)))
	(mapc (lambda (x)
		(insert "\n    ")
		(prin1 x)
		(goto-char (point-max)))
	      idlwave-user-catalog-routines))
      (insert (format "))\n\n;;; %s ends here\n"
		      (file-name-nondirectory idlwave-user-catalog-file)))
      (write-region nil nil idlwave-user-catalog-file)))
  (message "Creating user catalog file...done")
  (message "Info for %d routines saved in %s"
	   (length idlwave-user-catalog-routines)
	   idlwave-user-catalog-file)
  (sit-for 2)
  (idlwave-update-routine-info t))