home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / me34src.zip / me3 / mutt / builtin / require.mut < prev    next >
Text File  |  1995-01-14  |  1KB  |  34 lines

  1. ;; require.mut : Lisp like require.  This code lets Mutt programs require
  2. ;;   that certain modules or routines be loaded.
  3. ;; To use:  In the MAIN rouine of your program file, add
  4. ;;   (require Mutt-module-needed-by-this-program .mco-file-module-is-in)
  5. ;;   where:
  6. ;;     Mutt-module-needed-by-this-program is the name of a routine in the
  7. ;;       module.
  8. ;;     .mco-file-module-is-in is the name of the file that contains the
  9. ;;       code for the module.
  10. ;; For example:  If MAIN contains (require "foo" "bar.mut") or (require
  11. ;;   "foo" "bar")), when your program is loaded it will load foo.mco if it
  12. ;;   hasn't been already or routine foo is not present.
  13. ;; Notes:
  14. ;;   It would be a good idea to also implememnt (provide ...) so I could
  15. ;;     use a module name instead of mickey mousing with a routine name
  16. ;;     (which might be screwed up by autoload).  I could do this with a
  17. ;;     list.  Then again, ME has this this list internally (based on the
  18. ;;     code file name).
  19. ;; C Durland  10/89  redone 9/91, 8/92    Public Domain
  20.  
  21. (defun
  22.   require (string Mutt-module Mutt-code-file)
  23.   {
  24.     (if (pgm-exists Mutt-module) (done))
  25.  
  26.     (arg-prefix 42)            ;; secret code to maybe load
  27.     (if (not (load Mutt-code-file))    ;; if can't load code
  28.       {
  29.         (msg "require: Could not load " Mutt-code-file)
  30.     (halt)
  31.       })
  32.   }
  33. )
  34.