Function: idlwave-sintern-rinfo-list

idlwave-sintern-rinfo-list is a byte-compiled function defined in idlwave.el.gz.

Signature

(idlwave-sintern-rinfo-list LIST &optional SET DEFAULT-DIR)

Documentation

Sintern all strings in the rinfo LIST.

With optional parameter SET: also set new patterns. Probably this will always have to be t. If DEFAULT-DIR is passed, it is used as the base of the directory.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/idlwave.el.gz
(defun idlwave-sintern-rinfo-list (list &optional set default-dir)
  "Sintern all strings in the rinfo LIST.
With optional parameter SET: also set new patterns.  Probably this
will always have to be t.  If DEFAULT-DIR is passed, it is used as
the base of the directory."
  (let (entry name type class kwds res source call new)
    (while list
      (setq entry (car list)
	    list (cdr list)
	    name (car entry)
	    type (nth 1 entry)
	    class (nth 2 entry)
	    source (nth 3 entry)
	    call (nth 4 entry)
	    kwds (nthcdr 5 entry))

      ;; The class and name
      (if class
	  (progn
	    (if (symbolp class) (setq class (symbol-name class)))
	    (setq class (idlwave-sintern-class class set))
	    (setq name (idlwave-sintern-method name set)))
	(setq name (idlwave-sintern-routine name set)))

      ;; The source
      (let ((source-type (car source))
	    (source-file  (nth 1 source))
	    (source-dir  (if default-dir
			     (file-name-as-directory default-dir)
			   (nth 2 source)))
	    (source-lib (nth 3 source)))
	(if (stringp source-dir)
	    (setq source-dir (idlwave-sintern-dir source-dir set)))
	(if (stringp source-lib)
	    (setq source-lib (idlwave-sintern-libname source-lib set)))
	(setq source (list source-type source-file source-dir source-lib)))

      ;; The keywords
      (setq kwds (mapcar (lambda (x)
			   (idlwave-sintern-keyword-list x set))
			 kwds))

      ;; Build a canonicalized list
      (setq new (nconc (list name type class source call) kwds)
	    res (cons new res)))
    (nreverse res)))