;============================================================================
; WinLisp:
;
;               A U T O L O A D I N G    F U N C T I O N S
;
; Copyright (c) Stephan POPOVITCH 1988-1989
; Author: Stephan POPOVITCH
;============================================================================

(setq #:winlisp:colon 'autoload)

(df autoload (file . fnlist)
    (mapc (lambda (fn)
                  (setfn fn 'fexpr
                         `(:lvar (:loadfn ',fn :lvar ',file))))
          fnlist))
    
(de :loadfn (:fn :lvar :file)
    (let ((:old (valfn :fn)))
         (cond ((and (tag syserror (funcall 'loadfile :file))
                     (neq :old (valfn :fn)))
                (apply :fn :lvar))
               (t (autoload :file :fn)             ;reset autoload feature
                  (error 'autoload "undefined function" :fn))))))

