home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a075 / 1.img / TOOLKIT1.EXE / SST116.PRG < prev    next >
Encoding:
Text File  |  1989-08-11  |  3.2 KB  |  112 lines

  1. ********************
  2.  
  3. PROCEDURE Thefault
  4.  
  5.    PARAMETERS _fa, _fb, _cproc, _file
  6.  
  7.    IF EMPTY(PCOUNT())
  8.       RETURN
  9.    ELSEIF PCOUNT() = 2
  10.       _cproc = ""
  11.       _file = ""
  12.    ELSEIF PCOUNT() = 3
  13.       _file = ""
  14.    ENDIF
  15.    
  16.    * _cproc is the name of the procedure that the program should
  17.    *            immediately go to to start over again, something like
  18.    *            an initialization menu.
  19.    * _file is an array of the names of all the databases so
  20.    *           that if there are no files over there, they can
  21.    *           be copied over.
  22.    
  23.    _fa = IF(_fa > 21, 21, _fa)
  24.    _fb = IF(_fb > 15, 15, _fb)
  25.    _fc = _fa + 3
  26.    _fd = _fb + 60
  27.  
  28.    PRIVATE _indir, _ndrive, _nndir, _curent, _ocolor
  29.  
  30.    scrprog = IF( TYPE("scrprog") = "U", "C:", scrprog)
  31.  
  32.    WINDOWPUSH(_fa, _fb, _fc, _fd)
  33.    _indir = SPACE(50)
  34.    EXTERNAL Show_tree
  35.    SET KEY 63 TO Show_tree
  36.    WSAYGET(1, 3, "Enter new PATH......   ? for Tree!! ")
  37.    WSAYGET(.T.,2,3,"->","_indir", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
  38.    SET KEY 63 TO
  39.    IF UPDATED() .AND. !(LASTKEY() = 27)
  40.       _effflag = .F.
  41.       _ndrive = scrprog
  42.       DO WHILE !FILE(_ndrive + "\COMMAND.COM")
  43.          CLEAR_AREA()
  44.          IF !_effflag
  45.             WSAYGET(1, 3, "Please insert DOS disk in drive => "  + SUBSTR(_ndrive,1,1))
  46.             WSAYGET(2, 3, "     Any key or Q to Quit .......")
  47.          ELSE
  48.             WSAYGET(1, 3, "COMMAND.COM not found.   Enter Drive letter to")
  49.             WSAYGET(.T.,2,3, "     look for this file.    New Drive is => ", "_ndrive", "!:")
  50.             _effflag = .F.
  51.             LOOP
  52.          ENDIF
  53.          _effflag = .T.
  54.          IF QWAIT("Q")
  55.             WINDOWPOP()
  56.             RETURN
  57.          ENDIF
  58.       ENDDO
  59.       _indir = TRIM(_indir)
  60.       IF !EMPTY(_file)
  61.          FOR _qaz = 1 TO LEN(_file)
  62.             _curent = _file[_qaz]
  63.             CLOSE ALL
  64.             IF !FILE(_indir + _curent)
  65.                USE (_curent)
  66.                COPY STRU TO &_indir.&_curent
  67.             ENDIF
  68.          NEXT
  69.          CLOSE ALL
  70.       ENDIF
  71.       _nndir = "CHDIR " + _indir
  72.       IF FILE("SCREEN.SYS")
  73.          COPY FILE Screen.sys TO &_indir.\Screen.sys
  74.       ENDIF
  75.       IF MEMORY(0) < 44
  76.          CLEAR_AREA()
  77.          WSAYGET(1,3, "Not Enough Memory to perform operation.  Please")
  78.          WSAYGET(2,3, "  press any key to return to calling program.  ")
  79.          INKEY(0)
  80.          WINDOWPOP()
  81.          RETURN
  82.       ENDIF
  83.       RUN &_nndir.
  84.       IF DOSERROR() <> 0
  85.          _ocolor = SETCOLOR()
  86.          SET COLOR TO W+/R
  87.          @ 24,00 SAY "Unable to Chain to Sub-directory.  Shall I Make it? "
  88.          SETCOLOR(_ocolor)
  89.          IF PROMPT()
  90.             @ 24,00
  91.             WINDOWPOP()
  92.             RETURN
  93.          ELSE
  94.             IF FILE("SCREEN.SYS")
  95.                RUN MKDIR &_indir.
  96.                COPY FILE Screen.sys TO &_indir.\Screen.sys
  97.                RUN CHDIR &_indir.
  98.             ENDIF
  99.          ENDIF
  100.       ENDIF
  101.       @ 24,00
  102.       SAVE ALL LIKE * TO Carryovr.sys
  103.       IF !EMPTY(_cproc)
  104.          DO &_cproc.
  105.       ENDIF
  106.       RESTORE FROM Carryovr.sys ADDITIVE
  107.       ERASE Carryovr.sys
  108.    ENDIF
  109.    WINDOWPOP()
  110.  
  111. * End of File
  112.