Function: idlwave-reset-sintern

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

Signature

(idlwave-reset-sintern &optional WHAT)

Documentation

Reset all sintern hashes.

Source Code

;; Defined in /usr/src/emacs/lisp/obsolete/idlwave.el.gz
(defun idlwave-reset-sintern (&optional what)
  "Reset all sintern hashes."
  ;; Make sure the hash functions are accessible.
  (let ((entries '((idlwave-sint-routines 1000 10)
		   (idlwave-sint-keywords 1000 10)
		   (idlwave-sint-methods   100 10)
		   (idlwave-sint-classes    10 10))))

    ;; Make sure these are lists
    (cl-loop for entry in entries
      for var = (car entry)
      do (if (not (consp (symbol-value var))) (set var (list nil))))

    ;; Reset the system & library hash
    (when (or (eq what t) (eq what 'syslib)
	      (null (cdr idlwave-sint-routines)))
      (cl-loop for entry in entries
	for var = (car entry) for size = (nth 1 entry)
	do (setcdr (symbol-value var)
		   (make-hash-table ':size size ':test 'equal)))
      (setq idlwave-sint-dirs nil
	    idlwave-sint-libnames nil))

    ;; Reset the buffer & shell hash
    (when (or (eq what t) (eq what 'bufsh)
	      (null (car idlwave-sint-routines)))
      (cl-loop for entry in entries
	for var = (car entry) for size = (nth 1 entry)
	do (setcar (symbol-value var)
		   (make-hash-table ':size size ':test 'equal))))))