Function: idlwave-shell-filter-sysvars
idlwave-shell-filter-sysvars is a byte-compiled function defined in
idlwave.el.gz.
Signature
(idlwave-shell-filter-sysvars)
Documentation
Get any new system variables and tags.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/idlwave.el.gz
(defun idlwave-shell-filter-sysvars ()
"Get any new system variables and tags."
(let ((text idlwave-shell-command-output)
(start 0)
(old idlwave-system-variables-alist)
var tags link old-entry) ;; type name class
(setq idlwave-system-variables-alist nil)
(while (string-match "^IDLWAVE-SYSVAR: !\\([a-zA-Z0-9_$]+\\)\\( \\(.*\\)\\)?"
text start)
(setq start (match-end 0)
var (match-string 1 text)
tags (if (match-end 3)
(idlwave-split-string (match-string 3 text))))
;; Maintain old links, if present
(setq old-entry (assq (idlwave-sintern-sysvar var) old))
(setq link (assq 'link old-entry))
(setq idlwave-system-variables-alist
(cons (list var
(cons
'tags
(mapcar (lambda (x)
(cons x
(cdr (assq
(idlwave-sintern-sysvartag x)
(cdr (assq 'tags old-entry))))))
tags))
link)
idlwave-system-variables-alist)))
;; Keep the old value if query was not successful
(setq idlwave-system-variables-alist
(or idlwave-system-variables-alist old))))