Function: idlwave-rescan-asynchronously
idlwave-rescan-asynchronously is an interactive and byte-compiled
function defined in idlwave.el.gz.
Signature
(idlwave-rescan-asynchronously)
Documentation
Dispatch another Emacs instance to update the idlwave catalog.
After the process finishes normally, the first access to routine info will re-read the catalog.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/obsolete/idlwave.el.gz
(defun idlwave-rescan-asynchronously ()
"Dispatch another Emacs instance to update the idlwave catalog.
After the process finishes normally, the first access to routine info
will re-read the catalog."
(interactive)
(if (processp idlwave-catalog-process)
(if (eq (process-status idlwave-catalog-process) 'run)
(if (yes-or-no-p "A catalog-updating process is running. Kill it? ")
(progn
(condition-case nil
(kill-process idlwave-catalog-process)
(error nil))
(error "Process killed, no new process started"))
(error "Quit"))
(condition-case nil
(kill-process idlwave-catalog-process)
(error nil))))
(if (or (not idlwave-user-catalog-file)
(not (stringp idlwave-user-catalog-file))
(not (file-regular-p idlwave-user-catalog-file)))
(error "No catalog has been produced yet"))
(let* ((emacs (concat invocation-directory invocation-name))
(args (list "-batch"
"-l" (expand-file-name "~/.emacs")
"-l" "idlwave"
"-f" "idlwave-rescan-catalog-directories"))
(process (apply #'start-process "idlcat"
nil emacs args)))
(setq idlwave-catalog-process process)
(set-process-sentinel
process
(lambda (_pro why)
(when (string-match "finished" why)
(setq idlwave-routines nil
idlwave-system-routines nil
idlwave-catalog-process nil)
(or (idlwave-start-load-rinfo-timer)
(idlwave-update-routine-info '(4))))))
(message "Background job started to update catalog file")))